orez 0.4.42 → 0.4.44
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/pg-proxy-do-backend.d.ts.map +1 -1
- package/dist/pg-proxy-do-backend.js +12 -22
- package/dist/pg-proxy-do-backend.js.map +1 -1
- package/dist/pg-sqlite-compiler/passes/dml-cte.d.ts +22 -0
- package/dist/pg-sqlite-compiler/passes/dml-cte.d.ts.map +1 -0
- package/dist/pg-sqlite-compiler/passes/dml-cte.js +161 -0
- package/dist/pg-sqlite-compiler/passes/dml-cte.js.map +1 -0
- package/dist/pg-sqlite-compiler/passes/index.d.ts.map +1 -1
- package/dist/pg-sqlite-compiler/passes/index.js +3 -0
- package/dist/pg-sqlite-compiler/passes/index.js.map +1 -1
- package/dist/worker/zero-cache-replica-repair.d.ts +5 -0
- package/dist/worker/zero-cache-replica-repair.d.ts.map +1 -1
- package/dist/worker/zero-cache-replica-repair.js +37 -0
- package/dist/worker/zero-cache-replica-repair.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Pass } from '../types.js';
|
|
2
|
+
export declare const COUNT_MARKER_PREFIX = "__orez_count__";
|
|
3
|
+
/**
|
|
4
|
+
* Restructure a counted-delete CTE statement in place. `stmt` is the inner
|
|
5
|
+
* tag-wrapped statement node (`{ SelectStmt: … }`). Returns the count column
|
|
6
|
+
* name when the statement matched and was rewritten, else null (untouched).
|
|
7
|
+
*/
|
|
8
|
+
export declare function transformCountedDeleteCte(stmt: any): {
|
|
9
|
+
countColumn: string;
|
|
10
|
+
} | null;
|
|
11
|
+
/**
|
|
12
|
+
* Fold an executed counted-delete result back into the original statement's
|
|
13
|
+
* shape: N marker rows → `[{ <col>: N }]`. `columnsOrSql` is either the
|
|
14
|
+
* result column list or the executed SQL (for zero-row results, where some
|
|
15
|
+
* drivers report no columns). Returns null when the marker is absent.
|
|
16
|
+
*/
|
|
17
|
+
export declare function foldCountMarkerResult(rowCount: number, columnsOrSql: readonly string[] | string): {
|
|
18
|
+
rows: Array<Record<string, number>>;
|
|
19
|
+
columns: string[];
|
|
20
|
+
} | null;
|
|
21
|
+
export declare const dmlCtePass: Pass;
|
|
22
|
+
//# sourceMappingURL=dml-cte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dml-cte.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/dml-cte.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAiCnD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2DnF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GACvC;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAWnE;AAED,eAAO,MAAM,UAAU,EAAE,IAuBxB,CAAA"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data-modifying CTEs (`WITH x AS (DELETE/INSERT/UPDATE …) …`) are
|
|
3
|
+
* Postgres-only; SQLite rejects DML inside a WITH clause.
|
|
4
|
+
*
|
|
5
|
+
* The one shape we translate — because zero-cache's changeLog purge depends
|
|
6
|
+
* on it (zero 1.6 storer.js: a leading `keep` boundary CTE, a
|
|
7
|
+
* `purged AS (DELETE … RETURNING …)` CTE, and `SELECT COUNT(*) FROM purged`)
|
|
8
|
+
* — is the "counted delete": an outer SELECT that only counts the rows a
|
|
9
|
+
* single DELETE CTE removed. It restructures into a top-level
|
|
10
|
+
* `WITH <other ctes> DELETE … RETURNING 1 AS "__orez_count__<col>"`, which
|
|
11
|
+
* SQLite executes natively (plain CTEs ARE allowed on a DELETE).
|
|
12
|
+
*
|
|
13
|
+
* The result shape changes (N marker rows instead of one count row), so the
|
|
14
|
+
* emitted SQL is self-describing: the RETURNING alias carries the count
|
|
15
|
+
* column name behind COUNT_MARKER_PREFIX. Runtimes executing compiled SQL
|
|
16
|
+
* (orez's DoBackend) detect the marker and fold the rows back into
|
|
17
|
+
* `[{ <col>: rowCount }]` — see foldCountMarkerResult. Left untranslated,
|
|
18
|
+
* every changeLog purge tick 500s on the DO backend and the log grows
|
|
19
|
+
* forever (the 2026-07 CF rows-written burn).
|
|
20
|
+
*
|
|
21
|
+
* Every other data-modifying CTE gets a warning (strict mode rejects it).
|
|
22
|
+
*/
|
|
23
|
+
import { walkAst } from './ast-utils.js';
|
|
24
|
+
export const COUNT_MARKER_PREFIX = '__orez_count__';
|
|
25
|
+
const DML_TAGS = ['DeleteStmt', 'InsertStmt', 'UpdateStmt'];
|
|
26
|
+
function cteDmlTag(cte) {
|
|
27
|
+
const query = cte?.CommonTableExpr?.ctequery;
|
|
28
|
+
if (!query || typeof query !== 'object')
|
|
29
|
+
return null;
|
|
30
|
+
for (const tag of DML_TAGS) {
|
|
31
|
+
if (query[tag])
|
|
32
|
+
return tag;
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
function isCountStarTarget(target) {
|
|
37
|
+
const func = target?.ResTarget?.val?.FuncCall;
|
|
38
|
+
if (!func?.agg_star)
|
|
39
|
+
return false;
|
|
40
|
+
const parts = func.funcname;
|
|
41
|
+
if (!Array.isArray(parts) || parts.length === 0)
|
|
42
|
+
return false;
|
|
43
|
+
const last = parts[parts.length - 1];
|
|
44
|
+
const name = last?.String?.sval ?? last?.String?.str;
|
|
45
|
+
return typeof name === 'string' && name.toLowerCase() === 'count';
|
|
46
|
+
}
|
|
47
|
+
function referencesRelation(node, name) {
|
|
48
|
+
let found = false;
|
|
49
|
+
walkAst(node, {
|
|
50
|
+
RangeVar: (rangeVar) => {
|
|
51
|
+
if (!rangeVar?.schemaname && rangeVar?.relname === name)
|
|
52
|
+
found = true;
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return found;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Restructure a counted-delete CTE statement in place. `stmt` is the inner
|
|
59
|
+
* tag-wrapped statement node (`{ SelectStmt: … }`). Returns the count column
|
|
60
|
+
* name when the statement matched and was rewritten, else null (untouched).
|
|
61
|
+
*/
|
|
62
|
+
export function transformCountedDeleteCte(stmt) {
|
|
63
|
+
const sel = stmt?.SelectStmt;
|
|
64
|
+
if (!sel?.withClause?.ctes || sel.withClause.recursive)
|
|
65
|
+
return null;
|
|
66
|
+
if (sel.op !== 'SETOP_NONE' ||
|
|
67
|
+
sel.whereClause ||
|
|
68
|
+
sel.groupClause ||
|
|
69
|
+
sel.havingClause ||
|
|
70
|
+
sel.sortClause ||
|
|
71
|
+
sel.limitCount ||
|
|
72
|
+
sel.limitOffset ||
|
|
73
|
+
sel.distinctClause ||
|
|
74
|
+
sel.valuesLists) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const ctes = sel.withClause.ctes;
|
|
78
|
+
const dmlIndexes = ctes
|
|
79
|
+
.map((cte, index) => (cteDmlTag(cte) ? index : -1))
|
|
80
|
+
.filter((index) => index >= 0);
|
|
81
|
+
if (dmlIndexes.length !== 1)
|
|
82
|
+
return null;
|
|
83
|
+
const dmlIndex = dmlIndexes[0];
|
|
84
|
+
const dmlCte = ctes[dmlIndex].CommonTableExpr;
|
|
85
|
+
if (cteDmlTag(ctes[dmlIndex]) !== 'DeleteStmt')
|
|
86
|
+
return null;
|
|
87
|
+
const deleteStmt = dmlCte.ctequery.DeleteStmt;
|
|
88
|
+
// outer select must be exactly `SELECT COUNT(*) [AS col] FROM <dml cte>`
|
|
89
|
+
if (sel.targetList?.length !== 1 || !isCountStarTarget(sel.targetList[0]))
|
|
90
|
+
return null;
|
|
91
|
+
const from = sel.fromClause;
|
|
92
|
+
if (from?.length !== 1)
|
|
93
|
+
return null;
|
|
94
|
+
const fromRel = from[0]?.RangeVar;
|
|
95
|
+
if (!fromRel || fromRel.schemaname || fromRel.relname !== dmlCte.ctename)
|
|
96
|
+
return null;
|
|
97
|
+
// the delete CTE must not be read anywhere else (another CTE consuming its
|
|
98
|
+
// RETURNING rows cannot be preserved once the DELETE moves to the top level)
|
|
99
|
+
const others = ctes.filter((_, index) => index !== dmlIndex);
|
|
100
|
+
if (others.some((cte) => referencesRelation(cte.CommonTableExpr?.ctequery, dmlCte.ctename))) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
const countColumn = sel.targetList[0].ResTarget?.name ?? 'count';
|
|
104
|
+
deleteStmt.returningList = [
|
|
105
|
+
{
|
|
106
|
+
ResTarget: {
|
|
107
|
+
name: `${COUNT_MARKER_PREFIX}${countColumn}`,
|
|
108
|
+
val: { A_Const: { ival: { ival: 1 } } },
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
];
|
|
112
|
+
if (others.length) {
|
|
113
|
+
deleteStmt.withClause = { ...sel.withClause, ctes: others };
|
|
114
|
+
}
|
|
115
|
+
delete stmt.SelectStmt;
|
|
116
|
+
stmt.DeleteStmt = deleteStmt;
|
|
117
|
+
return { countColumn };
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Fold an executed counted-delete result back into the original statement's
|
|
121
|
+
* shape: N marker rows → `[{ <col>: N }]`. `columnsOrSql` is either the
|
|
122
|
+
* result column list or the executed SQL (for zero-row results, where some
|
|
123
|
+
* drivers report no columns). Returns null when the marker is absent.
|
|
124
|
+
*/
|
|
125
|
+
export function foldCountMarkerResult(rowCount, columnsOrSql) {
|
|
126
|
+
// the deparser quotes the alias only when required, so match both forms
|
|
127
|
+
const column = typeof columnsOrSql === 'string'
|
|
128
|
+
? (columnsOrSql.match(new RegExp(`"${COUNT_MARKER_PREFIX}([^"]+)"`))?.[1] ??
|
|
129
|
+
columnsOrSql.match(new RegExp(`\\b${COUNT_MARKER_PREFIX}(\\w+)\\b`))?.[1])
|
|
130
|
+
: columnsOrSql.length === 1 && columnsOrSql[0].startsWith(COUNT_MARKER_PREFIX)
|
|
131
|
+
? columnsOrSql[0].slice(COUNT_MARKER_PREFIX.length)
|
|
132
|
+
: undefined;
|
|
133
|
+
if (!column)
|
|
134
|
+
return null;
|
|
135
|
+
return { rows: [{ [column]: rowCount }], columns: [column] };
|
|
136
|
+
}
|
|
137
|
+
export const dmlCtePass = {
|
|
138
|
+
name: 'dml-cte',
|
|
139
|
+
run(stmt, ctx) {
|
|
140
|
+
transformCountedDeleteCte(stmt);
|
|
141
|
+
// anything still holding DML inside a CTE is untranslatable
|
|
142
|
+
walkAst(stmt, {
|
|
143
|
+
CommonTableExpr: (cte) => {
|
|
144
|
+
const query = cte?.ctequery;
|
|
145
|
+
if (!query || typeof query !== 'object')
|
|
146
|
+
return;
|
|
147
|
+
for (const tag of DML_TAGS) {
|
|
148
|
+
if (query[tag]) {
|
|
149
|
+
ctx.warnings.push({
|
|
150
|
+
kind: 'data-modifying-cte',
|
|
151
|
+
near: 'CommonTableExpr',
|
|
152
|
+
message: 'data-modifying CTEs are Postgres-only (SQLite rejects DML in WITH); only the counted-delete shape is translated',
|
|
153
|
+
});
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=dml-cte.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dml-cte.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/dml-cte.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/index.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEpD,eAAO,MAAM,cAAc,EAAE,IAAI,EAahC,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAc9D"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { catalogPass } from './catalog.js';
|
|
2
2
|
import { datetimePass } from './datetime.js';
|
|
3
|
+
import { dmlCtePass } from './dml-cte.js';
|
|
3
4
|
import { schemaPass } from './schema.js';
|
|
4
5
|
import { typesPass } from './types.js';
|
|
5
6
|
import { unsupportedPass } from './unsupported.js';
|
|
6
7
|
export const DEFAULT_PASSES = [
|
|
8
|
+
// structural rewrites first so later passes see the final statement shape
|
|
9
|
+
dmlCtePass,
|
|
7
10
|
typesPass,
|
|
8
11
|
datetimePass,
|
|
9
12
|
catalogPass,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAalD,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,SAAS;IACT,YAAY;IACZ,WAAW;IACX,UAAU;IACV,eAAe;IACf,UAAU;IACV,cAAc;IACd,eAAe;IACf,cAAc;IACd,gBAAgB;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,OAAY,EAAE,GAAgB;IACtD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,OAAO,CAAA;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAM;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,cAAc,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,OAAO,EAAE;aACnD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAalD,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,0EAA0E;IAC1E,UAAU;IACV,SAAS;IACT,YAAY;IACZ,WAAW;IACX,UAAU;IACV,eAAe;IACf,UAAU;IACV,cAAc;IACd,eAAe;IACf,cAAc;IACd,gBAAgB;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,OAAY,EAAE,GAAgB;IACtD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,OAAO,CAAA;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAM;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,cAAc,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,OAAO,EAAE;aACnD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -63,4 +63,9 @@ export declare function clearChangeStreamerStateIfReplicaUninitialized(sql: Repl
|
|
|
63
63
|
appId: string;
|
|
64
64
|
logPrefix?: string;
|
|
65
65
|
}): Promise<void>;
|
|
66
|
+
export declare function healNullReplicaRank(backendExec: BackendExec, opts: {
|
|
67
|
+
appId: string;
|
|
68
|
+
nowMs?: number;
|
|
69
|
+
logPrefix?: string;
|
|
70
|
+
}): Promise<void>;
|
|
66
71
|
//# sourceMappingURL=zero-cache-replica-repair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zero-cache-replica-repair.d.ts","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,KACf,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAUhE;AAWD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACf,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAeD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,IAAI,CA8BN;AASD,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAoDf;AASD,wBAAsB,8CAA8C,CAClE,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
1
|
+
{"version":3,"file":"zero-cache-replica-repair.d.ts","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,KACf,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAUhE;AAWD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACf,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAeD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,IAAI,CA8BN;AASD,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAoDf;AASD,wBAAsB,8CAA8C,CAClE,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAUD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
|
@@ -182,4 +182,41 @@ export async function clearChangeStreamerStateIfReplicaUninitialized(sql, backen
|
|
|
182
182
|
' cdc state tables so initial sync re-runs');
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
+
// zero 1.6's replicaSchema (valita) requires replicas.rank to be a bigint;
|
|
186
|
+
// getReplicaAtVersion parses every boot. rank is BIGSERIAL on real pg, so a
|
|
187
|
+
// NULL can never exist there — but on the DO backend a replicas row written
|
|
188
|
+
// before the serial-column emulation kept NULL, and the parse TypeError kills
|
|
189
|
+
// the change-streamer worker in a restart loop. every restart re-streams the
|
|
190
|
+
// retained change set (the 2026-07 rows-written burn). backfill rank with
|
|
191
|
+
// distinct Date.now()-based values — the same scheme zero's own createReplica
|
|
192
|
+
// uses — preserving ORDER BY rank DESC picking the newest replica.
|
|
193
|
+
export async function healNullReplicaRank(backendExec, opts) {
|
|
194
|
+
const logPrefix = opts.logPrefix ?? '[orez]';
|
|
195
|
+
const list = await backendExec("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE $1", [opts.appId + '_%replicas']);
|
|
196
|
+
if (list.error) {
|
|
197
|
+
console.error(logPrefix + ' replicas rank heal failed (list): ' + list.error);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
for (const row of list.rows || []) {
|
|
201
|
+
const name = String(row.name);
|
|
202
|
+
const table = name.replaceAll('"', '""');
|
|
203
|
+
const bad = await backendExec('SELECT id FROM "' + table + '" WHERE rank IS NULL');
|
|
204
|
+
if (bad.error) {
|
|
205
|
+
console.error(logPrefix + ' replicas rank heal failed (scan): ' + bad.error);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const ids = (bad.rows || []).map((r) => String(r.id));
|
|
209
|
+
let rank = opts.nowMs ?? Date.now();
|
|
210
|
+
for (const id of ids) {
|
|
211
|
+
const updated = await backendExec('UPDATE "' + table + '" SET rank = $1 WHERE id = $2 AND rank IS NULL', [rank++, id]);
|
|
212
|
+
if (updated.error) {
|
|
213
|
+
console.error(logPrefix + ' replicas rank heal failed (update): ' + updated.error);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (ids.length) {
|
|
218
|
+
console.log(logPrefix + ' healed ' + ids.length + ' NULL rank row(s) in ' + name);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
185
222
|
//# sourceMappingURL=zero-cache-replica-repair.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zero-cache-replica-repair.js","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zero-cache-replica-repair.js","sourceRoot":"","sources":["../../src/worker/zero-cache-replica-repair.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orez",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.44",
|
|
4
4
|
"description": "PGlite-powered zero-sync development backend. No Docker required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"@electric-sql/pglite": "0.4.1",
|
|
88
88
|
"@electric-sql/pglite-tools": "^0.3.1",
|
|
89
89
|
"@pgsql/traverse": "17.2.6",
|
|
90
|
-
"bedrock-sqlite": "0.4.
|
|
90
|
+
"bedrock-sqlite": "0.4.44",
|
|
91
91
|
"citty": "^0.2.0",
|
|
92
92
|
"pg-gateway": "0.3.0-beta.4",
|
|
93
93
|
"pgsql-parser": "^17.9.11",
|