Skip to content

Latest commit

 

History

History
732 lines (406 loc) · 6.74 KB

functions.rst

File metadata and controls

732 lines (406 loc) · 6.74 KB

SQL Functions

Table of contents

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.

Description

Specifications:

  1. ABS(NUMBER T) -> T

Description

Specifications:

  1. ACOS(NUMBER T) -> DOUBLE

Description

Specifications:

  1. ADD(NUMBER T, NUMBER) -> T

Description

Specifications:

  1. ASCII(STRING T) -> INTEGER

Description

Specifications:

  1. ASIN(NUMBER T) -> DOUBLE

Description

Specifications:

  1. ATAN(NUMBER T) -> DOUBLE

Description

Specifications:

  1. ATAN2(NUMBER T, NUMBER) -> DOUBLE

Description

Specification is undefined and type check is skipped for now

Description

Specifications:

  1. CBRT(NUMBER T) -> T

Description

Specifications:

  1. CEIL(NUMBER T) -> T

Description

Specification is undefined and type check is skipped for now

Description

Specification is undefined and type check is skipped for now

Description

Specifications:

  1. COS(NUMBER T) -> DOUBLE

Description

Specifications:

  1. COSH(NUMBER T) -> DOUBLE

Description

Specifications:

  1. COT(NUMBER T) -> DOUBLE

Description

Specifications:

  1. CURDATE() -> DATE

Description

Specifications:

  1. DATE(DATE) -> DATE

Description

Specifications:

  1. DATE_FORMAT(DATE, STRING) -> STRING
  2. DATE_FORMAT(DATE, STRING, STRING) -> STRING

Description

Specifications:

  1. DAYOFMONTH(DATE) -> INTEGER

Description

Specifications:

  1. DEGREES(NUMBER T) -> DOUBLE

Description

Specifications:

  1. DIVIDE(NUMBER T, NUMBER) -> T

Description

Specifications:

  1. E() -> DOUBLE

Description

Specifications:

  1. EXP(NUMBER T) -> T

Description

Specifications:

  1. EXPM1(NUMBER T) -> T

Description

Specifications:

  1. FLOOR(NUMBER T) -> T

Description

Specifications:

  1. IF(BOOLEAN, ES_TYPE, ES_TYPE) -> ES_TYPE

Description

Specifications:

  1. IFNULL(ES_TYPE, ES_TYPE) -> ES_TYPE

Description

Specifications:

  1. ISNULL(ES_TYPE) -> INTEGER

Description

Specifications:

  1. LEFT(STRING T, INTEGER) -> T

Description

Specifications:

  1. LENGTH(STRING) -> INTEGER

Description

Specifications:

  1. LN(NUMBER T) -> DOUBLE

Description

Specifications:

  1. LOCATE(STRING, STRING, INTEGER) -> INTEGER
  2. LOCATE(STRING, STRING) -> INTEGER

Description

Specifications:

  1. LOG(NUMBER T) -> DOUBLE
  2. LOG(NUMBER T, NUMBER) -> DOUBLE

Description

Specifications:

  1. LOG2(NUMBER T) -> DOUBLE

Description

Specifications:

  1. LOG10(NUMBER T) -> DOUBLE

Description

Specifications:

  1. LOWER(STRING T) -> T
  2. LOWER(STRING T, STRING) -> T

Description

Specifications:

  1. LTRIM(STRING T) -> T

Description

Specifications:

  1. MAKETIME(INTEGER, INTEGER, INTEGER) -> DATE

Description

Specifications:

  1. MODULUS(NUMBER T, NUMBER) -> T

Description

Specifications:

  1. MONTH(DATE) -> INTEGER

Description

Specifications:

  1. MONTHNAME(DATE) -> STRING

Description

Specifications:

  1. MULTIPLY(NUMBER T, NUMBER) -> NUMBER

Description

Specifications:

  1. NOW() -> DATE

Description

Specifications:

  1. PI() -> DOUBLE

Description

Specifications:

  1. POW(NUMBER T) -> T
  2. POW(NUMBER T, NUMBER) -> T

Description

Specifications:

  1. POWER(NUMBER T) -> T
  2. POWER(NUMBER T, NUMBER) -> T

Description

Specifications:

  1. RADIANS(NUMBER T) -> DOUBLE

Description

Specifications:

  1. RAND() -> NUMBER
  2. RAND(NUMBER T) -> T

Description

Specifications:

  1. REPLACE(STRING T, STRING, STRING) -> T

Description

Specifications:

  1. RIGHT(STRING T, INTEGER) -> T

Description

Specifications:

  1. RINT(NUMBER T) -> T

Description

Specifications:

  1. ROUND(NUMBER T) -> T

Description

Specifications:

  1. RTRIM(STRING T) -> T

Description

Specifications:

  1. SIGN(NUMBER T) -> T

Description

Specifications:

  1. SIGNUM(NUMBER T) -> T

Description

Specifications:

  1. SIN(NUMBER T) -> DOUBLE

Description

Specifications:

  1. SINH(NUMBER T) -> DOUBLE

Description

Specifications:

  1. SQRT(NUMBER T) -> T

Description

Specifications:

  1. SUBSTRING(STRING T, INTEGER, INTEGER) -> T

Description

Specifications:

  1. SUBTRACT(NUMBER T, NUMBER) -> T

Description

Specifications:

  1. TAN(NUMBER T) -> DOUBLE

Description

Specifications:

  1. TIMESTAMP(DATE) -> DATE

Description

Specifications:

  1. TRIM(STRING T) -> T

Description

Specifications:

  1. UPPER(STRING T) -> T
  2. UPPER(STRING T, STRING) -> T

Description

Specifications:

  1. YEAR(DATE) -> INTEGER