Table of contents
- Introduction
- ABS
- ACOS
- ADD
- ASCII
- ASIN
- ATAN
- ATAN2
- CAST
- CBRT
- CEIL
- CONCAT
- CONCAT_WS
- COS
- COSH
- COT
- CURDATE
- DATE
- DATE_FORMAT
- DAYOFMONTH
- DEGREES
- DIVIDE
- E
- EXP
- EXPM1
- FLOOR
- IF
- IFNULL
- ISNULL
- LEFT
- LENGTH
- LN
- LOCATE
- LOG
- LOG2
- LOG10
- LOWER
- LTRIM
- MAKETIME
- MODULUS
- MONTH
- MONTHNAME
- MULTIPLY
- NOW
- PI
- POW
- POWER
- RADIANS
- RAND
- REPLACE
- RIGHT
- RINT
- ROUND
- RTRIM
- SIGN
- SIGNUM
- SIN
- SINH
- SQRT
- SUBSTRING
- SUBTRACT
- TAN
- TIMESTAMP
- TRIM
- UPPER
- YEAR
There is support for a wide variety of SQL functions. We are intend to generate this part of documentation automatically from our type system. However, the type system is missing descriptive information for now. So only formal specifications of all SQL functions supported are listed at the moment. More details will be added in future.
Most of the specifications can be self explained just as a regular function with data type as argument. The only notation that needs elaboration is generic type T
which binds to an actual type and can be used as return type. For example, ABS(NUMBER T) -> T
means function ABS
accepts an numerical argument of type T
which could be any sub-type of NUMBER
type and returns the actual type of T
as return type. The actual type binds to generic type at runtime dynamically.
Specifications:
- ABS(NUMBER T) -> T
Specifications:
- ACOS(NUMBER T) -> DOUBLE
Specifications:
- ADD(NUMBER T, NUMBER) -> T
Specifications:
- ASCII(STRING T) -> INTEGER
Specifications:
- ASIN(NUMBER T) -> DOUBLE
Specifications:
- ATAN(NUMBER T) -> DOUBLE
Specifications:
- ATAN2(NUMBER T, NUMBER) -> DOUBLE
Specification is undefined and type check is skipped for now
Specifications:
- CBRT(NUMBER T) -> T
Specifications:
- CEIL(NUMBER T) -> T
Specification is undefined and type check is skipped for now
Specification is undefined and type check is skipped for now
Specifications:
- COS(NUMBER T) -> DOUBLE
Specifications:
- COSH(NUMBER T) -> DOUBLE
Specifications:
- COT(NUMBER T) -> DOUBLE
Specifications:
- CURDATE() -> DATE
Specifications:
- DATE(DATE) -> DATE
Specifications:
- DATE_FORMAT(DATE, STRING) -> STRING
- DATE_FORMAT(DATE, STRING, STRING) -> STRING
Specifications:
- DAYOFMONTH(DATE) -> INTEGER
Specifications:
- DEGREES(NUMBER T) -> DOUBLE
Specifications:
- DIVIDE(NUMBER T, NUMBER) -> T
Specifications:
- E() -> DOUBLE
Specifications:
- EXP(NUMBER T) -> T
Specifications:
- EXPM1(NUMBER T) -> T
Specifications:
- FLOOR(NUMBER T) -> T
Specifications:
- IF(BOOLEAN, ES_TYPE, ES_TYPE) -> ES_TYPE
Specifications:
- IFNULL(ES_TYPE, ES_TYPE) -> ES_TYPE
Specifications:
- ISNULL(ES_TYPE) -> INTEGER
Specifications:
- LEFT(STRING T, INTEGER) -> T
Specifications:
- LENGTH(STRING) -> INTEGER
Specifications:
- LN(NUMBER T) -> DOUBLE
Specifications:
- LOCATE(STRING, STRING, INTEGER) -> INTEGER
- LOCATE(STRING, STRING) -> INTEGER
Specifications:
- LOG(NUMBER T) -> DOUBLE
- LOG(NUMBER T, NUMBER) -> DOUBLE
Specifications:
- LOG2(NUMBER T) -> DOUBLE
Specifications:
- LOG10(NUMBER T) -> DOUBLE
Specifications:
- LOWER(STRING T) -> T
- LOWER(STRING T, STRING) -> T
Specifications:
- LTRIM(STRING T) -> T
Specifications:
- MAKETIME(INTEGER, INTEGER, INTEGER) -> DATE
Specifications:
- MODULUS(NUMBER T, NUMBER) -> T
Specifications:
- MONTH(DATE) -> INTEGER
Specifications:
- MONTHNAME(DATE) -> STRING
Specifications:
- MULTIPLY(NUMBER T, NUMBER) -> NUMBER
Specifications:
- NOW() -> DATE
Specifications:
- PI() -> DOUBLE
Specifications:
- POW(NUMBER T) -> T
- POW(NUMBER T, NUMBER) -> T
Specifications:
- POWER(NUMBER T) -> T
- POWER(NUMBER T, NUMBER) -> T
Specifications:
- RADIANS(NUMBER T) -> DOUBLE
Specifications:
- RAND() -> NUMBER
- RAND(NUMBER T) -> T
Specifications:
- REPLACE(STRING T, STRING, STRING) -> T
Specifications:
- RIGHT(STRING T, INTEGER) -> T
Specifications:
- RINT(NUMBER T) -> T
Specifications:
- ROUND(NUMBER T) -> T
Specifications:
- RTRIM(STRING T) -> T
Specifications:
- SIGN(NUMBER T) -> T
Specifications:
- SIGNUM(NUMBER T) -> T
Specifications:
- SIN(NUMBER T) -> DOUBLE
Specifications:
- SINH(NUMBER T) -> DOUBLE
Specifications:
- SQRT(NUMBER T) -> T
Specifications:
- SUBSTRING(STRING T, INTEGER, INTEGER) -> T
Specifications:
- SUBTRACT(NUMBER T, NUMBER) -> T
Specifications:
- TAN(NUMBER T) -> DOUBLE
Specifications:
- TIMESTAMP(DATE) -> DATE
Specifications:
- TRIM(STRING T) -> T
Specifications:
- UPPER(STRING T) -> T
- UPPER(STRING T, STRING) -> T
Specifications:
- YEAR(DATE) -> INTEGER