@rocicorp/zero 0.19.2025040801 → 0.19.2025040901
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/out/analyze-query/src/bin-analyze.js +1 -1
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/{chunk-XSKBSESQ.js → chunk-56G3QAI6.js} +5 -5
- package/out/chunk-56G3QAI6.js.map +7 -0
- package/out/{chunk-S6IF5D2U.js → chunk-JW7AJ755.js} +4 -1
- package/out/{chunk-S6IF5D2U.js.map → chunk-JW7AJ755.js.map} +2 -2
- package/out/{inspector-C2BDA4K7.js → inspector-R2AXP2NY.js} +2 -2
- package/out/replicache/src/error-responses.d.ts +1 -2
- package/out/replicache/src/error-responses.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store.d.ts +3 -3
- package/out/replicache/src/kv/store.d.ts +1 -1
- package/out/replicache/src/kv/store.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.d.ts +3 -3
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
- package/out/solid.js +2 -2
- package/out/z2s/src/compiler.d.ts +1 -0
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +1 -0
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/sql.js +10 -1
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +9 -2
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +7 -7
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js +4 -4
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +21 -17
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +18 -18
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js +3 -3
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +4 -4
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +28 -25
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/control.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.js +4 -1
- package/out/zero-cache/src/services/change-source/protocol/current/control.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +2 -0
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +20 -8
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +3 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +5 -5
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/custom.js +13 -0
- package/out/zero-pg/src/custom.js.map +1 -1
- package/out/zero-pg/src/query.d.ts +2 -2
- package/out/zero-pg/src/query.d.ts.map +1 -1
- package/out/zero-pg/src/query.js +3 -3
- package/out/zero-pg/src/query.js.map +1 -1
- package/out/zero.js +2 -2
- package/out/zql/src/ivm/operator.d.ts +1 -1
- package/out/zql/src/query/query-impl.d.ts +1 -0
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +3 -0
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +202 -1
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/package.json +1 -1
- package/out/chunk-XSKBSESQ.js.map +0 -7
- /package/out/{inspector-C2BDA4K7.js.map → inspector-R2AXP2NY.js.map} +0 -0
|
@@ -23,7 +23,7 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
23
23
|
throw new Error('The App ID may only consist of lower-case letters, numbers, and the underscore character');
|
|
24
24
|
}
|
|
25
25
|
const { tableCopyWorkers: numWorkers, rowBatchSize } = syncOptions;
|
|
26
|
-
const
|
|
26
|
+
const sql = pgClient(lc, upstreamURI);
|
|
27
27
|
const copyPool = pgClient(lc, upstreamURI, { max: numWorkers }, 'json-as-string');
|
|
28
28
|
const replicationSession = pgClient(lc, upstreamURI, {
|
|
29
29
|
['fetch_types']: false, // Necessary for the streaming protocol
|
|
@@ -31,10 +31,10 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
31
31
|
});
|
|
32
32
|
const slotName = newReplicationSlot(shard);
|
|
33
33
|
try {
|
|
34
|
-
await checkUpstreamConfig(
|
|
35
|
-
const { publications } = await ensurePublishedTables(lc,
|
|
34
|
+
await checkUpstreamConfig(sql);
|
|
35
|
+
const { publications } = await ensurePublishedTables(lc, sql, shard);
|
|
36
36
|
lc.info?.(`Upstream is setup with publications [${publications}]`);
|
|
37
|
-
const { database, host } =
|
|
37
|
+
const { database, host } = sql.options;
|
|
38
38
|
lc.info?.(`opening replication session to ${database}@${host}`);
|
|
39
39
|
let slot;
|
|
40
40
|
for (let first = true;; first = false) {
|
|
@@ -50,7 +50,7 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
50
50
|
// the user have the REPLICATION role in order to create a slot.
|
|
51
51
|
// Note that this must be done by the upstreamDB connection, and
|
|
52
52
|
// does not work in the replicationSession itself.
|
|
53
|
-
await
|
|
53
|
+
await sql `ALTER ROLE current_user WITH REPLICATION`;
|
|
54
54
|
lc.info?.(`Added the REPLICATION role to database user`);
|
|
55
55
|
continue;
|
|
56
56
|
}
|
|
@@ -67,9 +67,9 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
67
67
|
let published;
|
|
68
68
|
try {
|
|
69
69
|
// Retrieve the published schema at the consistent_point.
|
|
70
|
-
published = await
|
|
71
|
-
await
|
|
72
|
-
return getPublicationInfo(
|
|
70
|
+
published = await sql.begin(Mode.READONLY, async (tx) => {
|
|
71
|
+
await tx.unsafe(/* sql*/ `SET TRANSACTION SNAPSHOT '${snapshot}'`);
|
|
72
|
+
return getPublicationInfo(tx, publications);
|
|
73
73
|
});
|
|
74
74
|
// Note: If this throws, initial-sync is aborted.
|
|
75
75
|
validatePublications(lc, published);
|
|
@@ -87,7 +87,7 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
87
87
|
copiers.setDone();
|
|
88
88
|
await copiers.done();
|
|
89
89
|
}
|
|
90
|
-
await addReplica(
|
|
90
|
+
await addReplica(sql, shard, slotName, initialVersion, published);
|
|
91
91
|
initReplicationState(tx, publications, initialVersion);
|
|
92
92
|
initChangeLog(tx);
|
|
93
93
|
lc.info?.(`Synced ${numRows.toLocaleString()} rows of ${numTables} tables in ${publications} up to ${lsn} (${Date.now() - start} ms)`);
|
|
@@ -97,7 +97,7 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
97
97
|
// orphaned replication slot to avoid running out of slots in
|
|
98
98
|
// pathological cases that result in repeated failures.
|
|
99
99
|
lc.warn?.(`dropping replication slot ${slotName}`, e);
|
|
100
|
-
await
|
|
100
|
+
await sql `
|
|
101
101
|
SELECT pg_drop_replication_slot(slot_name) FROM pg_replication_slots
|
|
102
102
|
WHERE slot_name = ${slotName};
|
|
103
103
|
`;
|
|
@@ -105,12 +105,12 @@ export async function initialSync(lc, shard, tx, upstreamURI, syncOptions) {
|
|
|
105
105
|
}
|
|
106
106
|
finally {
|
|
107
107
|
await replicationSession.end();
|
|
108
|
-
await
|
|
108
|
+
await sql.end();
|
|
109
109
|
await copyPool.end();
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
async function checkUpstreamConfig(
|
|
113
|
-
const { walLevel, version } = (await
|
|
112
|
+
async function checkUpstreamConfig(sql) {
|
|
113
|
+
const { walLevel, version } = (await sql `
|
|
114
114
|
SELECT current_setting('wal_level') as "walLevel",
|
|
115
115
|
current_setting('server_version_num') as "version";
|
|
116
116
|
`)[0];
|
|
@@ -132,7 +132,8 @@ async function ensurePublishedTables(lc, upstreamDB, shard) {
|
|
|
132
132
|
// so all commands must be sent using sql.unsafe(). This is technically safe
|
|
133
133
|
// because all placeholder values are under our control (i.e. "slotName").
|
|
134
134
|
async function createReplicationSlot(lc, session, slotName) {
|
|
135
|
-
const slot = (await session.unsafe(
|
|
135
|
+
const slot = (await session.unsafe(
|
|
136
|
+
/*sql*/ `CREATE_REPLICATION_SLOT "${slotName}" LOGICAL pgoutput`))[0];
|
|
136
137
|
lc.info?.(`Created replication slot ${slotName}`, slot);
|
|
137
138
|
return slot;
|
|
138
139
|
}
|
|
@@ -171,17 +172,20 @@ async function copy(lc, table, from, to, initialVersion, rowBatchSize) {
|
|
|
171
172
|
const insertColumnList = insertColumns.map(c => id(c)).join(',');
|
|
172
173
|
// (?,?,?,?,?)
|
|
173
174
|
const valuesSql = `(${new Array(insertColumns.length).fill('?').join(',')})`;
|
|
174
|
-
const insertSql = `
|
|
175
|
+
const insertSql = /*sql*/ `
|
|
176
|
+
INSERT INTO "${tableName}" (${insertColumnList}) VALUES ${valuesSql}`;
|
|
175
177
|
const insertStmt = to.prepare(insertSql);
|
|
176
178
|
// INSERT VALUES (?,?,?,?,?),... x INSERT_BATCH_SIZE
|
|
177
179
|
const insertBatchStmt = to.prepare(insertSql + `,${valuesSql}`.repeat(INSERT_BATCH_SIZE - 1));
|
|
178
180
|
const filterConditions = Object.values(table.publications)
|
|
179
181
|
.map(({ rowFilter }) => rowFilter)
|
|
180
182
|
.filter(f => !!f); // remove nulls
|
|
181
|
-
const selectStmt =
|
|
183
|
+
const selectStmt =
|
|
184
|
+
/*sql*/ `
|
|
185
|
+
SELECT ${selectColumns} FROM ${id(table.schema)}.${id(table.name)}` +
|
|
182
186
|
(filterConditions.length === 0
|
|
183
187
|
? ''
|
|
184
|
-
: ` WHERE ${filterConditions.join(' OR ')}`);
|
|
188
|
+
: /*sql*/ ` WHERE ${filterConditions.join(' OR ')}`);
|
|
185
189
|
lc.info?.(`Starting copy of ${tableName}:`, selectStmt);
|
|
186
190
|
const cursor = from.unsafe(selectStmt).cursor(rowBatchSize);
|
|
187
191
|
let prevBatch = promiseVoid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initial-sync.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/initial-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,WAAW,EAAC,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EACL,gBAAgB,EAChB,UAAU,GAEX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAkB,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAC,EAAE,EAAC,MAAM,uBAAuB,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAc,EACd,KAAkB,EAClB,EAAY,EACZ,WAAmB,EACnB,WAA+B;IAE/B,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,EAAC,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAC,GAAG,WAAW,CAAC;IACjE,MAAM,
|
|
1
|
+
{"version":3,"file":"initial-sync.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/initial-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ function append(shardNum) {
|
|
|
72
72
|
function createEventFunctionStatements(shard) {
|
|
73
73
|
const { appID, shardNum, publications } = shard;
|
|
74
74
|
const schema = id(upstreamSchema(shard)); // e.g. "{APP_ID}_{SHARD_ID}"
|
|
75
|
-
return `
|
|
75
|
+
return /*sql*/ `
|
|
76
76
|
CREATE SCHEMA IF NOT EXISTS ${schema};
|
|
77
77
|
|
|
78
78
|
CREATE OR REPLACE FUNCTION ${schema}.get_trigger_context()
|
|
@@ -267,7 +267,7 @@ export function createEventTriggerStatements(shard) {
|
|
|
267
267
|
createEventFunctionStatements(shard),
|
|
268
268
|
];
|
|
269
269
|
// A single ddl_command_start trigger covering all relevant tags.
|
|
270
|
-
triggers.push(`
|
|
270
|
+
triggers.push(/*sql*/ `
|
|
271
271
|
CREATE EVENT TRIGGER ${sharded(`${appID}_ddl_start`)}
|
|
272
272
|
ON ddl_command_start
|
|
273
273
|
WHEN TAG IN (${lit(TAGS)})
|
|
@@ -276,7 +276,7 @@ CREATE EVENT TRIGGER ${sharded(`${appID}_ddl_start`)}
|
|
|
276
276
|
// A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)
|
|
277
277
|
for (const tag of TAGS) {
|
|
278
278
|
const tagID = tag.toLowerCase().replace(' ', '_');
|
|
279
|
-
triggers.push(`
|
|
279
|
+
triggers.push(/*sql*/ `
|
|
280
280
|
CREATE OR REPLACE FUNCTION ${schema}.emit_${tagID}()
|
|
281
281
|
RETURNS event_trigger AS $$
|
|
282
282
|
BEGIN
|
|
@@ -296,13 +296,13 @@ CREATE EVENT TRIGGER ${sharded(`${appID}_${tagID}`)}
|
|
|
296
296
|
export function dropEventTriggerStatements(appID, shardID) {
|
|
297
297
|
const stmts = [];
|
|
298
298
|
// A single ddl_command_start trigger covering all relevant tags.
|
|
299
|
-
stmts.push(`
|
|
299
|
+
stmts.push(/*sql*/ `
|
|
300
300
|
DROP EVENT TRIGGER IF EXISTS ${id(`${appID}_ddl_start_${shardID}`)};
|
|
301
301
|
`);
|
|
302
302
|
// A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)
|
|
303
303
|
for (const tag of TAGS) {
|
|
304
304
|
const tagID = tag.toLowerCase().replace(' ', '_');
|
|
305
|
-
stmts.push(`
|
|
305
|
+
stmts.push(/*sql*/ `
|
|
306
306
|
DROP EVENT TRIGGER IF EXISTS ${id(`${appID}_${tagID}_${shardID}`)};
|
|
307
307
|
`);
|
|
308
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/ddl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,yCAAyC,CAAC;AAC/D,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAmB,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAC,EAAE,EAAC,MAAM,0BAA0B,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,0EAA0E;AAC1E,sEAAsE;AACtE,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,2EAA2E;AAC3E,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpC,MAAM,EAAE,eAAe;CACxB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;CAC5B,CAAC,CAAC;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAAC;IACxD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC;CACnC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC3C,mBAAmB,EACnB,oBAAoB,CACrB,CAAC;AAIF,kEAAkE;AAClE,8CAA8C;AAC9C,SAAS,MAAM,CAAC,QAAgB;IAC9B,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,6BAA6B,CAAC,KAAkB;IACvD,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC;IAC9C,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,6BAA6B;IACvE,OAAO;
|
|
1
|
+
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/ddl.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,13 +54,13 @@ function getIncrementalMigrations(shard, replicaVersion) {
|
|
|
54
54
|
// not be decommissioned as a legacy shard.
|
|
55
55
|
5: {},
|
|
56
56
|
6: {
|
|
57
|
-
migrateSchema: async (lc,
|
|
57
|
+
migrateSchema: async (lc, sql) => {
|
|
58
58
|
assert(replicaVersion, `replicaVersion is always passed for incremental migrations`);
|
|
59
59
|
await Promise.all([
|
|
60
|
-
|
|
61
|
-
ALTER TABLE ${
|
|
62
|
-
|
|
63
|
-
UPDATE ${
|
|
60
|
+
sql `
|
|
61
|
+
ALTER TABLE ${sql(shardConfigTable)} ADD "replicaVersion" TEXT`,
|
|
62
|
+
sql `
|
|
63
|
+
UPDATE ${sql(shardConfigTable)} SET ${sql({ replicaVersion })}`,
|
|
64
64
|
]);
|
|
65
65
|
lc.info?.(`Recorded replicaVersion ${replicaVersion} in upstream shardConfig`);
|
|
66
66
|
},
|
|
@@ -68,42 +68,42 @@ function getIncrementalMigrations(shard, replicaVersion) {
|
|
|
68
68
|
// Updates the DDL event trigger protocol to v2, and adds support for
|
|
69
69
|
// ALTER SCHEMA x RENAME TO y
|
|
70
70
|
7: {
|
|
71
|
-
migrateSchema: async (lc,
|
|
72
|
-
const [{ publications }] = await
|
|
73
|
-
SELECT publications FROM ${
|
|
74
|
-
await setupTriggers(lc,
|
|
71
|
+
migrateSchema: async (lc, sql) => {
|
|
72
|
+
const [{ publications }] = await sql `
|
|
73
|
+
SELECT publications FROM ${sql(shardConfigTable)}`;
|
|
74
|
+
await setupTriggers(lc, sql, { ...shard, publications });
|
|
75
75
|
lc.info?.(`Upgraded to v2 event triggers`);
|
|
76
76
|
},
|
|
77
77
|
},
|
|
78
78
|
// Adds support for non-disruptive resyncs, which tracks multiple
|
|
79
79
|
// replicas with different slot names.
|
|
80
80
|
8: {
|
|
81
|
-
migrateSchema: async (lc,
|
|
81
|
+
migrateSchema: async (lc, sql) => {
|
|
82
82
|
const legacyShardConfigSchema = v.object({
|
|
83
83
|
replicaVersion: v.string().nullable(),
|
|
84
84
|
initialSchema: publishedSchema.nullable(),
|
|
85
85
|
});
|
|
86
|
-
const result = await
|
|
87
|
-
SELECT "replicaVersion", "initialSchema" FROM ${
|
|
86
|
+
const result = await sql `
|
|
87
|
+
SELECT "replicaVersion", "initialSchema" FROM ${sql(shardConfigTable)}`;
|
|
88
88
|
assert(result.length === 1);
|
|
89
89
|
const { replicaVersion, initialSchema } = v.parse(result[0], legacyShardConfigSchema, 'passthrough');
|
|
90
90
|
await Promise.all([
|
|
91
|
-
|
|
92
|
-
CREATE TABLE ${
|
|
91
|
+
sql `
|
|
92
|
+
CREATE TABLE ${sql(upstreamSchema(shard))}.replicas (
|
|
93
93
|
"slot" TEXT PRIMARY KEY,
|
|
94
94
|
"version" TEXT NOT NULL,
|
|
95
95
|
"initialSchema" JSON NOT NULL
|
|
96
96
|
);
|
|
97
97
|
`,
|
|
98
|
-
|
|
99
|
-
INSERT INTO ${
|
|
98
|
+
sql `
|
|
99
|
+
INSERT INTO ${sql(upstreamSchema(shard))}.replicas ${sql({
|
|
100
100
|
slot: legacyReplicationSlot(shard),
|
|
101
101
|
version: replicaVersion,
|
|
102
102
|
initialSchema,
|
|
103
103
|
})}
|
|
104
104
|
`,
|
|
105
|
-
|
|
106
|
-
ALTER TABLE ${
|
|
105
|
+
sql `
|
|
106
|
+
ALTER TABLE ${sql(shardConfigTable)} DROP "replicaVersion", DROP "initialSchema"
|
|
107
107
|
`,
|
|
108
108
|
]);
|
|
109
109
|
lc.info?.(`Upgraded schema to support non-disruptive resyncs`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,yCAAyC,CAAC;AAC/D,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,cAAc,EAAmB,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAc,EACd,EAAc,EACd,KAAkB;IAElB,MAAM,YAAY,GAAc;QAC9B,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC;QACnE,cAAc,EAAE,CAAC;KAClB,CAAC;IACF,MAAM,mBAAmB,CACvB,EAAE,EACF,kBAAkB,KAAK,CAAC,KAAK,EAAE,EAC/B,cAAc,CAAC,KAAK,CAAC,EACrB,EAAE,EACF,YAAY;IACZ,yEAAyE;IACzE,mEAAmE;IACnE,eAAe;IACf,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAc,EACd,EAAc,EACd,KAAkB,EAClB,cAAsB;IAEtB,MAAM,mBAAmB,CACvB,EAAE,EACF,kBAAkB,KAAK,CAAC,KAAK,EAAE,EAC/B,cAAc,CAAC,KAAK,CAAC,EACrB,EAAE,EACF;QACE,qDAAqD;QACrD,iDAAiD;QACjD,aAAa,EAAE,GAAG,EAAE;YAClB,MAAM,IAAI,eAAe,CACvB,kBAAkB,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAC7D,CAAC;QACJ,CAAC;KACF,EACD,wBAAwB,CAAC,KAAK,EAAE,cAAc,CAAC,CAChD,CAAC;IAEF,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAkB,EAClB,cAAuB;IAEvB,MAAM,gBAAgB,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC;IAEhE,OAAO;QACL,CAAC,EAAE;YACD,aAAa,EAAE,GAAG,EAAE;gBAClB,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC,CAAC;YACjE,CAAC;YACD,cAAc,EAAE,CAAC;SAClB;QAED,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,0EAA0E;QAC1E,2CAA2C;QAC3C,CAAC,EAAE,EAAE;QAEL,CAAC,EAAE;YACD,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export function publishedTableQuery(publications) {
|
|
|
9
9
|
// column values are not be included in the replication stream).
|
|
10
10
|
// The WHERE condition `attgenerated = ''` fixes this by explicitly excluding
|
|
11
11
|
// generated columns from the list.
|
|
12
|
-
return `
|
|
12
|
+
return /*sql*/ `
|
|
13
13
|
WITH published_columns AS (SELECT
|
|
14
14
|
pc.oid::int8 AS "oid",
|
|
15
15
|
nspname AS "schema",
|
|
@@ -98,7 +98,7 @@ export function indexDefinitionsQuery(publications) {
|
|
|
98
98
|
// * The additional check fo attgenerated is required for the aforementioned
|
|
99
99
|
// (in publishedTableQuery) bug in PG15 in which generated columns are
|
|
100
100
|
// incorrectly included in pg_publication_tables.attnames
|
|
101
|
-
return `
|
|
101
|
+
return /*sql*/ `
|
|
102
102
|
WITH indexed_columns AS (SELECT
|
|
103
103
|
pg_indexes.schemaname as "schema",
|
|
104
104
|
pg_indexes.tablename as "tableName",
|
|
@@ -172,7 +172,7 @@ const publicationInfoSchema = publishedSchema.extend({
|
|
|
172
172
|
* Retrieves published tables and columns.
|
|
173
173
|
*/
|
|
174
174
|
export async function getPublicationInfo(sql, publications) {
|
|
175
|
-
const result = await sql.unsafe(`
|
|
175
|
+
const result = await sql.unsafe(/*sql*/ `
|
|
176
176
|
SELECT
|
|
177
177
|
schemaname AS "schema",
|
|
178
178
|
tablename AS "table",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/published.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,MAAM,EAAC,MAAM,2CAA2C,CAAC;AACjE,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE/E,MAAM,UAAU,mBAAmB,CAAC,YAA+B;IACjE,SAAS;IACT,qEAAqE;IACrE,2EAA2E;IAC3E,kEAAkE;IAClE,+EAA+E;IAC/E,qCAAqC;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"published.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/published.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,MAAM,EAAC,MAAM,2CAA2C,CAAC;AACjE,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE/E,MAAM,UAAU,mBAAmB,CAAC,YAA+B;IACjE,SAAS;IACT,qEAAqE;IACrE,2EAA2E;IAC3E,kEAAkE;IAClE,+EAA+E;IAC/E,qCAAqC;IACrC,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA4BM,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAA+B;IACnE,uEAAuE;IACvE,uEAAuE;IACvE,WAAW;IACX,EAAE;IACF,gGAAgG;IAChG,EAAE;IACF,uEAAuE;IACvE,sEAAsE;IACtE,wDAAwD;IACxD,EAAE;IACF,SAAS;IACT,4DAA4D;IAC5D,0HAA0H;IAC1H,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,2DAA2D;IAC3D,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA8BU,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;GAwB7C,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC;AAC9E,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAC,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CACzD,sBAAsB,CAAC,KAAK,CAC7B,CAAC;AAIF,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE5D,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC;IACnD,YAAY,EAAE,wBAAwB;CACvC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAiB,EACjB,YAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;2BAMf,OAAO,CAAC,YAAY,CAAC;;;WAGrC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAChD,GAAG,CACJ;2BACwB,OAAO,CAAC,YAAY,CAAC;;;IAG5C,mBAAmB,CAAC,YAAY,CAAC;;IAEjC,qBAAqB,CAAC,YAAY,CAAC;CACtC,CAAC,CAAC;IAED,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAI9B,CAAC;IACJ,KAAK,MAAM,EAAC,KAAK,EAAE,YAAY,EAAC,IAAI,gBAAgB,EAAE,CAAC;QACrD,IAAI,QAAqB,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,SAAS,KAAK,yCAAyC;oBACrD,GAAG,QAAQ;iBACZ,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC;QAC1D,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC;QAC/C,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -73,14 +73,14 @@ declare const replicaSchema: v.ObjectType<Omit<{
|
|
|
73
73
|
}, undefined>;
|
|
74
74
|
}, undefined>;
|
|
75
75
|
export type Replica = v.Infer<typeof replicaSchema>;
|
|
76
|
-
export declare function addReplica(
|
|
77
|
-
export declare function getReplicaAtVersion(
|
|
78
|
-
export declare function getInternalShardConfig(
|
|
76
|
+
export declare function addReplica(sql: PostgresDB, shard: ShardID, slot: string, replicaVersion: string, { tables, indexes }: PublishedSchema): Promise<void>;
|
|
77
|
+
export declare function getReplicaAtVersion(sql: PostgresDB, shard: ShardID, replicaVersion: string): Promise<Replica | null>;
|
|
78
|
+
export declare function getInternalShardConfig(sql: PostgresDB, shard: ShardID): Promise<InternalShardConfig>;
|
|
79
79
|
/**
|
|
80
80
|
* Sets up and returns all publications (including internal ones) for
|
|
81
81
|
* the given shard.
|
|
82
82
|
*/
|
|
83
|
-
export declare function setupTablesAndReplication(lc: LogContext,
|
|
83
|
+
export declare function setupTablesAndReplication(lc: LogContext, sql: PostgresTransaction, requested: ShardConfig): Promise<void>;
|
|
84
84
|
export declare function setupTriggers(lc: LogContext, tx: PostgresTransaction, shard: ShardConfig): Promise<void>;
|
|
85
85
|
export declare function validatePublications(lc: LogContext, published: PublicationInfo): void;
|
|
86
86
|
type ReplicaIdentities = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D,OAAO,KAAK,EAAC,UAAU,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAC,MAAM,6BAA6B,CAAC;AAI7E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,yBAAyB,CAAC,EAAC,KAAK,EAAC,EAAE,KAAK,UAEvD;AAED,wBAAgB,qBAAqB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAE,OAAO,UAE/D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,UAGnD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,UAIvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,UAEhD;AAyDD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,iBAEpE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D,OAAO,KAAK,EAAC,UAAU,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAC,MAAM,6BAA6B,CAAC;AAI7E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,yBAAyB,CAAC,EAAC,KAAK,EAAC,EAAE,KAAK,UAEvD;AAED,wBAAgB,qBAAqB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAE,OAAO,UAE/D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,UAGnD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,UAIvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,UAEhD;AAyDD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,iBAEpE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,UASvD;AAED,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAEhD,wBAAgB,UAAU,CACxB,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CAqCR;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAYzE;AAED,QAAA,MAAM,yBAAyB;;;aAG7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAIjB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAcpD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,eAAe,iBAOnC;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAUzB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,WAAW,iBAwDvB;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,mBAAmB,EACvB,KAAK,EAAE,WAAW,iBAqBnB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,eAAe,QAkB3B;AAED,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,eAAe,GACpB,iBAAiB,GAAG,SAAS,CA+C/B"}
|
|
@@ -40,7 +40,7 @@ function metadataPublicationName(appID, shardID) {
|
|
|
40
40
|
// The GLOBAL_SETUP must be idempotent as it can be run multiple times for different shards.
|
|
41
41
|
function globalSetup(appID) {
|
|
42
42
|
const app = id(appSchema(appID));
|
|
43
|
-
return `
|
|
43
|
+
return /*sql*/ `
|
|
44
44
|
CREATE SCHEMA IF NOT EXISTS ${app};
|
|
45
45
|
|
|
46
46
|
CREATE TABLE IF NOT EXISTS ${app}."schemaVersions" (
|
|
@@ -86,7 +86,8 @@ export async function ensureGlobalTables(db, appID) {
|
|
|
86
86
|
await db.unsafe(globalSetup(appID));
|
|
87
87
|
}
|
|
88
88
|
export function getClientsTableDefinition(schema) {
|
|
89
|
-
return `
|
|
89
|
+
return /*sql*/ `
|
|
90
|
+
CREATE TABLE ${schema}."clients" (
|
|
90
91
|
"clientGroupID" TEXT NOT NULL,
|
|
91
92
|
"clientID" TEXT NOT NULL,
|
|
92
93
|
"lastMutationID" BIGINT NOT NULL,
|
|
@@ -100,7 +101,7 @@ export function shardSetup(shardConfig, metadataPublication) {
|
|
|
100
101
|
const shard = id(upstreamSchema(shardConfig));
|
|
101
102
|
const pubs = [...shardConfig.publications].sort();
|
|
102
103
|
assert(pubs.includes(metadataPublication));
|
|
103
|
-
return `
|
|
104
|
+
return /*sql*/ `
|
|
104
105
|
CREATE SCHEMA IF NOT EXISTS ${shard};
|
|
105
106
|
|
|
106
107
|
${getClientsTableDefinition(shard)}
|
|
@@ -137,7 +138,7 @@ export function dropShard(appID, shardID) {
|
|
|
137
138
|
const defaultPublication = defaultPublicationName(appID, shardID);
|
|
138
139
|
// DROP SCHEMA ... CASCADE does not drop dependent PUBLICATIONS,
|
|
139
140
|
// so PUBLICATIONs must be dropped explicitly.
|
|
140
|
-
return `
|
|
141
|
+
return /*sql*/ `
|
|
141
142
|
DROP PUBLICATION IF EXISTS ${id(defaultPublication)};
|
|
142
143
|
DROP PUBLICATION IF EXISTS ${id(metadataPublication)};
|
|
143
144
|
DROP SCHEMA IF EXISTS ${id(schema)} CASCADE;
|
|
@@ -158,19 +159,19 @@ const replicaSchema = internalShardConfigSchema.extend({
|
|
|
158
159
|
function triggerSetup(shard) {
|
|
159
160
|
const schema = id(upstreamSchema(shard));
|
|
160
161
|
return (createEventTriggerStatements(shard) +
|
|
161
|
-
`UPDATE ${schema}."shardConfig" SET "ddlDetection" = true;`);
|
|
162
|
+
/*sql*/ `UPDATE ${schema}."shardConfig" SET "ddlDetection" = true;`);
|
|
162
163
|
}
|
|
163
164
|
// Called in initial-sync to store the exact schema that was initially synced.
|
|
164
|
-
export async function addReplica(
|
|
165
|
+
export async function addReplica(sql, shard, slot, replicaVersion, { tables, indexes }) {
|
|
165
166
|
const schema = upstreamSchema(shard);
|
|
166
167
|
const synced = { tables, indexes };
|
|
167
|
-
await
|
|
168
|
-
INSERT INTO ${
|
|
168
|
+
await sql `
|
|
169
|
+
INSERT INTO ${sql(schema)}.replicas ("slot", "version", "initialSchema")
|
|
169
170
|
VALUES (${slot}, ${replicaVersion}, ${synced})`;
|
|
170
171
|
}
|
|
171
|
-
export async function getReplicaAtVersion(
|
|
172
|
-
const schema =
|
|
173
|
-
const result = await
|
|
172
|
+
export async function getReplicaAtVersion(sql, shard, replicaVersion) {
|
|
173
|
+
const schema = sql(upstreamSchema(shard));
|
|
174
|
+
const result = await sql `
|
|
174
175
|
SELECT * FROM ${schema}.replicas JOIN ${schema}."shardConfig" ON true
|
|
175
176
|
WHERE version = ${replicaVersion};
|
|
176
177
|
`;
|
|
@@ -179,10 +180,10 @@ export async function getReplicaAtVersion(db, shard, replicaVersion) {
|
|
|
179
180
|
}
|
|
180
181
|
return v.parse(result[0], replicaSchema, 'passthrough');
|
|
181
182
|
}
|
|
182
|
-
export async function getInternalShardConfig(
|
|
183
|
-
const result = await
|
|
183
|
+
export async function getInternalShardConfig(sql, shard) {
|
|
184
|
+
const result = await sql `
|
|
184
185
|
SELECT "publications", "ddlDetection"
|
|
185
|
-
FROM ${
|
|
186
|
+
FROM ${sql(upstreamSchema(shard))}."shardConfig";
|
|
186
187
|
`;
|
|
187
188
|
assert(result.length === 1);
|
|
188
189
|
return v.parse(result[0], internalShardConfigSchema, 'passthrough');
|
|
@@ -191,7 +192,7 @@ export async function getInternalShardConfig(db, shard) {
|
|
|
191
192
|
* Sets up and returns all publications (including internal ones) for
|
|
192
193
|
* the given shard.
|
|
193
194
|
*/
|
|
194
|
-
export async function setupTablesAndReplication(lc,
|
|
195
|
+
export async function setupTablesAndReplication(lc, sql, requested) {
|
|
195
196
|
const { publications } = requested;
|
|
196
197
|
// Validate requested publications.
|
|
197
198
|
for (const pub of publications) {
|
|
@@ -203,8 +204,8 @@ export async function setupTablesAndReplication(lc, tx, requested) {
|
|
|
203
204
|
const allPublications = [];
|
|
204
205
|
// Setup application publications.
|
|
205
206
|
if (publications.length) {
|
|
206
|
-
const results = await
|
|
207
|
-
SELECT pubname from pg_publication WHERE pubname IN ${
|
|
207
|
+
const results = await sql `
|
|
208
|
+
SELECT pubname from pg_publication WHERE pubname IN ${sql(publications)}`.values();
|
|
208
209
|
if (results.length !== publications.length) {
|
|
209
210
|
throw new Error(`Unknown or invalid publications. Specified: [${publications}]. Found: [${results.flat()}]`);
|
|
210
211
|
}
|
|
@@ -214,8 +215,8 @@ export async function setupTablesAndReplication(lc, tx, requested) {
|
|
|
214
215
|
const defaultPublication = defaultPublicationName(requested.appID, requested.shardNum);
|
|
215
216
|
// Note: For re-syncing, this publication is dropped in dropShard(), so an existence
|
|
216
217
|
// check is unnecessary.
|
|
217
|
-
await
|
|
218
|
-
CREATE PUBLICATION ${
|
|
218
|
+
await sql `
|
|
219
|
+
CREATE PUBLICATION ${sql(defaultPublication)}
|
|
219
220
|
FOR TABLES IN SCHEMA public
|
|
220
221
|
WITH (publish_via_partition_root = true)`;
|
|
221
222
|
allPublications.push(defaultPublication);
|
|
@@ -224,10 +225,10 @@ export async function setupTablesAndReplication(lc, tx, requested) {
|
|
|
224
225
|
allPublications.push(metadataPublication);
|
|
225
226
|
const shard = { ...requested, publications: allPublications };
|
|
226
227
|
// Setup the global tables and shard tables / publications.
|
|
227
|
-
await
|
|
228
|
-
const pubs = await getPublicationInfo(
|
|
229
|
-
await replicaIdentitiesForTablesWithoutPrimaryKeys(pubs)?.apply(lc,
|
|
230
|
-
await setupTriggers(lc,
|
|
228
|
+
await sql.unsafe(globalSetup(shard) + shardSetup(shard, metadataPublication));
|
|
229
|
+
const pubs = await getPublicationInfo(sql, allPublications);
|
|
230
|
+
await replicaIdentitiesForTablesWithoutPrimaryKeys(pubs)?.apply(lc, sql);
|
|
231
|
+
await setupTriggers(lc, sql, shard);
|
|
231
232
|
}
|
|
232
233
|
export async function setupTriggers(lc, tx, shard) {
|
|
233
234
|
try {
|
|
@@ -286,10 +287,12 @@ export function replicaIdentitiesForTablesWithoutPrimaryKeys(pubs) {
|
|
|
286
287
|
return undefined;
|
|
287
288
|
}
|
|
288
289
|
return {
|
|
289
|
-
apply: async (lc,
|
|
290
|
+
apply: async (lc, sql) => {
|
|
290
291
|
for (const { schema, tableName, indexName } of replicaIdentities) {
|
|
291
292
|
lc.info?.(`setting "${indexName}" as the REPLICA IDENTITY for "${tableName}"`);
|
|
292
|
-
await
|
|
293
|
+
await sql `
|
|
294
|
+
ALTER TABLE ${sql(schema)}.${sql(tableName)}
|
|
295
|
+
REPLICA IDENTITY USING INDEX ${sql(indexName)}`;
|
|
293
296
|
}
|
|
294
297
|
},
|
|
295
298
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,yCAAyC,CAAC;AAC/D,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAC,MAAM,kDAAkD,CAAC;AAGzE,OAAO,EAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAC,EAAE,EAAC,MAAM,0BAA0B,CAAC;AAC5C,OAAO,EAAC,4BAA4B,EAAC,MAAM,UAAU,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,eAAe,GAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,MAAM,UAAU,yBAAyB,CAAC,EAAC,KAAK,EAAQ;IACtD,OAAO,IAAI,KAAK,GAAG,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAU;IAC9D,OAAO,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,GAAG,KAAK,IAAI,QAAQ,GAAG,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,oDAAoD;IACpD,8BAA8B;IAC9B,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,OAAwB;IACrE,OAAO,IAAI,KAAK,WAAW,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,OAAwB;IACtE,OAAO,IAAI,KAAK,aAAa,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,4FAA4F;AAC5F,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjC,OAAO;
|
|
1
|
+
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/protocol/current/control.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/protocol/current/control.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;;;aAG9B,CAAC"}
|
|
@@ -13,5 +13,8 @@ import * as v from "../../../../../../shared/src/valita.js";
|
|
|
13
13
|
* This signal should only be used in well advertised scenarios, and is not suitable
|
|
14
14
|
* as a common occurrence in production.
|
|
15
15
|
*/
|
|
16
|
-
export const resetRequiredSchema = v.object({
|
|
16
|
+
export const resetRequiredSchema = v.object({
|
|
17
|
+
tag: v.literal('reset-required'),
|
|
18
|
+
message: v.string().optional(),
|
|
19
|
+
});
|
|
17
20
|
//# sourceMappingURL=control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/protocol/current/control.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/protocol/current/control.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC"}
|