Skip to content

Execute functions in the QuickJS DuckDB extension

Function category

Execute

2 functions

Run JavaScript code from SQL — `quickjs(...)` for general expressions and array → table fan-out, `quickjs_eval(fn, ...args)` for invoking a JS function with positional arguments and getting JSON back.

quickjs

Scalar function Execute
Signature
2 overloaded forms · click to inspect
Arguments (Positional)
Argument code Type VARCHAR Mode Positional Description
Description
1 Simple expression
SELECT quickjs('2 + 2');
2 Array → table
SELECT * FROM quickjs('[1, 2, 3, 4, 5]');
3 Array with parameter passthrough
SELECT * FROM quickjs('parsed_arg0.map(x => x * arg1)', '[1, 2, 3, 4, 5]', 3);

quickjs_eval

Scalar function Execute
Signature
quickjs_eval(function: VARCHAR, varargs: ANY) JSON
Arguments (Positional)
Argument function Type VARCHAR Mode Positional Description
Argument varargs Type ANY Mode Positional Description Varargs
Description
1 Two-argument adder
SELECT quickjs_eval('(a, b) => a + b', 5, 3);
2 Custom JSON munging — better than chaining json_extract_*
SELECT quickjs_eval('(payload) => { const d = JSON.parse(payload); return { user: d.user, os: d.meta.os }; }', payload) AS extracted FROM events;