5.1 Functions and Operators
EventQL provides a large number of functions and operators for the built-in data types.
Users can also define their own functions and operators.
Control Flow Functions
| if |
an if statement with lazy evalutation |
if(1 == 2, "foo", "bar") |
String Functions
| REGEXP |
REGEXP operator |
'foobar' REGEXP '^foo' |
| endswith |
check string end |
endswith("eventql", "ql") |
| startswith |
check string start |
startswith("eventql", "event") |
| uppercase |
convert to uppercase |
uppercase("hello world") |
| ucase |
alias for uppercase |
ucase("hello world") |
| lowercase |
convert to lowercase |
lowercase("hello world") |
| lcase |
alias for lowercase |
lcase("hello world") |
| substring |
Extract substring as specified. |
substring("foobar", 2, 3) |
| substr |
alias for substring |
substr("foobar", 3) |
| concat |
Add two strings. |
concat("event", "ql") |
Numeric Functions
| + |
Sum of two values |
2 + 2 |
| * |
Multiply two numbers |
4 * 2 |
| / |
Division operator |
4 / 2 |
| pow |
Power operator |
pow(2, 32) |
| round |
Round a number |
round(0.234, 2) |
| truncate |
Truncate a number |
truncate(0.234, 2) |
Boolean Functions
| ! |
Logical Negation operator |
!true |
| == |
'Equal' operator |
2 == 2 |
| != |
'Not equal' operator |
2 != 3 |
| < |
'Less than' operator |
2 < 4 |
| <= |
'Less or equal than' operator |
2 <= 4 |
| > |
'Greather than' operator |
4 > 2 |
| >= |
'Greather or equal than' operator |
4 >= 2 |
| AND |
Logical and |
1 < 2 AND 2 < 3 |
| OR |
Logical or |
1 < 2 OR 2 < 3 |
| isnull |
Check if value is null |
isnull(null) |
DateTime Functions
| from_timestamp |
Convert a timestamp to a DateTime value |
from_timestamp(1462125626) |
| date_trunc |
Truncate to specified precision |
date_trunc("d", 1462125626) |
| date_add |
Add interval |
date_add(1462125626, '1', 'DAY') |
| time_at |
Get DateTime value for interval from now |
time_at('-12hours') |
Aggregate Functions
| sum |
Sum of all values in the result set |
sum(price) |
| count |
Number of values in the result set |
count(1) |
| min |
Minimum of values in the result set |
min(price) |
| max |
Maximum of values in the result set |
max(price) |
| mean |
mean of values in the result set |
mean(price) |
Conversion Functions
| to_str |
Convert to string |
to_str(1) |
| to_int |
Convert to integer |
to_int(142.23) |
| to_float |
Convert to float |
to_float(12) |
| to_bool |
Convert to string |
to_bool(1) |
Miscellaneous Functions
| fnv32 |
Calculate a FNV32 hash. |
fnv32("test") |
| usleep |
Sleep for a number of microseconds |
usleep(1000) |
Operator Precedence
Operator precedences are shown in the following list, from highest precedence to
the lowest. Operators that are shown together on a line have the same precedence.
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
&&, AND
XOR
||, OR