-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Description
sqlite-zstd version: v0.3.5
SQLite version: 3.47.1 (via bun:sqlite)
I'm using the pre-built .so from releases.
// zstd-minimal.ts
import { Database } from "bun:sqlite";
const db = new Database(":memory:");
db.loadExtension("./libsqlite_zstd.so");
db.run(`CREATE TABLE table1 (id INTEGER PRIMARY KEY, raw_json TEXT)`);
db.run(`CREATE TABLE table2 (id INTEGER PRIMARY KEY, raw_json TEXT)`);
db.run(`SELECT zstd_enable_transparent('{"table": "table1", "column": "raw_json", "compression_level": 19, "dict_chooser": "''a''"}')`);
// -> Success
db.run(`SELECT zstd_enable_transparent('{"table": "table2", "column": "raw_json", "compression_level": 19, "dict_chooser": "''a''"}')`);
// -> FAIL❯ bun run zstd-minimal.ts
[2025-11-19T03:21:22Z INFO sqlite_zstd::create_extension] [sqlite-zstd] initialized
[2025-11-19T03:21:22Z WARN sqlite_zstd::transparent] Warning: It is recommended to set `pragma journal_mode=WAL;`
[2025-11-19T03:21:22Z WARN sqlite_zstd::transparent] Warning: It is recommended to set `pragma auto_vacuum=full;`
[2025-11-19T03:21:22Z WARN sqlite_zstd::transparent] Warning: It is recommended to set `pragma busy_timeout=2000;` or higher
[2025-11-19T03:21:22Z WARN sqlite_zstd::transparent] Warning: It is recommended to set `pragma journal_mode=WAL;`
[2025-11-19T03:21:22Z WARN sqlite_zstd::transparent] Warning: It is recommended to set `pragma auto_vacuum=full;`
[2025-11-19T03:21:22Z WARN sqlite_zstd::transparent] Warning: It is recommended to set `pragma busy_timeout=2000;` or higher
2 | const db = new Database(":memory:");
3 | db.loadExtension("./libsqlite_zstd.so");
4 | db.run(`CREATE TABLE table1 (id INTEGER PRIMARY KEY, raw_json TEXT)`);
5 | db.run(`CREATE TABLE table2 (id INTEGER PRIMARY KEY, raw_json TEXT)`);
6 | db.run(`SELECT zstd_enable_transparent('{"table": "table1", "column": "raw_json", "compression_level": 19, "dict_chooser": "''a''"}')`);
7 | db.run(`SELECT zstd_enable_transparent('{"table": "table2", "column": "raw_json", "compression_level": 19, "dict_chooser": "''a''"}')`);
^
SQLiteError: Could not create index on dictid
Caused by:
0: index _raw_json_dict_idx already exists
1: Error code 1: SQL error or missing database
errno: 1,
byteOffset: -1,
at run (bun:sqlite:322:21)
at ..../zstd-minimal.ts:7:4
at loadAndEvaluateModule (2:1)
Bun v1.3.1 (Linux x64)The extension doesn't scope the index name with the table name.
I'll be renaming my column, but it'd be better to have the index name prefixed by the table name or some way to override the index name.
Metadata
Metadata
Assignees
Labels
No labels