@syncular/server-dialect-postgres 0.0.1-60 → 0.0.1
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 +4 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -68
- package/dist/index.js.map +1 -1
- package/package.json +5 -25
- package/src/index.ts +22 -111
package/dist/index.d.ts
CHANGED
|
@@ -21,33 +21,24 @@ export declare class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
21
21
|
ensureSyncSchema<DB extends SyncCoreDb>(db: Kysely<DB>): Promise<void>;
|
|
22
22
|
executeInTransaction<DB extends SyncCoreDb, T>(db: Kysely<DB>, fn: (executor: DbExecutor<DB>) => Promise<T>): Promise<T>;
|
|
23
23
|
setRepeatableRead<DB extends SyncCoreDb>(trx: DbExecutor<DB>): Promise<void>;
|
|
24
|
-
readMaxCommitSeq<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB
|
|
25
|
-
|
|
26
|
-
}): Promise<number>;
|
|
27
|
-
readMinCommitSeq<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, options?: {
|
|
28
|
-
partitionId?: string;
|
|
29
|
-
}): Promise<number>;
|
|
24
|
+
readMaxCommitSeq<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>): Promise<number>;
|
|
25
|
+
readMinCommitSeq<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>): Promise<number>;
|
|
30
26
|
readCommitSeqsForPull<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
31
27
|
cursor: number;
|
|
32
28
|
limitCommits: number;
|
|
33
29
|
tables: string[];
|
|
34
|
-
partitionId?: string;
|
|
35
30
|
}): Promise<number[]>;
|
|
36
|
-
readCommits<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, commitSeqs: number[]
|
|
37
|
-
partitionId?: string;
|
|
38
|
-
}): Promise<SyncCommitRow[]>;
|
|
31
|
+
readCommits<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, commitSeqs: number[]): Promise<SyncCommitRow[]>;
|
|
39
32
|
readChangesForCommits<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
40
33
|
commitSeqs: number[];
|
|
41
34
|
table: string;
|
|
42
35
|
scopes: ScopeValues;
|
|
43
|
-
partitionId?: string;
|
|
44
36
|
}): Promise<SyncChangeRow[]>;
|
|
45
37
|
readIncrementalPullRows<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
46
38
|
table: string;
|
|
47
39
|
scopes: ScopeValues;
|
|
48
40
|
cursor: number;
|
|
49
41
|
limitCommits: number;
|
|
50
|
-
partitionId?: string;
|
|
51
42
|
}): Promise<Array<{
|
|
52
43
|
commit_seq: number;
|
|
53
44
|
actor_id: string;
|
|
@@ -66,7 +57,6 @@ export declare class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
66
57
|
cursor: number;
|
|
67
58
|
limitCommits: number;
|
|
68
59
|
batchSize?: number;
|
|
69
|
-
partitionId?: string;
|
|
70
60
|
}): AsyncGenerator<{
|
|
71
61
|
commit_seq: number;
|
|
72
62
|
actor_id: string;
|
|
@@ -83,7 +73,6 @@ export declare class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
83
73
|
fullHistoryHours: number;
|
|
84
74
|
}): Promise<number>;
|
|
85
75
|
recordClientCursor<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
86
|
-
partitionId?: string;
|
|
87
76
|
clientId: string;
|
|
88
77
|
actorId: string;
|
|
89
78
|
cursor: number;
|
|
@@ -93,9 +82,7 @@ export declare class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
93
82
|
dbToScopes(value: unknown): StoredScopes;
|
|
94
83
|
dbToArray(value: unknown): string[];
|
|
95
84
|
arrayToDb(values: string[]): string[];
|
|
96
|
-
readAffectedTablesFromChanges<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, commitSeq: number
|
|
97
|
-
partitionId?: string;
|
|
98
|
-
}): Promise<string[]>;
|
|
85
|
+
readAffectedTablesFromChanges<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, commitSeq: number): Promise<string[]>;
|
|
99
86
|
ensureConsoleSchema<DB extends SyncCoreDb>(db: Kysely<DB>): Promise<void>;
|
|
100
87
|
private ensureIndex;
|
|
101
88
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAmClD,qBAAa,yBAA0B,YAAW,iBAAiB;IACjE,QAAQ,CAAC,IAAI,aAAuB;IACpC,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,kBAAkB,QAAQ;IAM7B,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -57,7 +57,6 @@ export class PostgresServerSyncDialect {
|
|
|
57
57
|
.createTable('sync_commits')
|
|
58
58
|
.ifNotExists()
|
|
59
59
|
.addColumn('commit_seq', 'bigserial', (col) => col.primaryKey())
|
|
60
|
-
.addColumn('partition_id', 'text', (col) => col.notNull().defaultTo('default'))
|
|
61
60
|
.addColumn('actor_id', 'text', (col) => col.notNull())
|
|
62
61
|
.addColumn('client_id', 'text', (col) => col.notNull())
|
|
63
62
|
.addColumn('client_commit_id', 'text', (col) => col.notNull())
|
|
@@ -72,43 +71,32 @@ export class PostgresServerSyncDialect {
|
|
|
72
71
|
ADD COLUMN IF NOT EXISTS change_count integer NOT NULL DEFAULT 0`.execute(db);
|
|
73
72
|
await sql `ALTER TABLE sync_commits
|
|
74
73
|
ADD COLUMN IF NOT EXISTS affected_tables text[] NOT NULL DEFAULT ARRAY[]::text[]`.execute(db);
|
|
75
|
-
await sql `ALTER TABLE sync_commits
|
|
76
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(db);
|
|
77
|
-
await sql `DROP INDEX IF EXISTS idx_sync_commits_client_commit`.execute(db);
|
|
78
74
|
await db.schema
|
|
79
75
|
.createIndex('idx_sync_commits_client_commit')
|
|
80
76
|
.ifNotExists()
|
|
81
77
|
.on('sync_commits')
|
|
82
|
-
.columns(['
|
|
78
|
+
.columns(['client_id', 'client_commit_id'])
|
|
83
79
|
.unique()
|
|
84
80
|
.execute();
|
|
85
81
|
// Table-based commit routing index
|
|
86
82
|
await db.schema
|
|
87
83
|
.createTable('sync_table_commits')
|
|
88
84
|
.ifNotExists()
|
|
89
|
-
.addColumn('partition_id', 'text', (col) => col.notNull().defaultTo('default'))
|
|
90
85
|
.addColumn('table', 'text', (col) => col.notNull())
|
|
91
86
|
.addColumn('commit_seq', 'bigint', (col) => col.notNull().references('sync_commits.commit_seq').onDelete('cascade'))
|
|
92
|
-
.addPrimaryKeyConstraint('sync_table_commits_pk', [
|
|
93
|
-
'partition_id',
|
|
94
|
-
'table',
|
|
95
|
-
'commit_seq',
|
|
96
|
-
])
|
|
87
|
+
.addPrimaryKeyConstraint('sync_table_commits_pk', ['table', 'commit_seq'])
|
|
97
88
|
.execute();
|
|
98
|
-
await sql `ALTER TABLE sync_table_commits
|
|
99
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(db);
|
|
100
89
|
await db.schema
|
|
101
90
|
.createIndex('idx_sync_table_commits_commit_seq')
|
|
102
91
|
.ifNotExists()
|
|
103
92
|
.on('sync_table_commits')
|
|
104
|
-
.columns(['
|
|
93
|
+
.columns(['commit_seq'])
|
|
105
94
|
.execute();
|
|
106
95
|
// Changes table with JSONB scopes
|
|
107
96
|
await db.schema
|
|
108
97
|
.createTable('sync_changes')
|
|
109
98
|
.ifNotExists()
|
|
110
99
|
.addColumn('change_id', 'bigserial', (col) => col.primaryKey())
|
|
111
|
-
.addColumn('partition_id', 'text', (col) => col.notNull().defaultTo('default'))
|
|
112
100
|
.addColumn('commit_seq', 'bigint', (col) => col.notNull().references('sync_commits.commit_seq').onDelete('cascade'))
|
|
113
101
|
.addColumn('table', 'text', (col) => col.notNull())
|
|
114
102
|
.addColumn('row_id', 'text', (col) => col.notNull())
|
|
@@ -117,37 +105,28 @@ export class PostgresServerSyncDialect {
|
|
|
117
105
|
.addColumn('row_version', 'bigint')
|
|
118
106
|
.addColumn('scopes', 'jsonb', (col) => col.notNull())
|
|
119
107
|
.execute();
|
|
120
|
-
await sql `ALTER TABLE sync_changes
|
|
121
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(db);
|
|
122
108
|
await db.schema
|
|
123
109
|
.createIndex('idx_sync_changes_commit_seq')
|
|
124
110
|
.ifNotExists()
|
|
125
111
|
.on('sync_changes')
|
|
126
|
-
.columns(['
|
|
112
|
+
.columns(['commit_seq'])
|
|
127
113
|
.execute();
|
|
128
114
|
await db.schema
|
|
129
115
|
.createIndex('idx_sync_changes_table')
|
|
130
116
|
.ifNotExists()
|
|
131
117
|
.on('sync_changes')
|
|
132
|
-
.columns(['
|
|
118
|
+
.columns(['table'])
|
|
133
119
|
.execute();
|
|
134
120
|
await this.ensureIndex(db, 'idx_sync_changes_scopes', 'CREATE INDEX idx_sync_changes_scopes ON sync_changes USING GIN (scopes)');
|
|
135
121
|
await db.schema
|
|
136
122
|
.createTable('sync_client_cursors')
|
|
137
123
|
.ifNotExists()
|
|
138
|
-
.addColumn('
|
|
139
|
-
.addColumn('client_id', 'text', (col) => col.notNull())
|
|
124
|
+
.addColumn('client_id', 'text', (col) => col.primaryKey())
|
|
140
125
|
.addColumn('actor_id', 'text', (col) => col.notNull())
|
|
141
126
|
.addColumn('cursor', 'bigint', (col) => col.notNull().defaultTo(0))
|
|
142
127
|
.addColumn('effective_scopes', 'jsonb', (col) => col.notNull().defaultTo(sql `'{}'::jsonb`))
|
|
143
128
|
.addColumn('updated_at', 'timestamptz', (col) => col.notNull().defaultTo(sql `now()`))
|
|
144
|
-
.addPrimaryKeyConstraint('sync_client_cursors_pk', [
|
|
145
|
-
'partition_id',
|
|
146
|
-
'client_id',
|
|
147
|
-
])
|
|
148
129
|
.execute();
|
|
149
|
-
await sql `ALTER TABLE sync_client_cursors
|
|
150
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(db);
|
|
151
130
|
await db.schema
|
|
152
131
|
.createIndex('idx_sync_client_cursors_updated_at')
|
|
153
132
|
.ifNotExists()
|
|
@@ -158,7 +137,6 @@ export class PostgresServerSyncDialect {
|
|
|
158
137
|
.createTable('sync_snapshot_chunks')
|
|
159
138
|
.ifNotExists()
|
|
160
139
|
.addColumn('chunk_id', 'text', (col) => col.primaryKey())
|
|
161
|
-
.addColumn('partition_id', 'text', (col) => col.notNull().defaultTo('default'))
|
|
162
140
|
.addColumn('scope_key', 'text', (col) => col.notNull())
|
|
163
141
|
.addColumn('scope', 'text', (col) => col.notNull())
|
|
164
142
|
.addColumn('as_of_commit_seq', 'bigint', (col) => col.notNull())
|
|
@@ -173,8 +151,6 @@ export class PostgresServerSyncDialect {
|
|
|
173
151
|
.addColumn('created_at', 'timestamptz', (col) => col.notNull().defaultTo(sql `now()`))
|
|
174
152
|
.addColumn('expires_at', 'timestamptz', (col) => col.notNull())
|
|
175
153
|
.execute();
|
|
176
|
-
await sql `ALTER TABLE sync_snapshot_chunks
|
|
177
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(db);
|
|
178
154
|
await db.schema
|
|
179
155
|
.createIndex('idx_sync_snapshot_chunks_expires_at')
|
|
180
156
|
.ifNotExists()
|
|
@@ -186,7 +162,6 @@ export class PostgresServerSyncDialect {
|
|
|
186
162
|
.ifNotExists()
|
|
187
163
|
.on('sync_snapshot_chunks')
|
|
188
164
|
.columns([
|
|
189
|
-
'partition_id',
|
|
190
165
|
'scope_key',
|
|
191
166
|
'scope',
|
|
192
167
|
'as_of_commit_seq',
|
|
@@ -210,34 +185,28 @@ export class PostgresServerSyncDialect {
|
|
|
210
185
|
// ===========================================================================
|
|
211
186
|
// Commit/Change Log Queries
|
|
212
187
|
// ===========================================================================
|
|
213
|
-
async readMaxCommitSeq(db
|
|
214
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
188
|
+
async readMaxCommitSeq(db) {
|
|
215
189
|
const res = await sql `
|
|
216
190
|
SELECT max(commit_seq) as max_seq
|
|
217
191
|
FROM sync_commits
|
|
218
|
-
WHERE partition_id = ${partitionId}
|
|
219
192
|
`.execute(db);
|
|
220
193
|
return coerceNumber(res.rows[0]?.max_seq) ?? 0;
|
|
221
194
|
}
|
|
222
|
-
async readMinCommitSeq(db
|
|
223
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
195
|
+
async readMinCommitSeq(db) {
|
|
224
196
|
const res = await sql `
|
|
225
197
|
SELECT min(commit_seq) as min_seq
|
|
226
198
|
FROM sync_commits
|
|
227
|
-
WHERE partition_id = ${partitionId}
|
|
228
199
|
`.execute(db);
|
|
229
200
|
return coerceNumber(res.rows[0]?.min_seq) ?? 0;
|
|
230
201
|
}
|
|
231
202
|
async readCommitSeqsForPull(db, args) {
|
|
232
|
-
const partitionId = args.partitionId ?? 'default';
|
|
233
203
|
if (args.tables.length === 0)
|
|
234
204
|
return [];
|
|
235
205
|
if (args.tables.length === 1) {
|
|
236
206
|
const res = await sql `
|
|
237
207
|
SELECT commit_seq
|
|
238
208
|
FROM sync_table_commits
|
|
239
|
-
WHERE
|
|
240
|
-
AND "table" = ${args.tables[0]}
|
|
209
|
+
WHERE "table" = ${args.tables[0]}
|
|
241
210
|
AND commit_seq > ${args.cursor}
|
|
242
211
|
ORDER BY commit_seq ASC
|
|
243
212
|
LIMIT ${args.limitCommits}
|
|
@@ -249,8 +218,7 @@ export class PostgresServerSyncDialect {
|
|
|
249
218
|
const res = await sql `
|
|
250
219
|
SELECT DISTINCT commit_seq
|
|
251
220
|
FROM sync_table_commits
|
|
252
|
-
WHERE
|
|
253
|
-
AND "table" = ANY(${args.tables}::text[])
|
|
221
|
+
WHERE "table" = ANY(${args.tables}::text[])
|
|
254
222
|
AND commit_seq > ${args.cursor}
|
|
255
223
|
ORDER BY commit_seq ASC
|
|
256
224
|
LIMIT ${args.limitCommits}
|
|
@@ -259,15 +227,13 @@ export class PostgresServerSyncDialect {
|
|
|
259
227
|
.map((r) => coerceNumber(r.commit_seq))
|
|
260
228
|
.filter((n) => typeof n === 'number' && Number.isFinite(n) && n > args.cursor);
|
|
261
229
|
}
|
|
262
|
-
async readCommits(db, commitSeqs
|
|
263
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
230
|
+
async readCommits(db, commitSeqs) {
|
|
264
231
|
if (commitSeqs.length === 0)
|
|
265
232
|
return [];
|
|
266
233
|
const res = await sql `
|
|
267
234
|
SELECT commit_seq, actor_id, created_at, result_json
|
|
268
235
|
FROM sync_commits
|
|
269
236
|
WHERE commit_seq = ANY(${commitSeqs}::bigint[])
|
|
270
|
-
AND partition_id = ${partitionId}
|
|
271
237
|
ORDER BY commit_seq ASC
|
|
272
238
|
`.execute(db);
|
|
273
239
|
return res.rows.map((row) => ({
|
|
@@ -278,7 +244,6 @@ export class PostgresServerSyncDialect {
|
|
|
278
244
|
}));
|
|
279
245
|
}
|
|
280
246
|
async readChangesForCommits(db, args) {
|
|
281
|
-
const partitionId = args.partitionId ?? 'default';
|
|
282
247
|
if (args.commitSeqs.length === 0)
|
|
283
248
|
return [];
|
|
284
249
|
// Build JSONB containment conditions for scope filtering
|
|
@@ -297,7 +262,6 @@ export class PostgresServerSyncDialect {
|
|
|
297
262
|
SELECT commit_seq, "table", row_id, op, row_json, row_version, scopes
|
|
298
263
|
FROM sync_changes
|
|
299
264
|
WHERE commit_seq = ANY(${args.commitSeqs}::bigint[])
|
|
300
|
-
AND partition_id = ${partitionId}
|
|
301
265
|
AND "table" = ${args.table}
|
|
302
266
|
`;
|
|
303
267
|
if (scopeConditions.length > 0) {
|
|
@@ -306,7 +270,6 @@ export class PostgresServerSyncDialect {
|
|
|
306
270
|
SELECT commit_seq, "table", row_id, op, row_json, row_version, scopes
|
|
307
271
|
FROM sync_changes
|
|
308
272
|
WHERE commit_seq = ANY(${args.commitSeqs}::bigint[])
|
|
309
|
-
AND partition_id = ${partitionId}
|
|
310
273
|
AND "table" = ${args.table}
|
|
311
274
|
AND (${scopeFilter})
|
|
312
275
|
ORDER BY commit_seq ASC, change_id ASC
|
|
@@ -324,7 +287,6 @@ export class PostgresServerSyncDialect {
|
|
|
324
287
|
}));
|
|
325
288
|
}
|
|
326
289
|
async readIncrementalPullRows(db, args) {
|
|
327
|
-
const partitionId = args.partitionId ?? 'default';
|
|
328
290
|
const limitCommits = Math.max(1, Math.min(500, args.limitCommits));
|
|
329
291
|
// Build scope filter conditions
|
|
330
292
|
const scopeConditions = [];
|
|
@@ -344,15 +306,12 @@ export class PostgresServerSyncDialect {
|
|
|
344
306
|
SELECT DISTINCT tc.commit_seq
|
|
345
307
|
FROM sync_table_commits tc
|
|
346
308
|
JOIN sync_commits cm ON cm.commit_seq = tc.commit_seq
|
|
347
|
-
WHERE tc.
|
|
348
|
-
AND tc."table" = ${args.table}
|
|
349
|
-
AND cm.partition_id = ${partitionId}
|
|
309
|
+
WHERE tc."table" = ${args.table}
|
|
350
310
|
AND tc.commit_seq > ${args.cursor}
|
|
351
311
|
AND EXISTS (
|
|
352
312
|
SELECT 1
|
|
353
313
|
FROM sync_changes c
|
|
354
314
|
WHERE c.commit_seq = tc.commit_seq
|
|
355
|
-
AND c.partition_id = ${partitionId}
|
|
356
315
|
AND c."table" = ${args.table}
|
|
357
316
|
AND (${scopeFilter})
|
|
358
317
|
)
|
|
@@ -373,9 +332,7 @@ export class PostgresServerSyncDialect {
|
|
|
373
332
|
FROM commit_seqs cs
|
|
374
333
|
JOIN sync_commits cm ON cm.commit_seq = cs.commit_seq
|
|
375
334
|
JOIN sync_changes c ON c.commit_seq = cs.commit_seq
|
|
376
|
-
WHERE
|
|
377
|
-
AND c.partition_id = ${partitionId}
|
|
378
|
-
AND c."table" = ${args.table}
|
|
335
|
+
WHERE c."table" = ${args.table}
|
|
379
336
|
AND (${scopeFilter})
|
|
380
337
|
ORDER BY cm.commit_seq ASC, c.change_id ASC
|
|
381
338
|
`.execute(db);
|
|
@@ -419,7 +376,7 @@ export class PostgresServerSyncDialect {
|
|
|
419
376
|
SELECT
|
|
420
377
|
c.change_id,
|
|
421
378
|
row_number() OVER (
|
|
422
|
-
PARTITION BY c.
|
|
379
|
+
PARTITION BY c."table", c.row_id, c.scopes
|
|
423
380
|
ORDER BY c.commit_seq DESC, c.change_id DESC
|
|
424
381
|
) AS rn
|
|
425
382
|
FROM sync_changes c
|
|
@@ -434,14 +391,12 @@ export class PostgresServerSyncDialect {
|
|
|
434
391
|
await sql `
|
|
435
392
|
DELETE FROM sync_table_commits tc
|
|
436
393
|
USING sync_commits cm
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
AND cm.created_at < ${cutoffIso}
|
|
394
|
+
WHERE cm.commit_seq = tc.commit_seq
|
|
395
|
+
AND cm.created_at < ${cutoffIso}
|
|
440
396
|
AND NOT EXISTS (
|
|
441
397
|
SELECT 1
|
|
442
398
|
FROM sync_changes c
|
|
443
399
|
WHERE c.commit_seq = tc.commit_seq
|
|
444
|
-
AND c.partition_id = tc.partition_id
|
|
445
400
|
AND c."table" = tc."table"
|
|
446
401
|
)
|
|
447
402
|
`.execute(db);
|
|
@@ -451,13 +406,12 @@ export class PostgresServerSyncDialect {
|
|
|
451
406
|
// Client Cursor Recording
|
|
452
407
|
// ===========================================================================
|
|
453
408
|
async recordClientCursor(db, args) {
|
|
454
|
-
const partitionId = args.partitionId ?? 'default';
|
|
455
409
|
const now = new Date().toISOString();
|
|
456
410
|
const scopesJson = JSON.stringify(args.effectiveScopes);
|
|
457
411
|
await sql `
|
|
458
|
-
INSERT INTO sync_client_cursors (
|
|
459
|
-
VALUES (${
|
|
460
|
-
ON CONFLICT(
|
|
412
|
+
INSERT INTO sync_client_cursors (client_id, actor_id, cursor, effective_scopes, updated_at)
|
|
413
|
+
VALUES (${args.clientId}, ${args.actorId}, ${args.cursor}, ${scopesJson}::jsonb, ${now})
|
|
414
|
+
ON CONFLICT(client_id) DO UPDATE SET
|
|
461
415
|
actor_id = ${args.actorId},
|
|
462
416
|
cursor = ${args.cursor},
|
|
463
417
|
effective_scopes = ${scopesJson}::jsonb,
|
|
@@ -482,13 +436,11 @@ export class PostgresServerSyncDialect {
|
|
|
482
436
|
arrayToDb(values) {
|
|
483
437
|
return values.filter((v) => v.length > 0);
|
|
484
438
|
}
|
|
485
|
-
async readAffectedTablesFromChanges(db, commitSeq
|
|
486
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
439
|
+
async readAffectedTablesFromChanges(db, commitSeq) {
|
|
487
440
|
const res = await sql `
|
|
488
441
|
SELECT DISTINCT "table"
|
|
489
442
|
FROM sync_changes
|
|
490
443
|
WHERE commit_seq = ${commitSeq}
|
|
491
|
-
AND partition_id = ${partitionId}
|
|
492
444
|
`.execute(db);
|
|
493
445
|
return res.rows
|
|
494
446
|
.map((r) => r.table)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,25 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/server-dialect-postgres",
|
|
3
|
-
"version": "0.0.1
|
|
4
|
-
"description": "PostgreSQL dialect for the Syncular server",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"author": "Benjamin Kniffler",
|
|
7
|
-
"homepage": "https://syncular.dev",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "https://github.com/syncular/syncular.git",
|
|
11
|
-
"directory": "packages/server-dialect-postgres"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/syncular/syncular/issues"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"sync",
|
|
18
|
-
"offline-first",
|
|
19
|
-
"realtime",
|
|
20
|
-
"database",
|
|
21
|
-
"typescript"
|
|
22
|
-
],
|
|
3
|
+
"version": "0.0.1",
|
|
23
4
|
"private": false,
|
|
24
5
|
"publishConfig": {
|
|
25
6
|
"access": "public"
|
|
@@ -36,18 +17,17 @@
|
|
|
36
17
|
},
|
|
37
18
|
"scripts": {
|
|
38
19
|
"tsgo": "tsgo --noEmit",
|
|
39
|
-
"build": "rm -rf dist && tsgo"
|
|
40
|
-
"release": "bun pm pack --destination . && npm publish ./*.tgz --tag latest && rm -f ./*.tgz"
|
|
20
|
+
"build": "rm -rf dist && tsgo"
|
|
41
21
|
},
|
|
42
22
|
"dependencies": {
|
|
43
|
-
"@syncular/core": "
|
|
44
|
-
"@syncular/server": "
|
|
23
|
+
"@syncular/core": "workspace:*",
|
|
24
|
+
"@syncular/server": "workspace:*"
|
|
45
25
|
},
|
|
46
26
|
"peerDependencies": {
|
|
47
27
|
"kysely": "^0.28.0"
|
|
48
28
|
},
|
|
49
29
|
"devDependencies": {
|
|
50
|
-
"@syncular/config": "
|
|
30
|
+
"@syncular/config": "workspace:*",
|
|
51
31
|
"kysely": "*"
|
|
52
32
|
},
|
|
53
33
|
"files": [
|
package/src/index.ts
CHANGED
|
@@ -67,9 +67,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
67
67
|
.createTable('sync_commits')
|
|
68
68
|
.ifNotExists()
|
|
69
69
|
.addColumn('commit_seq', 'bigserial', (col) => col.primaryKey())
|
|
70
|
-
.addColumn('partition_id', 'text', (col) =>
|
|
71
|
-
col.notNull().defaultTo('default')
|
|
72
|
-
)
|
|
73
70
|
.addColumn('actor_id', 'text', (col) => col.notNull())
|
|
74
71
|
.addColumn('client_id', 'text', (col) => col.notNull())
|
|
75
72
|
.addColumn('client_commit_id', 'text', (col) => col.notNull())
|
|
@@ -93,17 +90,12 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
93
90
|
ADD COLUMN IF NOT EXISTS affected_tables text[] NOT NULL DEFAULT ARRAY[]::text[]`.execute(
|
|
94
91
|
db
|
|
95
92
|
);
|
|
96
|
-
await sql`ALTER TABLE sync_commits
|
|
97
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(
|
|
98
|
-
db
|
|
99
|
-
);
|
|
100
93
|
|
|
101
|
-
await sql`DROP INDEX IF EXISTS idx_sync_commits_client_commit`.execute(db);
|
|
102
94
|
await db.schema
|
|
103
95
|
.createIndex('idx_sync_commits_client_commit')
|
|
104
96
|
.ifNotExists()
|
|
105
97
|
.on('sync_commits')
|
|
106
|
-
.columns(['
|
|
98
|
+
.columns(['client_id', 'client_commit_id'])
|
|
107
99
|
.unique()
|
|
108
100
|
.execute();
|
|
109
101
|
|
|
@@ -111,30 +103,18 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
111
103
|
await db.schema
|
|
112
104
|
.createTable('sync_table_commits')
|
|
113
105
|
.ifNotExists()
|
|
114
|
-
.addColumn('partition_id', 'text', (col) =>
|
|
115
|
-
col.notNull().defaultTo('default')
|
|
116
|
-
)
|
|
117
106
|
.addColumn('table', 'text', (col) => col.notNull())
|
|
118
107
|
.addColumn('commit_seq', 'bigint', (col) =>
|
|
119
108
|
col.notNull().references('sync_commits.commit_seq').onDelete('cascade')
|
|
120
109
|
)
|
|
121
|
-
.addPrimaryKeyConstraint('sync_table_commits_pk', [
|
|
122
|
-
'partition_id',
|
|
123
|
-
'table',
|
|
124
|
-
'commit_seq',
|
|
125
|
-
])
|
|
110
|
+
.addPrimaryKeyConstraint('sync_table_commits_pk', ['table', 'commit_seq'])
|
|
126
111
|
.execute();
|
|
127
112
|
|
|
128
|
-
await sql`ALTER TABLE sync_table_commits
|
|
129
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(
|
|
130
|
-
db
|
|
131
|
-
);
|
|
132
|
-
|
|
133
113
|
await db.schema
|
|
134
114
|
.createIndex('idx_sync_table_commits_commit_seq')
|
|
135
115
|
.ifNotExists()
|
|
136
116
|
.on('sync_table_commits')
|
|
137
|
-
.columns(['
|
|
117
|
+
.columns(['commit_seq'])
|
|
138
118
|
.execute();
|
|
139
119
|
|
|
140
120
|
// Changes table with JSONB scopes
|
|
@@ -142,9 +122,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
142
122
|
.createTable('sync_changes')
|
|
143
123
|
.ifNotExists()
|
|
144
124
|
.addColumn('change_id', 'bigserial', (col) => col.primaryKey())
|
|
145
|
-
.addColumn('partition_id', 'text', (col) =>
|
|
146
|
-
col.notNull().defaultTo('default')
|
|
147
|
-
)
|
|
148
125
|
.addColumn('commit_seq', 'bigint', (col) =>
|
|
149
126
|
col.notNull().references('sync_commits.commit_seq').onDelete('cascade')
|
|
150
127
|
)
|
|
@@ -156,23 +133,18 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
156
133
|
.addColumn('scopes', 'jsonb', (col) => col.notNull())
|
|
157
134
|
.execute();
|
|
158
135
|
|
|
159
|
-
await sql`ALTER TABLE sync_changes
|
|
160
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(
|
|
161
|
-
db
|
|
162
|
-
);
|
|
163
|
-
|
|
164
136
|
await db.schema
|
|
165
137
|
.createIndex('idx_sync_changes_commit_seq')
|
|
166
138
|
.ifNotExists()
|
|
167
139
|
.on('sync_changes')
|
|
168
|
-
.columns(['
|
|
140
|
+
.columns(['commit_seq'])
|
|
169
141
|
.execute();
|
|
170
142
|
|
|
171
143
|
await db.schema
|
|
172
144
|
.createIndex('idx_sync_changes_table')
|
|
173
145
|
.ifNotExists()
|
|
174
146
|
.on('sync_changes')
|
|
175
|
-
.columns(['
|
|
147
|
+
.columns(['table'])
|
|
176
148
|
.execute();
|
|
177
149
|
|
|
178
150
|
await this.ensureIndex(
|
|
@@ -184,10 +156,7 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
184
156
|
await db.schema
|
|
185
157
|
.createTable('sync_client_cursors')
|
|
186
158
|
.ifNotExists()
|
|
187
|
-
.addColumn('
|
|
188
|
-
col.notNull().defaultTo('default')
|
|
189
|
-
)
|
|
190
|
-
.addColumn('client_id', 'text', (col) => col.notNull())
|
|
159
|
+
.addColumn('client_id', 'text', (col) => col.primaryKey())
|
|
191
160
|
.addColumn('actor_id', 'text', (col) => col.notNull())
|
|
192
161
|
.addColumn('cursor', 'bigint', (col) => col.notNull().defaultTo(0))
|
|
193
162
|
.addColumn('effective_scopes', 'jsonb', (col) =>
|
|
@@ -196,17 +165,8 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
196
165
|
.addColumn('updated_at', 'timestamptz', (col) =>
|
|
197
166
|
col.notNull().defaultTo(sql`now()`)
|
|
198
167
|
)
|
|
199
|
-
.addPrimaryKeyConstraint('sync_client_cursors_pk', [
|
|
200
|
-
'partition_id',
|
|
201
|
-
'client_id',
|
|
202
|
-
])
|
|
203
168
|
.execute();
|
|
204
169
|
|
|
205
|
-
await sql`ALTER TABLE sync_client_cursors
|
|
206
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(
|
|
207
|
-
db
|
|
208
|
-
);
|
|
209
|
-
|
|
210
170
|
await db.schema
|
|
211
171
|
.createIndex('idx_sync_client_cursors_updated_at')
|
|
212
172
|
.ifNotExists()
|
|
@@ -218,9 +178,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
218
178
|
.createTable('sync_snapshot_chunks')
|
|
219
179
|
.ifNotExists()
|
|
220
180
|
.addColumn('chunk_id', 'text', (col) => col.primaryKey())
|
|
221
|
-
.addColumn('partition_id', 'text', (col) =>
|
|
222
|
-
col.notNull().defaultTo('default')
|
|
223
|
-
)
|
|
224
181
|
.addColumn('scope_key', 'text', (col) => col.notNull())
|
|
225
182
|
.addColumn('scope', 'text', (col) => col.notNull())
|
|
226
183
|
.addColumn('as_of_commit_seq', 'bigint', (col) => col.notNull())
|
|
@@ -238,11 +195,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
238
195
|
.addColumn('expires_at', 'timestamptz', (col) => col.notNull())
|
|
239
196
|
.execute();
|
|
240
197
|
|
|
241
|
-
await sql`ALTER TABLE sync_snapshot_chunks
|
|
242
|
-
ADD COLUMN IF NOT EXISTS partition_id text NOT NULL DEFAULT 'default'`.execute(
|
|
243
|
-
db
|
|
244
|
-
);
|
|
245
|
-
|
|
246
198
|
await db.schema
|
|
247
199
|
.createIndex('idx_sync_snapshot_chunks_expires_at')
|
|
248
200
|
.ifNotExists()
|
|
@@ -255,7 +207,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
255
207
|
.ifNotExists()
|
|
256
208
|
.on('sync_snapshot_chunks')
|
|
257
209
|
.columns([
|
|
258
|
-
'partition_id',
|
|
259
210
|
'scope_key',
|
|
260
211
|
'scope',
|
|
261
212
|
'as_of_commit_seq',
|
|
@@ -290,28 +241,22 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
290
241
|
// ===========================================================================
|
|
291
242
|
|
|
292
243
|
async readMaxCommitSeq<DB extends SyncCoreDb>(
|
|
293
|
-
db: Kysely<DB> | Transaction<DB
|
|
294
|
-
options?: { partitionId?: string }
|
|
244
|
+
db: Kysely<DB> | Transaction<DB>
|
|
295
245
|
): Promise<number> {
|
|
296
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
297
246
|
const res = await sql<{ max_seq: unknown }>`
|
|
298
247
|
SELECT max(commit_seq) as max_seq
|
|
299
248
|
FROM sync_commits
|
|
300
|
-
WHERE partition_id = ${partitionId}
|
|
301
249
|
`.execute(db);
|
|
302
250
|
|
|
303
251
|
return coerceNumber(res.rows[0]?.max_seq) ?? 0;
|
|
304
252
|
}
|
|
305
253
|
|
|
306
254
|
async readMinCommitSeq<DB extends SyncCoreDb>(
|
|
307
|
-
db: Kysely<DB> | Transaction<DB
|
|
308
|
-
options?: { partitionId?: string }
|
|
255
|
+
db: Kysely<DB> | Transaction<DB>
|
|
309
256
|
): Promise<number> {
|
|
310
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
311
257
|
const res = await sql<{ min_seq: unknown }>`
|
|
312
258
|
SELECT min(commit_seq) as min_seq
|
|
313
259
|
FROM sync_commits
|
|
314
|
-
WHERE partition_id = ${partitionId}
|
|
315
260
|
`.execute(db);
|
|
316
261
|
|
|
317
262
|
return coerceNumber(res.rows[0]?.min_seq) ?? 0;
|
|
@@ -319,22 +264,15 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
319
264
|
|
|
320
265
|
async readCommitSeqsForPull<DB extends SyncCoreDb>(
|
|
321
266
|
db: Kysely<DB> | Transaction<DB>,
|
|
322
|
-
args: {
|
|
323
|
-
cursor: number;
|
|
324
|
-
limitCommits: number;
|
|
325
|
-
tables: string[];
|
|
326
|
-
partitionId?: string;
|
|
327
|
-
}
|
|
267
|
+
args: { cursor: number; limitCommits: number; tables: string[] }
|
|
328
268
|
): Promise<number[]> {
|
|
329
|
-
const partitionId = args.partitionId ?? 'default';
|
|
330
269
|
if (args.tables.length === 0) return [];
|
|
331
270
|
|
|
332
271
|
if (args.tables.length === 1) {
|
|
333
272
|
const res = await sql<{ commit_seq: unknown }>`
|
|
334
273
|
SELECT commit_seq
|
|
335
274
|
FROM sync_table_commits
|
|
336
|
-
WHERE
|
|
337
|
-
AND "table" = ${args.tables[0]}
|
|
275
|
+
WHERE "table" = ${args.tables[0]}
|
|
338
276
|
AND commit_seq > ${args.cursor}
|
|
339
277
|
ORDER BY commit_seq ASC
|
|
340
278
|
LIMIT ${args.limitCommits}
|
|
@@ -351,8 +289,7 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
351
289
|
const res = await sql<{ commit_seq: unknown }>`
|
|
352
290
|
SELECT DISTINCT commit_seq
|
|
353
291
|
FROM sync_table_commits
|
|
354
|
-
WHERE
|
|
355
|
-
AND "table" = ANY(${args.tables}::text[])
|
|
292
|
+
WHERE "table" = ANY(${args.tables}::text[])
|
|
356
293
|
AND commit_seq > ${args.cursor}
|
|
357
294
|
ORDER BY commit_seq ASC
|
|
358
295
|
LIMIT ${args.limitCommits}
|
|
@@ -368,10 +305,8 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
368
305
|
|
|
369
306
|
async readCommits<DB extends SyncCoreDb>(
|
|
370
307
|
db: Kysely<DB> | Transaction<DB>,
|
|
371
|
-
commitSeqs: number[]
|
|
372
|
-
options?: { partitionId?: string }
|
|
308
|
+
commitSeqs: number[]
|
|
373
309
|
): Promise<SyncCommitRow[]> {
|
|
374
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
375
310
|
if (commitSeqs.length === 0) return [];
|
|
376
311
|
|
|
377
312
|
const res = await sql<{
|
|
@@ -383,7 +318,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
383
318
|
SELECT commit_seq, actor_id, created_at, result_json
|
|
384
319
|
FROM sync_commits
|
|
385
320
|
WHERE commit_seq = ANY(${commitSeqs}::bigint[])
|
|
386
|
-
AND partition_id = ${partitionId}
|
|
387
321
|
ORDER BY commit_seq ASC
|
|
388
322
|
`.execute(db);
|
|
389
323
|
|
|
@@ -397,14 +331,8 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
397
331
|
|
|
398
332
|
async readChangesForCommits<DB extends SyncCoreDb>(
|
|
399
333
|
db: Kysely<DB> | Transaction<DB>,
|
|
400
|
-
args: {
|
|
401
|
-
commitSeqs: number[];
|
|
402
|
-
table: string;
|
|
403
|
-
scopes: ScopeValues;
|
|
404
|
-
partitionId?: string;
|
|
405
|
-
}
|
|
334
|
+
args: { commitSeqs: number[]; table: string; scopes: ScopeValues }
|
|
406
335
|
): Promise<SyncChangeRow[]> {
|
|
407
|
-
const partitionId = args.partitionId ?? 'default';
|
|
408
336
|
if (args.commitSeqs.length === 0) return [];
|
|
409
337
|
|
|
410
338
|
// Build JSONB containment conditions for scope filtering
|
|
@@ -431,7 +359,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
431
359
|
SELECT commit_seq, "table", row_id, op, row_json, row_version, scopes
|
|
432
360
|
FROM sync_changes
|
|
433
361
|
WHERE commit_seq = ANY(${args.commitSeqs}::bigint[])
|
|
434
|
-
AND partition_id = ${partitionId}
|
|
435
362
|
AND "table" = ${args.table}
|
|
436
363
|
`;
|
|
437
364
|
|
|
@@ -449,7 +376,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
449
376
|
SELECT commit_seq, "table", row_id, op, row_json, row_version, scopes
|
|
450
377
|
FROM sync_changes
|
|
451
378
|
WHERE commit_seq = ANY(${args.commitSeqs}::bigint[])
|
|
452
|
-
AND partition_id = ${partitionId}
|
|
453
379
|
AND "table" = ${args.table}
|
|
454
380
|
AND (${scopeFilter})
|
|
455
381
|
ORDER BY commit_seq ASC, change_id ASC
|
|
@@ -476,7 +402,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
476
402
|
scopes: ScopeValues;
|
|
477
403
|
cursor: number;
|
|
478
404
|
limitCommits: number;
|
|
479
|
-
partitionId?: string;
|
|
480
405
|
}
|
|
481
406
|
): Promise<
|
|
482
407
|
Array<{
|
|
@@ -492,7 +417,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
492
417
|
scopes: StoredScopes;
|
|
493
418
|
}>
|
|
494
419
|
> {
|
|
495
|
-
const partitionId = args.partitionId ?? 'default';
|
|
496
420
|
const limitCommits = Math.max(1, Math.min(500, args.limitCommits));
|
|
497
421
|
|
|
498
422
|
// Build scope filter conditions
|
|
@@ -526,15 +450,12 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
526
450
|
SELECT DISTINCT tc.commit_seq
|
|
527
451
|
FROM sync_table_commits tc
|
|
528
452
|
JOIN sync_commits cm ON cm.commit_seq = tc.commit_seq
|
|
529
|
-
WHERE tc.
|
|
530
|
-
AND tc."table" = ${args.table}
|
|
531
|
-
AND cm.partition_id = ${partitionId}
|
|
453
|
+
WHERE tc."table" = ${args.table}
|
|
532
454
|
AND tc.commit_seq > ${args.cursor}
|
|
533
455
|
AND EXISTS (
|
|
534
456
|
SELECT 1
|
|
535
457
|
FROM sync_changes c
|
|
536
458
|
WHERE c.commit_seq = tc.commit_seq
|
|
537
|
-
AND c.partition_id = ${partitionId}
|
|
538
459
|
AND c."table" = ${args.table}
|
|
539
460
|
AND (${scopeFilter})
|
|
540
461
|
)
|
|
@@ -555,9 +476,7 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
555
476
|
FROM commit_seqs cs
|
|
556
477
|
JOIN sync_commits cm ON cm.commit_seq = cs.commit_seq
|
|
557
478
|
JOIN sync_changes c ON c.commit_seq = cs.commit_seq
|
|
558
|
-
WHERE
|
|
559
|
-
AND c.partition_id = ${partitionId}
|
|
560
|
-
AND c."table" = ${args.table}
|
|
479
|
+
WHERE c."table" = ${args.table}
|
|
561
480
|
AND (${scopeFilter})
|
|
562
481
|
ORDER BY cm.commit_seq ASC, c.change_id ASC
|
|
563
482
|
`.execute(db);
|
|
@@ -584,7 +503,6 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
584
503
|
cursor: number;
|
|
585
504
|
limitCommits: number;
|
|
586
505
|
batchSize?: number;
|
|
587
|
-
partitionId?: string;
|
|
588
506
|
}
|
|
589
507
|
): AsyncGenerator<{
|
|
590
508
|
commit_seq: number;
|
|
@@ -633,7 +551,7 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
633
551
|
SELECT
|
|
634
552
|
c.change_id,
|
|
635
553
|
row_number() OVER (
|
|
636
|
-
PARTITION BY c.
|
|
554
|
+
PARTITION BY c."table", c.row_id, c.scopes
|
|
637
555
|
ORDER BY c.commit_seq DESC, c.change_id DESC
|
|
638
556
|
) AS rn
|
|
639
557
|
FROM sync_changes c
|
|
@@ -650,14 +568,12 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
650
568
|
await sql`
|
|
651
569
|
DELETE FROM sync_table_commits tc
|
|
652
570
|
USING sync_commits cm
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
AND cm.created_at < ${cutoffIso}
|
|
571
|
+
WHERE cm.commit_seq = tc.commit_seq
|
|
572
|
+
AND cm.created_at < ${cutoffIso}
|
|
656
573
|
AND NOT EXISTS (
|
|
657
574
|
SELECT 1
|
|
658
575
|
FROM sync_changes c
|
|
659
576
|
WHERE c.commit_seq = tc.commit_seq
|
|
660
|
-
AND c.partition_id = tc.partition_id
|
|
661
577
|
AND c."table" = tc."table"
|
|
662
578
|
)
|
|
663
579
|
`.execute(db);
|
|
@@ -672,21 +588,19 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
672
588
|
async recordClientCursor<DB extends SyncCoreDb>(
|
|
673
589
|
db: Kysely<DB> | Transaction<DB>,
|
|
674
590
|
args: {
|
|
675
|
-
partitionId?: string;
|
|
676
591
|
clientId: string;
|
|
677
592
|
actorId: string;
|
|
678
593
|
cursor: number;
|
|
679
594
|
effectiveScopes: ScopeValues;
|
|
680
595
|
}
|
|
681
596
|
): Promise<void> {
|
|
682
|
-
const partitionId = args.partitionId ?? 'default';
|
|
683
597
|
const now = new Date().toISOString();
|
|
684
598
|
const scopesJson = JSON.stringify(args.effectiveScopes);
|
|
685
599
|
|
|
686
600
|
await sql`
|
|
687
|
-
INSERT INTO sync_client_cursors (
|
|
688
|
-
VALUES (${
|
|
689
|
-
ON CONFLICT(
|
|
601
|
+
INSERT INTO sync_client_cursors (client_id, actor_id, cursor, effective_scopes, updated_at)
|
|
602
|
+
VALUES (${args.clientId}, ${args.actorId}, ${args.cursor}, ${scopesJson}::jsonb, ${now})
|
|
603
|
+
ON CONFLICT(client_id) DO UPDATE SET
|
|
690
604
|
actor_id = ${args.actorId},
|
|
691
605
|
cursor = ${args.cursor},
|
|
692
606
|
effective_scopes = ${scopesJson}::jsonb,
|
|
@@ -719,15 +633,12 @@ export class PostgresServerSyncDialect implements ServerSyncDialect {
|
|
|
719
633
|
|
|
720
634
|
async readAffectedTablesFromChanges<DB extends SyncCoreDb>(
|
|
721
635
|
db: Kysely<DB> | Transaction<DB>,
|
|
722
|
-
commitSeq: number
|
|
723
|
-
options?: { partitionId?: string }
|
|
636
|
+
commitSeq: number
|
|
724
637
|
): Promise<string[]> {
|
|
725
|
-
const partitionId = options?.partitionId ?? 'default';
|
|
726
638
|
const res = await sql<{ table: string }>`
|
|
727
639
|
SELECT DISTINCT "table"
|
|
728
640
|
FROM sync_changes
|
|
729
641
|
WHERE commit_seq = ${commitSeq}
|
|
730
|
-
AND partition_id = ${partitionId}
|
|
731
642
|
`.execute(db);
|
|
732
643
|
|
|
733
644
|
return res.rows
|