Files
bun.sh/test/bun.js/sqlite-cross-process.js
Jarred Sumner 3492248697 Fixes #1366
2023-01-22 19:09:52 -08:00

46 lines
1020 B
JavaScript

// https://github.com/oven-sh/bun/issues/1366
import { Database } from "bun:sqlite";
import { rmSync } from "fs";
const dir = process.env.SQLITE_DIR;
rmSync(dir + "get-persist.sqlite", { force: true });
var db = Database.open(dir + "get-persist.sqlite", { create: true });
// Note, I've played with various values and it doesn't seem to change
// the behavior. The "beter-sqlite3" npm package does not exhibit this
// bug, so it doesn't seem to be a general SQLite thing.
db.run(`PRAGMA journal_mode = WAL`);
db.run(`PRAGMA synchrounous = NORMAL`);
db.run(
`CREATE TABLE IF NOT EXISTS examples (
id TEXT PRIMARY KEY
)`,
);
// This persists, but if you place this call
db.run(
`
INSERT INTO examples
VALUES ('hello')
ON CONFLICT (id) DO
UPDATE SET id='hello'
RETURNING id
`,
);
db.query(`SELECT id FROM examples WHERE id='hello'`).get().id;
db.query(
`
INSERT INTO examples
VALUES ('world')
ON CONFLICT (id) DO
UPDATE SET id='world'
RETURNING id
`,
).get();
process.exit(0);