Skip to main content

Functions

System Functionsโ€‹

SQRL supports all of Flink's built-in system functions.

SQRL adds system functions with support for:

  • a binary JSON type (JSONB) to represent semi-structured data efficiently.
  • a vector type to represent embeddings.
  • text manipulation and full text search.

System functions are always available and do not need to be imported. Take a look at the full list of SQRL system function.

Function Librariesโ€‹

SQRL includes standard libraries that can be imported into a SQRL script as follows:

IMPORT stdlib.math;

Imports all functions from the math library into the script. Replace math with the library you wish to import.

IMPORT stdlib.math.hypot AS hypotenuse;

Imports a single function hypot from the math library under the name hypotenuse. The renaming with AS is optional and is omitted when you want to use the original name.

Check out the full list of function libraries.

User Defined Functionsโ€‹

Users can define custom functions and import them into a SQRL script.

Javaโ€‹

To create a new function package, first create a sub-folder myjavafunction in the directory of the script where you want to import the functions. Inside that package, create a java project which implements a Flink function. Annotate the function with @AutoService and the Flink function that it extends so the function can be discovered by the compiler.

Compile the java project into a jar file and import it into the SQRL script via:

IMPORT myjavafunction.target.MyScalarFunction;

Check out this complete example.

JavaScriptโ€‹

Support for JavaScript functions is currently being implemented and is targeted for the 0.7 release.

Pythonโ€‹

Support for Python functions is currently being implemented and is targeted for the 0.7 release.