sqlite module
Embedded SQLite client. Open a file (or ":memory:" for tests), run parameterized SQL, wrap operations in transactions, and run idempotent migrations.
import "sqlite" as sqlite;
var db = sqlite.open("app.db");
db.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");
db.exec("INSERT INTO users (name) VALUES (?)", ["Alice"]);
var rows = db.query("SELECT * FROM users");
for (var row of rows) { print(row.id, row.name); }
db.close();
Module API
| Function | Description |
|---|---|
sqlite.open(path) → db | Open or create. ":memory:" for a private in-memory DB. |
sqlite.version() → string | SQLite library version. |
sqlite.transaction(db, fn) | Run fn(db) inside BEGIN/COMMIT; rolls back on throw. |
sqlite.migrate(db, statements) | Run a list of idempotent DDL statements. |
sqlite.insert(db, table, row) → id | Convenience: INSERT + return last_insert_id(). |
db handle
| Method | Description |
|---|---|
db.exec(sql, params?) | Run a statement; returns nothing. params is a list. |
db.query(sql, params?) → list of maps | Each row as {col_name: value}. |
db.query_one(sql, params?) → map | null | First row or null. |
db.last_insert_id() → number | |
db.changes() → number | Rows touched by the last DML. |
db.close() | Idempotent. |