7. Built-in libraries
Sections 7.1–7.8 are provided by dataql-engine. Web functions (7.9) require dataway-embedded and a Dataway request context. Transaction functions (7.10) require dataql-sqlproc, a SQL data source and a transaction provider. Add and configure each extension before using its functions.
The built-in libraries provide importable DataQL functions for strings, collections, dates and format conversions. Import a library with import, then call library.function(...).
import 'net.hasor.dataql.host.function.basic.StringUdfSource' as string;
return string.toUpperCase('DataQL');
The result is "DATAQL". See Imports and reuse for import syntax, and Functions for function arguments.
In signatures, function(value[, option]) means option is optional; call function(value) or function(value, option). Examples show script return values. A result handler determines any outer HTTP response structure.
General-purpose libraries
These libraries ship with the DataQL engine. Each reference lists its resource name, parameters, return values and examples.
- String functions: search, substring, join and case conversion.
- Collection functions: filtering, sorting, grouping and object/list conversions.
- Number functions: constrain integer values to a range.
- Date and time functions: timestamps, date fields and formatting.
- JSON functions: convert JSON text and data objects.
- Conversion functions: numbers, booleans, text and binary data.
- Encoding and digest functions: Base64, URL encoding, digests and HMAC.
- State functions: counters and UUIDs.
Libraries supplied by extensions
- Web functions: Dataway headers, cookies and uploaded files; require a Web request context.
- Transaction functions: SQL executor transaction boundaries and propagation; require a configured transaction provider.
Applications can add libraries using the same import and call syntax. See Library extensions.