quickjs
DuckDB QuickJS Runtime Extension
Maintainer(s): lmangani
Installing and Loading
INSTALL quickjs FROM community;LOAD quickjs;Example
-- Quack JS with QuickJS-- ScalarD SELECT quickjs('2+2');┌────────────────┐│ quickjs('2+2') ││ varchar │├────────────────┤│ 4 │└────────────────┘
-- Scalar EvalD SELECT quickjs_eval('(a, b) => a + b', 5, 3);┌───────────────────────────────────────┐│ quickjs_eval('(a, b) => a + b', 5, 3) ││ json │├───────────────────────────────────────┤│ 8 │└───────────────────────────────────────┘
-- Table EvalD SELECT * FROM quickjs('parsed_arg0.map(x => x * arg1)', '[1, 2, 3, 4, 5]', 3);┌────────┐│ result ││ json │├────────┤│ 3 ││ 6 ││ 9 ││ 12 ││ 15 │└────────┘About quickjs
QuickJS DuckDB Extension
This extension provides an embedded QuickJS-NG engine for DuckDB. It allows executing JavaScript code directly within your SQL queries.
QuickJS-NG is a small, fast, and embeddable JavaScript engine that supports modern JavaScript features including ES2020.
This extension is experimental and potentially unstable. Do not use it in production.
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| quickjs | scalar | Execute JavaScript code and return the result as a string | NULL | [quickjs(‘1 + 2’), quickjs(‘“hello”.toUpperCase()’)] |
| quickjs | table | Execute JavaScript code that returns an array, with each element becoming a row | NULL | [SELECT * FROM quickjs(‘[1, 2, 3].map(x => x * 2)’)] |
| quickjs_eval | scalar | Execute a JavaScript function with the provided arguments and return the result as JSON | NULL | [quickjs_eval(‘(a, b) => a + b’, 1, 2), quickjs_eval(‘(x) => x * 2’, 21)] |
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
This extension does not add any settings.