orez 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pg-proxy-do-backend.d.ts +5 -0
- package/dist/pg-proxy-do-backend.d.ts.map +1 -1
- package/dist/pg-proxy-do-backend.js +77 -9
- package/dist/pg-proxy-do-backend.js.map +1 -1
- package/dist/worker/cf-patches.d.ts.map +1 -1
- package/dist/worker/cf-patches.js +45 -0
- package/dist/worker/cf-patches.js.map +1 -1
- package/dist/worker/shims/postgres-browser.d.ts.map +1 -1
- package/dist/worker/shims/postgres-browser.js +6 -3
- package/dist/worker/shims/postgres-browser.js.map +1 -1
- package/dist/worker/shims/postgres-socket.d.ts +0 -2
- package/dist/worker/shims/postgres-socket.d.ts.map +1 -1
- package/dist/worker/shims/postgres-socket.js +13 -19
- package/dist/worker/shims/postgres-socket.js.map +1 -1
- package/dist/worker/shims/sqlite.d.ts +2 -0
- package/dist/worker/shims/sqlite.d.ts.map +1 -1
- package/dist/worker/shims/sqlite.js +108 -15
- package/dist/worker/shims/sqlite.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-patches.d.ts","sourceRoot":"","sources":["../../src/worker/cf-patches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA8BH,MAAM,WAAW,yBAAyB;IACxC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,yBAAyB,GACxC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"cf-patches.d.ts","sourceRoot":"","sources":["../../src/worker/cf-patches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA8BH,MAAM,WAAW,yBAAyB;IACxC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,yBAAyB,GACxC,wBAAwB,CAgE1B"}
|
|
@@ -63,6 +63,7 @@ export function prepareZeroCacheForCF(input) {
|
|
|
63
63
|
patchWorkerEntrypoints(zcBase);
|
|
64
64
|
patchProcesses(zcBase);
|
|
65
65
|
patchWriteWorkerClient(zcBase);
|
|
66
|
+
patchInitialSyncBatchParams(zcBase);
|
|
66
67
|
const parserAliases = patchPgsqlParserWasm(nodeModulesPath, outDir);
|
|
67
68
|
const packageAliases = getPackageAliases(nodeModulesPath);
|
|
68
69
|
return {
|
|
@@ -356,6 +357,50 @@ export { ThreadWriteWorkerClient, applyPragmas, serializeError };
|
|
|
356
357
|
`);
|
|
357
358
|
console.log('[orez] patched zero-cache write-worker-client.js (inline writer)');
|
|
358
359
|
}
|
|
360
|
+
// zero-cache's initial sync prepares a fixed 50-row multi-row INSERT per
|
|
361
|
+
// copied table (insertSql + `,${valuesSql}`.repeat(49)). better-sqlite3
|
|
362
|
+
// accepts thousands of bound parameters, but Cloudflare DO SQLite caps a
|
|
363
|
+
// statement at 100 — the prepare alone throws "too many SQL variables" for
|
|
364
|
+
// any table wider than 2 columns, killing initial sync before the first row.
|
|
365
|
+
// derive the batch row count from the column count under a 96-param budget:
|
|
366
|
+
// identical inserts, smaller batches.
|
|
367
|
+
function patchInitialSyncBatchParams(zcBase) {
|
|
368
|
+
const initialSyncPath = resolve(zcBase, 'services', 'change-source', 'pg', 'initial-sync.js');
|
|
369
|
+
if (!existsSync(initialSyncPath)) {
|
|
370
|
+
console.warn('[orez] initial-sync.js not found at', initialSyncPath);
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
let code = readFileSync(initialSyncPath, 'utf-8');
|
|
374
|
+
if (code.includes('orezRowsPerBatch'))
|
|
375
|
+
return;
|
|
376
|
+
// each pattern appears once in copyBinary and once in copyText
|
|
377
|
+
const replacements = [
|
|
378
|
+
[
|
|
379
|
+
'const insertBatchStmt = to.prepare(insertSql + `,${valuesSql}`.repeat(49));',
|
|
380
|
+
'const orezRowsPerBatch = Math.max(1, Math.floor(96 / Math.max(1, columnNames.length)));\n\tconst insertBatchStmt = to.prepare(insertSql + `,${valuesSql}`.repeat(orezRowsPerBatch - 1));',
|
|
381
|
+
],
|
|
382
|
+
[
|
|
383
|
+
'const valuesPerBatch = valuesPerRow * 50;',
|
|
384
|
+
'const valuesPerBatch = valuesPerRow * orezRowsPerBatch;',
|
|
385
|
+
],
|
|
386
|
+
[
|
|
387
|
+
'for (; pendingRows > 50; pendingRows -= 50) insertBatchStmt.run(pendingValues.slice(l, l += valuesPerBatch));',
|
|
388
|
+
'for (; pendingRows > orezRowsPerBatch; pendingRows -= orezRowsPerBatch) insertBatchStmt.run(pendingValues.slice(l, l += valuesPerBatch));',
|
|
389
|
+
],
|
|
390
|
+
];
|
|
391
|
+
for (const [from, to] of replacements) {
|
|
392
|
+
const count = code.split(from).length - 1;
|
|
393
|
+
if (count !== 2) {
|
|
394
|
+
console.warn(`[orez] expected 2 occurrences of initial-sync batch pattern, found ${count} — ` +
|
|
395
|
+
'zero-cache version may have changed; skipping the DO bound-parameter batch patch. ' +
|
|
396
|
+
'initial sync of tables with rows WILL fail on Cloudflare DOs until this is fixed.');
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
code = code.replaceAll(from, to);
|
|
400
|
+
}
|
|
401
|
+
writeFileSync(initialSyncPath, code);
|
|
402
|
+
console.log('[orez] patched zero-cache initial-sync.js (DO bound-parameter cap batches)');
|
|
403
|
+
}
|
|
359
404
|
function patchPgsqlParserWasm(nodeModulesPath, outDir) {
|
|
360
405
|
const sourcePackagePath = findPackageRoot(nodeModulesPath, 'libpg-query');
|
|
361
406
|
if (!sourcePackagePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-patches.js","sourceRoot":"","sources":["../../src/worker/cf-patches.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cf-patches.js","sourceRoot":"","sources":["../../src/worker/cf-patches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,MAAM,EACN,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,kBAAkB,GAAG;IACzB,MAAM;IACN,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,QAAQ;CACA,CAAA;AAEV,+EAA+E;AAC/E,8EAA8E;AAC9E,kEAAkE;AAClE,MAAM,uBAAuB,GAAG,sCAAsC,CAAA;AACtE,MAAM,yBAAyB,GAAG,oDAAoD,CAAA;AAetF,MAAM,UAAU,qBAAqB,CACnC,KAAyC;IAEzC,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9E,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,OAAO,CACpB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,CAC3E,CAAA;IACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACvE,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IAEvD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,uDAAuD,aAAa,EAAE,CACvE,CAAA;IACH,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IACzE,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IACrF,CAAC;IACD,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC1D,uBAAuB,CACrB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,EACjD,kBAAkB,EAClB;QACE,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC;KACvD,CACF,CAAA;IACD,uBAAuB,CACrB,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,EAChD,kBAAkB,EAClB,EAAE,CACH,CAAA;IAED,eAAe,CAAC,MAAM,CAAC,CAAA;IACvB,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9B,cAAc,CAAC,MAAM,CAAC,CAAA;IACtB,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9B,2BAA2B,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,oBAAoB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACnE,MAAM,cAAc,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAEzD,OAAO;QACL,eAAe;QACf,MAAM;QACN,UAAU;QACV,eAAe,EAAE,MAAM;QACvB,OAAO,EAAE;YACP,+DAA+D,EAAE,OAAO,CACtE,UAAU,EACV,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,CAChB;YACD,GAAG,cAAc;YACjB,GAAG,aAAa;SACjB;KACF,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IAClE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,cAAc,CAAC,CAAA;QAClE,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAErD,uEAAuE;IACvE,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAChF,OAAM;IACR,CAAC;IAED,aAAa,CACX,cAAc,EACd;;;;;;;;;;;;CAYH,CACE,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAC5C,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,KAAK,CAAC,CAAA;QACpE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,cAAc,CAAC,CAAA;YAChF,SAAQ;QACV,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC5C,SAAQ;QACV,CAAC;QAED,yDAAyD;QACzD,kEAAkE;QAClE,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CACV,6CAA6C,UAAU,OAAO;gBAC5D,4DAA4D,CAC/D,CAAA;YACD,SAAQ;QACV,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QAChF,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QACnC,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,2BAA2B,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;IAC9D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,aAAa,CAAC,CAAA;QAC/D,OAAM;IACR,CAAC;IAED,IAAI,IAAI,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAE/C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,OAAM;IACR,CAAC;IAED,kEAAkE;IAClE,iEAAiE;IACjE,0EAA0E;IAC1E,gFAAgF;IAChF,8DAA8D;IAC9D,MAAM,aAAa,GAAG;;;;;;;;;;;;;;CAcvB,CAAA;IAEC,uEAAuE;IACvE,8EAA8E;IAC9E,iEAAiE;IACjE,MAAM,oBAAoB,GACxB,4DAA4D,CAAA;IAC9D,MAAM,YAAY,GAChB,kBAAkB;QAClB,8FAA8F;QAC9F,iGAAiG;QACjG,gBAAgB;QAChB,wDAAwD;QACxD,uFAAuF;QACvF,mFAAmF;QACnF,qGAAqG;QACrG,IAAI;QACJ,yCAAyC;QACzC,+IAA+I;QAC/I,8CAA8C;QAC9C,iDAAiD,CAAA;IAEnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CACV,gEAAgE;YAC9D,4DAA4D,CAC/D,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAA;IACvE,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAA;IACtF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,UAAU,CAAC,CAAA;QACtE,OAAM;IACR,CAAC;IAED,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC5C,IACE,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EACxC,CAAC;QACD,OAAM;IACR,CAAC;IAED,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC1C,CAAC,IAAI,CAAC,QAAQ,CAAC,+CAA+C,CAAC,EAC/D,CAAC;QACD,OAAO,CAAC,IAAI,CACV,8EAA8E;YAC5E,4DAA4D,CAC/D,CAAA;QACD,OAAM;IACR,CAAC;IAED,aAAa,CACX,UAAU,EACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmJH,CACE,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAA;AACjF,CAAC;AAED,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,sCAAsC;AACtC,SAAS,2BAA2B,CAAC,MAAc;IACjD,MAAM,eAAe,GAAG,OAAO,CAC7B,MAAM,EACN,UAAU,EACV,eAAe,EACf,IAAI,EACJ,iBAAiB,CAClB,CAAA;IACD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,eAAe,CAAC,CAAA;QACpE,OAAM;IACR,CAAC;IACD,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAM;IAC7C,+DAA+D;IAC/D,MAAM,YAAY,GAA4B;QAC5C;YACE,6EAA6E;YAC7E,0LAA0L;SAC3L;QACD;YACE,2CAA2C;YAC3C,yDAAyD;SAC1D;QACD;YACE,+GAA+G;YAC/G,2IAA2I;SAC5I;KACF,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;QACzC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CACV,sEAAsE,KAAK,KAAK;gBAC9E,oFAAoF;gBACpF,mFAAmF,CACtF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC;IACD,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CACT,4EAA4E,CAC7E,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,eAAuB,EACvB,MAAc;IAEd,MAAM,iBAAiB,GAAG,eAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;IACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAA;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAEvE,MAAM,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;IACjD,IACE,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EACrC,CAAC;QACD,OAAO;YACL,aAAa,EAAE,iBAAiB;YAChC,kBAAkB,EAAE,eAAe;YACnC,2BAA2B,EAAE,eAAe;SAC7C,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CACV,sEAAsE;YACpE,+DAA+D,CAClE,CAAA;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,wDAAwD,CAAA;IACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CACV,sEAAsE;YACpE,8DAA8D,CACjE,CAAA;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG;;sCAEgB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;4DAyBY,CAAA;IAE1D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACzC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAA;IAC3E,OAAO;QACL,aAAa,EAAE,iBAAiB;QAChC,kBAAkB,EAAE,eAAe;QACnC,2BAA2B,EAAE,eAAe;KAC7C,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,eAAuB,EAAE,WAAmB;IACnE,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC;QACrC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC;QAC7D,GAAG,wBAAwB,CAAC,eAAe,EAAE,WAAW,CAAC;KAC1D,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,wBAAwB,CAC/B,eAAuB,EACvB,WAAmB;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAA;IAElC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChD,OAAO,WAAW,CAAC,MAAM,CAAC;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;SAC7E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,eAAuB;IAChD,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,MAAM,cAAc,GAA2B;QAC7C,eAAe,EAAE,UAAU;QAC3B,iBAAiB,EAAE,iBAAiB;QACpC,cAAc,EAAE,cAAc;QAC9B,qCAAqC,EAAE,qCAAqC;KAC7E,CAAA;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAClE,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;QACjE,IAAI,WAAW;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAA;IAC/C,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAkB,EAClB,UAAkB,EAClB,SAAiC;IAEjC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAM;IACnC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;QAC9C,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,CAAC;YACxE,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YAC9C,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3C,KAAK,MAAM,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,MAAM,WAAW,GAAG,GAAG,KAAK,IAAI,WAAW,EAAE,CAAA;gBAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;gBACvD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;gBACvD,WAAW,CACT,SAAS,CAAC,WAAW,CAAC,IAAI,aAAa,EACvC,aAAa,EACb,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAChC,CAAA;YACH,CAAC;YACD,SAAQ;QACV,CAAC;QAED,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACpE,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,MAAc,EAAE,OAAgB;IACnE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAM;IACR,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-browser.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/postgres-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,iBAAS,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"postgres-browser.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/postgres-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,iBAAS,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,OAkCzD;AAGD,eAAe,eAAe,CAAA"}
|
|
@@ -39,9 +39,12 @@ function browserPostgres(urlOrOptions, options) {
|
|
|
39
39
|
// disable auto-subscribe
|
|
40
40
|
if (opts.no_subscribe === undefined)
|
|
41
41
|
opts.no_subscribe = true;
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
|
|
42
|
+
// default pool size 2 — many concurrent connections can overwhelm the
|
|
43
|
+
// MessagePort proxy. an EXPLICIT max passes through: zero-cache's initial-sync
|
|
44
|
+
// copy pool sizes itself one-connection-per-table to work around the
|
|
45
|
+
// unresponsive-connection-after-COPY stream bug (same workaround zero ships
|
|
46
|
+
// for win32 node), and silently clamping it re-introduces the hang.
|
|
47
|
+
if (!opts.max)
|
|
45
48
|
opts.max = 2;
|
|
46
49
|
console.debug(`[postgres-browser] creating client db=${opts.database} repl=${!!opts.connection?.replication} fetch_types=${opts.fetch_types} max=${opts.max} keys=${Object.keys(opts).sort().join(',')}`);
|
|
47
50
|
const client = postgres(opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-browser.js","sourceRoot":"","sources":["../../../src/worker/shims/postgres-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,6EAA6E;AAC7E,2BAA2B;AAC3B,+CAA+C;AAC/C,OAAO,QAAQ,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,eAAe,GAAG,GAAkC,EAAE;IAC1D,MAAM,EAAE,GAAI,UAAkB,CAAC,oBAAoB,CAAA;IACnD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACxD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,SAAS,eAAe,CAAC,YAAkB,EAAE,OAAa;IACxD,MAAM,IAAI,GACR,OAAO,YAAY,KAAK,QAAQ;QAC9B,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE;QAC5C,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAA;IAEjC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,eAAe,EAAE,CAAC,CAAA;IAEpD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;YACpE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,UAAU,CAAA;YAChE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;YACvB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACf,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;IAChB,IAAI,CAAC,QAAQ,GAAI,UAAkB,CAAC,qBAAqB,IAAI,EAAE,CAAA;IAC/D,IAAI,CAAC,QAAQ,GAAI,UAAkB,CAAC,iBAAiB,IAAI,MAAM,CAAA;IAC/D,yBAAyB;IACzB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC7D,
|
|
1
|
+
{"version":3,"file":"postgres-browser.js","sourceRoot":"","sources":["../../../src/worker/shims/postgres-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,6EAA6E;AAC7E,2BAA2B;AAC3B,+CAA+C;AAC/C,OAAO,QAAQ,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,eAAe,GAAG,GAAkC,EAAE;IAC1D,MAAM,EAAE,GAAI,UAAkB,CAAC,oBAAoB,CAAA;IACnD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACxD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,SAAS,eAAe,CAAC,YAAkB,EAAE,OAAa;IACxD,MAAM,IAAI,GACR,OAAO,YAAY,KAAK,QAAQ;QAC9B,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE;QAC5C,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAA;IAEjC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,eAAe,EAAE,CAAC,CAAA;IAEpD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;YACpE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,UAAU,CAAA;YAChE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;YACvB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACf,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;IAChB,IAAI,CAAC,QAAQ,GAAI,UAAkB,CAAC,qBAAqB,IAAI,EAAE,CAAA;IAC/D,IAAI,CAAC,QAAQ,GAAI,UAAkB,CAAC,iBAAiB,IAAI,MAAM,CAAA;IAC/D,yBAAyB;IACzB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC7D,sEAAsE;IACtE,+EAA+E;IAC/E,qEAAqE;IACrE,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;IAE3B,OAAO,CAAC,KAAK,CACX,yCAAyC,IAAI,CAAC,QAAQ,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,gBAAgB,IAAI,CAAC,WAAW,QAAQ,IAAI,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC3L,CAAA;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;AACxC,eAAe,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-socket.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/postgres-socket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,2BAEzE;AAED;;;;GAIG;AACH,cAAM,iBAAkB,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"postgres-socket.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/postgres-socket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,2BAEzE;AAED;;;;GAIG;AACH,cAAM,iBAAkB,SAAQ,YAAY;IAwB9B,OAAO,CAAC,SAAS;IAvB7B,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAA2C;IAG9D,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,aAAa,CAA6C;IAGlE,QAAQ,UAAO;IACf,QAAQ,UAAO;IACf,SAAS,SAAI;IACb,YAAY,SAAI;IAGhB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;gBAKO,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI;IAyC1D,IAAI,SAAS,YAEZ;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,YAEb;IAED,IAAI,OAAO,YAEV;IAGD,KAAK,CACH,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EAClC,QAAQ,CAAC,EAAE,GAAG,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO;IAuCV,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ;IAqBnD,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK;IA2CnB,KAAK;IAIL,MAAM;IAON,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ;IAWpC,OAAO,CAAC,aAAa;IAWrB,YAAY;IAGZ,UAAU;IAGV,GAAG;IAGH,KAAK;IAGL,IAAI;IACJ,MAAM;IAGN,OAAO;IAKP,OAAO;;;;;IAGP,IAAI,aAAa,WAEhB;IACD,IAAI,UAAU,WAEb;IACD,IAAI,YAAY,WAEf;IACD,IAAI,YAAY,WAEf;IACD,IAAI,SAAS,WAEZ;CACF"}
|
|
@@ -41,9 +41,6 @@ class MessagePortSocket extends EventEmitter {
|
|
|
41
41
|
_destroyed = false;
|
|
42
42
|
_ended = false;
|
|
43
43
|
_readyState = 'opening';
|
|
44
|
-
// pause/resume buffering for COPY protocol backpressure
|
|
45
|
-
_paused = false;
|
|
46
|
-
_pauseBuffer = [];
|
|
47
44
|
// timeout tracking
|
|
48
45
|
_timeoutMs = 0;
|
|
49
46
|
_timeoutTimer = null;
|
|
@@ -80,10 +77,6 @@ class MessagePortSocket extends EventEmitter {
|
|
|
80
77
|
return;
|
|
81
78
|
this.bytesRead += buf.length;
|
|
82
79
|
this._resetTimeout();
|
|
83
|
-
if (this._paused) {
|
|
84
|
-
this._pauseBuffer.push(buf);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
80
|
this.emit('data', buf);
|
|
88
81
|
};
|
|
89
82
|
this.port.start();
|
|
@@ -181,8 +174,6 @@ class MessagePortSocket extends EventEmitter {
|
|
|
181
174
|
clearTimeout(this._timeoutTimer);
|
|
182
175
|
this._timeoutTimer = null;
|
|
183
176
|
}
|
|
184
|
-
// clear pause buffer
|
|
185
|
-
this._pauseBuffer.length = 0;
|
|
186
177
|
if (this.port) {
|
|
187
178
|
// delay port.close() to allow pending messages (like Terminate/X)
|
|
188
179
|
// to be delivered. closing immediately after postMessage loses
|
|
@@ -198,20 +189,23 @@ class MessagePortSocket extends EventEmitter {
|
|
|
198
189
|
this.emit('close', !!err);
|
|
199
190
|
return this;
|
|
200
191
|
}
|
|
201
|
-
// flow control —
|
|
202
|
-
//
|
|
203
|
-
//
|
|
204
|
-
//
|
|
192
|
+
// flow control — pause/resume are NO-OPS on this transport, deliberately.
|
|
193
|
+
// postgres pauses the socket on COPY backpressure (CopyData push() === false)
|
|
194
|
+
// and only resumes from the copy readable's read(). when the copy response's
|
|
195
|
+
// trailing protocol messages (CopyDone / CommandComplete / ReadyForQuery)
|
|
196
|
+
// arrive as separate port messages after a pause, the stream EOFs without
|
|
197
|
+
// ever calling read() again — nothing resumes, the tail stays gated, and the
|
|
198
|
+
// connection wedges for its next query (zero-cache initial sync hung on
|
|
199
|
+
// whichever table followed a large copy). on TCP the tail almost always
|
|
200
|
+
// shares a segment with copy data, so postgres parses it even while paused;
|
|
201
|
+
// a MessagePort has no segment coalescing, making the wedge deterministic.
|
|
202
|
+
// gating delivery also buys nothing here: an in-memory pipe has no transport
|
|
203
|
+
// buffer to relieve — the bytes occupy this isolate's heap whether they wait
|
|
204
|
+
// in the port queue or in the stream's buffer. so deliver everything.
|
|
205
205
|
pause() {
|
|
206
|
-
this._paused = true;
|
|
207
206
|
return this;
|
|
208
207
|
}
|
|
209
208
|
resume() {
|
|
210
|
-
this._paused = false;
|
|
211
|
-
// flush buffered messages — exit if data handler re-pauses
|
|
212
|
-
while (this._pauseBuffer.length && !this._paused) {
|
|
213
|
-
this.emit('data', this._pauseBuffer.shift());
|
|
214
|
-
}
|
|
215
209
|
return this;
|
|
216
210
|
}
|
|
217
211
|
// timeout — emit 'timeout' after ms of inactivity (no reads or writes).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-socket.js","sourceRoot":"","sources":["../../../src/worker/shims/postgres-socket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAsC;IACxE,OAAO,GAAG,EAAE,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,iBAAkB,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"postgres-socket.js","sourceRoot":"","sources":["../../../src/worker/shims/postgres-socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,9 @@ export declare class Database {
|
|
|
75
75
|
get open(): boolean;
|
|
76
76
|
get inTransaction(): boolean;
|
|
77
77
|
_execTransactionAware(sql: string, sqlStorage: SqlStorageLike): SqlStorageCursor;
|
|
78
|
+
_cowTable(table: string): void;
|
|
78
79
|
_rewriteForSnapshot(sql: string): string;
|
|
80
|
+
_cowForWrite(sql: string): void;
|
|
79
81
|
/** prepare a statement */
|
|
80
82
|
prepare<T = Record<string, SqlStorageValue>>(sql: string): Statement<T>;
|
|
81
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/sqlite.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,CAAA;AAElE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAA;IACrE,0EAA0E;IAC1E,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CACpC;AAOD,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,MAAM,CAAA;gBAEA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAID,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;CACjC;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/worker/shims/sqlite.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,CAAA;AAElE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAA;IACrE,0EAA0E;IAC1E,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CACpC;AAOD,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,MAAM,CAAA;gBAEA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAID,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;CACjC;AAsnBD,qBAAa,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAIX,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IA+D7D,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS;IA8BpC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS;IAmBxC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;IAkB9B,OAAO,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAiBlD,qEAAqE;IACrE,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAIrC,gEAAgE;IAChE,UAAU,IAAI,SAAS;IAIvB,8BAA8B;IAC9B,YAAY,IAAI,OAAO,EAAE;IAIzB,8BAA8B;IAC9B,eAAe,IAAI,IAAI;IAEvB,6CAA6C;IAC7C,OAAO,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAchF;AAID,KAAK,mBAAmB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,IAAI,CAAC,GAAG;IACxE,QAAQ,EAAE,CAAC,CAAA;IACX,SAAS,EAAE,CAAC,CAAA;IACZ,SAAS,EAAE,CAAC,CAAA;CACb,CAAA;AAID,qBAAa,QAAQ;;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBAUT,aAAa,EAAE,cAAc,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAgCrF,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IASD,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,gBAAgB;IA2GhF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgC9B,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQxC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ/B,0BAA0B;IAC1B,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAOvE;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IA4F/D;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoC1B;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAkDrF,oCAAoC;IACpC,KAAK,IAAI,IAAI;IAOb,6DAA6D;IAC7D,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAInC,8BAA8B;IAC9B,mBAAmB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;CAG7C;AAKD,qBAAa,eAAe;;IAC1B,EAAE,EAAE,QAAQ,CAAA;gBAKA,EAAE,EAAE,QAAQ;IAwBxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS;IAS/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;IAS7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAgB/C,KAAK,IAAI,SAAS;IAWlB,eAAe,IAAI,SAAS;IAO5B,cAAc,IAAI,SAAS;IAO3B,MAAM,IAAI,SAAS;IAOnB,QAAQ,IAAI,SAAS;CAMtB;AAQD,eAAe,QAAQ,CAAA"}
|
|
@@ -271,6 +271,34 @@ function maybeZeroIntrospectionCursor(sqlStorage, sql, values) {
|
|
|
271
271
|
function snapshotTableName(prefix, table) {
|
|
272
272
|
return `${prefix}_${table.replace(/[^A-Za-z0-9_]/g, '_')}`;
|
|
273
273
|
}
|
|
274
|
+
// copy one table's current rows into a snapshot table, recreating the original
|
|
275
|
+
// table's columns + indexes so reads against the copy use the same query plan
|
|
276
|
+
// (an index-less `CREATE TABLE AS SELECT` forces full scans on every read).
|
|
277
|
+
function copyTableToSnapshot(sql, source, snapshot) {
|
|
278
|
+
const createRow = execSql(sql, `SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ?`, [source], 'snapshot.schema').toArray()[0];
|
|
279
|
+
const createSql = createRow ? String(createRow.sql ?? '') : '';
|
|
280
|
+
// rewrite the source table name in its own CREATE statement to the snapshot
|
|
281
|
+
// name, preserving column types/constraints, then copy rows + indexes.
|
|
282
|
+
const snapCreate = createSql
|
|
283
|
+
? replaceIdentifierOutsideLiterals(createSql, source, snapshot)
|
|
284
|
+
: `CREATE TABLE ${quoteIdentifier(snapshot)} AS SELECT * FROM ${quoteIdentifier(source)}`;
|
|
285
|
+
execSql(sql, snapCreate, [], 'snapshot.create');
|
|
286
|
+
if (createSql) {
|
|
287
|
+
execSql(sql, `INSERT INTO ${quoteIdentifier(snapshot)} SELECT * FROM ${quoteIdentifier(source)}`, [], 'snapshot.fill');
|
|
288
|
+
const indexes = execSql(sql, `SELECT sql FROM sqlite_master WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL`, [source], 'snapshot.index-list').toArray();
|
|
289
|
+
for (const idx of indexes) {
|
|
290
|
+
const idxSql = String(idx.sql ?? '');
|
|
291
|
+
if (!idxSql)
|
|
292
|
+
continue;
|
|
293
|
+
// index names must be unique; prefix them into the snapshot namespace too.
|
|
294
|
+
const rewritten = replaceIdentifierOutsideLiterals(idxSql, source, snapshot);
|
|
295
|
+
try {
|
|
296
|
+
execSql(sql, rewritten.replace(/CREATE\s+(UNIQUE\s+)?INDEX\s+("?)([A-Za-z_][\w.]*)\2/i, (_m, uniq = '', _q, name) => `CREATE ${uniq || ''}INDEX ${quoteIdentifier(`${snapshot}__${name}`)}`), [], 'snapshot.index');
|
|
297
|
+
}
|
|
298
|
+
catch { }
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
274
302
|
function isSnapshotInternalTable(name) {
|
|
275
303
|
return name.startsWith('_orez_snapshot_');
|
|
276
304
|
}
|
|
@@ -311,6 +339,47 @@ function shouldSnapshotTable(name) {
|
|
|
311
339
|
!name.startsWith('_cf_') &&
|
|
312
340
|
!isSnapshotInternalTable(name));
|
|
313
341
|
}
|
|
342
|
+
// -- copy-on-write snapshot registry --
|
|
343
|
+
//
|
|
344
|
+
// zero's view-syncer reader opens `BEGIN CONCURRENT` to hold a stable read view
|
|
345
|
+
// of the replica while the inline replica-writer applies changes concurrently
|
|
346
|
+
// (both run in the same DO isolate, the writer only at await boundaries). DO
|
|
347
|
+
// SQLite has no `BEGIN CONCURRENT` / read-snapshot primitive, so we emulate one.
|
|
348
|
+
//
|
|
349
|
+
// the original emulation eagerly copied EVERY table on snapshot open
|
|
350
|
+
// (`CREATE TABLE _snap AS SELECT * FROM t`) — O(replica) per reader per advance,
|
|
351
|
+
// and the copies had no indexes so every hydration read full-scanned them
|
|
352
|
+
// (measured: ~50x row-read amplification, minutes to hydrate a ~2400-row replica).
|
|
353
|
+
//
|
|
354
|
+
// instead we copy-on-write: a reader's snapshot starts EMPTY and reads live,
|
|
355
|
+
// fully-indexed tables. only when the replica-writer is about to mutate table X
|
|
356
|
+
// do we copy X (with its schema + indexes) into each open reader's snapshot so
|
|
357
|
+
// that reader keeps seeing X's pre-write rows. since writes are rare during a
|
|
358
|
+
// hydration, readers almost always hit the live indexed tables.
|
|
359
|
+
const openReaderSnapshots = new Set();
|
|
360
|
+
// parse the target table of a writer DML/DDL statement so the writer can
|
|
361
|
+
// copy-on-write that table for open readers before mutating it. matches the
|
|
362
|
+
// statement shapes zero's change-processor emits (INSERT OR REPLACE INTO,
|
|
363
|
+
// UPDATE, DELETE FROM, ALTER TABLE, DROP TABLE, CREATE TABLE/INDEX).
|
|
364
|
+
// only writes that mutate an EXISTING table need copy-on-write. CREATE TABLE
|
|
365
|
+
// makes a brand-new table no open reader snapshot ever referenced, so it is
|
|
366
|
+
// intentionally excluded (and copying a not-yet-existing table would throw).
|
|
367
|
+
const WRITE_TABLE_RE = /^\s*(?:INSERT(?:\s+OR\s+\w+)?\s+INTO|UPDATE(?:\s+OR\s+\w+)?|DELETE\s+FROM|ALTER\s+TABLE|DROP\s+TABLE(?:\s+IF\s+EXISTS)?)\s+("?)([A-Za-z_][\w.]*)\1/i;
|
|
368
|
+
function writeTargetTable(sql) {
|
|
369
|
+
const m = WRITE_TABLE_RE.exec(sql);
|
|
370
|
+
if (!m)
|
|
371
|
+
return undefined;
|
|
372
|
+
const name = m[2];
|
|
373
|
+
return shouldSnapshotTable(name) ? name : undefined;
|
|
374
|
+
}
|
|
375
|
+
// before the writer mutates `table`, freeze its current rows for every open
|
|
376
|
+
// reader snapshot that hasn't already copied it.
|
|
377
|
+
function cowOpenReadersBeforeWrite(table) {
|
|
378
|
+
if (openReaderSnapshots.size === 0)
|
|
379
|
+
return;
|
|
380
|
+
for (const reader of openReaderSnapshots)
|
|
381
|
+
reader._cowTable(table);
|
|
382
|
+
}
|
|
314
383
|
function currentConnectionRole() {
|
|
315
384
|
return globalThis.__orez_zero_sqlite_role === 'replica-writer'
|
|
316
385
|
? 'replica-writer'
|
|
@@ -493,6 +562,8 @@ export class Statement {
|
|
|
493
562
|
const resolved = this.#resolveParams(params);
|
|
494
563
|
const sql = this.#db._rewriteForSnapshot(resolved.sql);
|
|
495
564
|
const values = resolved.values;
|
|
565
|
+
if (!isTxCmd)
|
|
566
|
+
this.#db._cowForWrite(sql);
|
|
496
567
|
const cursor = isTxCmd && values.length === 0
|
|
497
568
|
? this.#db._execTransactionAware(sql, this.#sql)
|
|
498
569
|
: execSql(this.#sql, sql, values, 'statement.run');
|
|
@@ -581,6 +652,7 @@ export class Database {
|
|
|
581
652
|
#inTransaction;
|
|
582
653
|
#snapshotTables;
|
|
583
654
|
#snapshotPrefix;
|
|
655
|
+
#snapshotPrefixActive;
|
|
584
656
|
#snapshotCounter;
|
|
585
657
|
#connectionRole;
|
|
586
658
|
constructor(sqlOrFilename, _options) {
|
|
@@ -603,6 +675,7 @@ export class Database {
|
|
|
603
675
|
this.#inTransaction = false;
|
|
604
676
|
this.#snapshotTables = null;
|
|
605
677
|
this.#snapshotPrefix = createSnapshotPrefix();
|
|
678
|
+
this.#snapshotPrefixActive = this.#snapshotPrefix;
|
|
606
679
|
this.#snapshotCounter = 0;
|
|
607
680
|
this.#connectionRole = currentConnectionRole();
|
|
608
681
|
activeSnapshotPrefixes.add(this.#snapshotPrefix);
|
|
@@ -695,24 +768,31 @@ export class Database {
|
|
|
695
768
|
}
|
|
696
769
|
return execSql(sqlStorage, sql, [], 'transaction.statement');
|
|
697
770
|
}
|
|
771
|
+
// open a copy-on-write snapshot: start with NO copies (reads hit the live,
|
|
772
|
+
// indexed tables) and register so the replica-writer can freeze a table for
|
|
773
|
+
// this reader right before mutating it. see openReaderSnapshots above.
|
|
698
774
|
#beginSnapshot() {
|
|
699
775
|
this.#dropSnapshot();
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
776
|
+
this.#snapshotPrefixActive = `${this.#snapshotPrefix}_${++this.#snapshotCounter}`;
|
|
777
|
+
this.#snapshotTables = new Map();
|
|
778
|
+
openReaderSnapshots.add(this);
|
|
779
|
+
}
|
|
780
|
+
// copy `table`'s current rows into this reader's snapshot the first time the
|
|
781
|
+
// writer touches it while the snapshot is open. called by the writer via
|
|
782
|
+
// cowOpenReadersBeforeWrite() BEFORE the mutation is applied.
|
|
783
|
+
_cowTable(table) {
|
|
784
|
+
const tables = this.#snapshotTables;
|
|
785
|
+
if (!tables || tables.has(table) || !shouldSnapshotTable(table))
|
|
786
|
+
return;
|
|
787
|
+
const exists = execSql(this.#sql, `SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?`, [table], 'snapshot.exists').toArray();
|
|
788
|
+
if (exists.length === 0)
|
|
789
|
+
return;
|
|
790
|
+
const snapshot = snapshotTableName(this.#snapshotPrefixActive, table);
|
|
791
|
+
copyTableToSnapshot(this.#sql, table, snapshot);
|
|
792
|
+
tables.set(table, snapshot);
|
|
714
793
|
}
|
|
715
794
|
#dropSnapshot() {
|
|
795
|
+
openReaderSnapshots.delete(this);
|
|
716
796
|
const tables = this.#snapshotTables;
|
|
717
797
|
if (!tables)
|
|
718
798
|
return;
|
|
@@ -729,6 +809,17 @@ export class Database {
|
|
|
729
809
|
return sql;
|
|
730
810
|
return rewriteSQLTables(sql, this.#snapshotTables);
|
|
731
811
|
}
|
|
812
|
+
// when the replica-writer is about to mutate a table, freeze it for any open
|
|
813
|
+
// reader snapshot first (copy-on-write). reader connections never mutate live
|
|
814
|
+
// tables, so this only fires from the writer's connection.
|
|
815
|
+
_cowForWrite(sql) {
|
|
816
|
+
if (this.#connectionRole !== 'replica-writer' || openReaderSnapshots.size === 0) {
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
const table = writeTargetTable(sql);
|
|
820
|
+
if (table)
|
|
821
|
+
cowOpenReadersBeforeWrite(table);
|
|
822
|
+
}
|
|
732
823
|
/** prepare a statement */
|
|
733
824
|
prepare(sql) {
|
|
734
825
|
if (!this.#open) {
|
|
@@ -855,7 +946,9 @@ export class Database {
|
|
|
855
946
|
this._execTransactionAware(stmt, this.#sql);
|
|
856
947
|
}
|
|
857
948
|
else {
|
|
858
|
-
|
|
949
|
+
const rewritten = this._rewriteForSnapshot(stmt);
|
|
950
|
+
this._cowForWrite(rewritten);
|
|
951
|
+
execSql(this.#sql, rewritten, [], 'database.exec');
|
|
859
952
|
}
|
|
860
953
|
}
|
|
861
954
|
return this;
|