@powersync/service-module-mssql 0.0.0-dev-20260602073133 → 0.0.0-dev-20260909133214
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/CHANGELOG.md +209 -4
- package/dist/api/MSSQLRouteAPIAdapter.d.ts +4 -5
- package/dist/api/MSSQLRouteAPIAdapter.js +33 -39
- package/dist/api/MSSQLRouteAPIAdapter.js.map +1 -1
- package/dist/common/MSSQLSourceTable.d.ts +12 -2
- package/dist/common/MSSQLSourceTable.js +30 -4
- package/dist/common/MSSQLSourceTable.js.map +1 -1
- package/dist/module/MSSQLModule.js +2 -1
- package/dist/module/MSSQLModule.js.map +1 -1
- package/dist/replication/CDCPoller.d.ts +13 -36
- package/dist/replication/CDCPoller.js +173 -129
- package/dist/replication/CDCPoller.js.map +1 -1
- package/dist/replication/CDCReplicationJob.js +1 -1
- package/dist/replication/CDCReplicationJob.js.map +1 -1
- package/dist/replication/CDCReplicator.js +1 -1
- package/dist/replication/CDCReplicator.js.map +1 -1
- package/dist/replication/CDCStream.d.ts +11 -14
- package/dist/replication/CDCStream.js +124 -115
- package/dist/replication/CDCStream.js.map +1 -1
- package/dist/replication/CaptureReconciler.d.ts +47 -0
- package/dist/replication/CaptureReconciler.js +155 -0
- package/dist/replication/CaptureReconciler.js.map +1 -0
- package/dist/replication/MSSQLConnectionManager.d.ts +1 -0
- package/dist/replication/MSSQLConnectionManager.js +19 -14
- package/dist/replication/MSSQLConnectionManager.js.map +1 -1
- package/dist/replication/MSSQLTableReconciliationContext.d.ts +21 -0
- package/dist/replication/MSSQLTableReconciliationContext.js +7 -0
- package/dist/replication/MSSQLTableReconciliationContext.js.map +1 -0
- package/dist/replication/SchemaChange.d.ts +67 -0
- package/dist/replication/SchemaChange.js +31 -0
- package/dist/replication/SchemaChange.js.map +1 -0
- package/dist/types/types.d.ts +13 -0
- package/dist/types/types.js +28 -2
- package/dist/types/types.js.map +1 -1
- package/dist/utils/mssql.js +1 -1
- package/dist/utils/schema.d.ts +14 -1
- package/dist/utils/schema.js +43 -45
- package/dist/utils/schema.js.map +1 -1
- package/package.json +11 -21
- package/src/api/MSSQLRouteAPIAdapter.ts +38 -49
- package/src/common/MSSQLSourceTable.ts +32 -4
- package/src/module/MSSQLModule.ts +2 -1
- package/src/replication/CDCPoller.ts +206 -162
- package/src/replication/CDCReplicationJob.ts +1 -1
- package/src/replication/CDCReplicator.ts +1 -1
- package/src/replication/CDCStream.ts +157 -163
- package/src/replication/CaptureReconciler.ts +186 -0
- package/src/replication/MSSQLConnectionManager.ts +23 -14
- package/src/replication/MSSQLTableReconciliationContext.ts +29 -0
- package/src/replication/SchemaChange.ts +79 -0
- package/src/types/types.ts +47 -2
- package/src/utils/mssql.ts +1 -1
- package/src/utils/schema.ts +60 -54
- package/test/src/CDCPoller.test.ts +382 -0
- package/test/src/CDCStream.test.ts +6 -2
- package/test/src/CDCStreamTestContext.ts +30 -23
- package/test/src/CaptureReconciler.test.ts +171 -0
- package/test/src/MSSQLSourceTable.test.ts +30 -0
- package/test/src/config.test.ts +71 -0
- package/test/src/schema-changes.test.ts +513 -249
- package/test/src/schema.test.ts +17 -0
- package/test/src/util.ts +73 -9
- package/tsconfig.json +0 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -8,8 +8,11 @@ import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
|
|
|
8
8
|
import { MSSQLSourceTableCache } from '../common/MSSQLSourceTableCache.js';
|
|
9
9
|
import { checkRetentionThresholds, checkSourceConfiguration, createCheckpoint, getCaptureInstances, getLatestLSN, getLatestReplicatedLSN, isIColumnMetadata } from '../utils/mssql.js';
|
|
10
10
|
import { getReplicationIdentityColumns, getTablesFromPattern } from '../utils/schema.js';
|
|
11
|
-
import {
|
|
11
|
+
import { CaptureInstanceMissingError, createCaptureReconciler, SourceTableUnavailableError } from './CaptureReconciler.js';
|
|
12
|
+
import { CDCPoller } from './CDCPoller.js';
|
|
12
13
|
import { BatchedSnapshotQuery, SimpleSnapshotQuery } from './MSSQLSnapshotQuery.js';
|
|
14
|
+
import { MSSQLTableReconciliationState } from './MSSQLTableReconciliationContext.js';
|
|
15
|
+
import { SchemaChangeType } from './SchemaChange.js';
|
|
13
16
|
export var SnapshotStatus;
|
|
14
17
|
(function (SnapshotStatus) {
|
|
15
18
|
SnapshotStatus["INITIAL"] = "initial";
|
|
@@ -43,6 +46,9 @@ export class CDCStream {
|
|
|
43
46
|
logger;
|
|
44
47
|
tableCache = new MSSQLSourceTableCache();
|
|
45
48
|
replicationLag = new ReplicationLagTracker();
|
|
49
|
+
// Latest capture instance warning emitted for each source table.
|
|
50
|
+
warnedNewerCaptureObjectId = new Map();
|
|
51
|
+
warnedSchemaChangeCount = new Map();
|
|
46
52
|
constructor(options) {
|
|
47
53
|
this.options = options;
|
|
48
54
|
this.logger = options.logger ?? defaultLogger;
|
|
@@ -64,7 +70,7 @@ export class CDCStream {
|
|
|
64
70
|
return this.connections.schema;
|
|
65
71
|
}
|
|
66
72
|
get groupId() {
|
|
67
|
-
return this.options.storage.
|
|
73
|
+
return this.options.storage.replicationStreamId;
|
|
68
74
|
}
|
|
69
75
|
get connectionId() {
|
|
70
76
|
const { connectionId } = this.connections;
|
|
@@ -99,83 +105,103 @@ export class CDCStream {
|
|
|
99
105
|
}
|
|
100
106
|
async populateTableCache() {
|
|
101
107
|
const sourceTables = this.syncRules.getSourceTables();
|
|
108
|
+
// Loaded once for all patterns - this reads the CDC metadata for the entire database.
|
|
109
|
+
const captureInstances = await getCaptureInstances({ connectionManager: this.connections });
|
|
102
110
|
await this.storage.startBatch({
|
|
103
111
|
logger: this.logger,
|
|
104
112
|
zeroLSN: LSN.ZERO,
|
|
105
113
|
defaultSchema: this.defaultSchema,
|
|
106
|
-
storeCurrentData: false
|
|
114
|
+
storeCurrentData: false,
|
|
115
|
+
signal: this.abortSignal
|
|
107
116
|
}, async (batch) => {
|
|
108
117
|
for (let tablePattern of sourceTables) {
|
|
109
|
-
await this.getQualifiedTableNames(batch, tablePattern);
|
|
118
|
+
await this.getQualifiedTableNames(batch, tablePattern, captureInstances);
|
|
110
119
|
}
|
|
111
120
|
});
|
|
112
121
|
}
|
|
113
|
-
async getQualifiedTableNames(batch, tablePattern) {
|
|
122
|
+
async getQualifiedTableNames(batch, tablePattern, captureInstances) {
|
|
114
123
|
if (tablePattern.connectionTag != this.connections.connectionTag) {
|
|
115
124
|
return [];
|
|
116
125
|
}
|
|
117
|
-
const captureInstances = await getCaptureInstances({ connectionManager: this.connections });
|
|
118
126
|
const matchedTables = await getTablesFromPattern(this.connections, tablePattern);
|
|
127
|
+
if (matchedTables.length == 0) {
|
|
128
|
+
await this.reportUnavailableTable(batch, {
|
|
129
|
+
state: MSSQLTableReconciliationState.TABLE_MISSING,
|
|
130
|
+
source: {
|
|
131
|
+
connectionTag: this.connectionTag,
|
|
132
|
+
name: tablePattern.name,
|
|
133
|
+
schema: tablePattern.schema,
|
|
134
|
+
objectId: undefined,
|
|
135
|
+
// Replica identity metadata is unavailable when the physical table does not exist.
|
|
136
|
+
replicaIdColumns: []
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
119
140
|
const tables = [];
|
|
120
141
|
for (const matchedTable of matchedTables) {
|
|
121
|
-
const captureInstanceDetails = captureInstances.get(matchedTable.objectId);
|
|
122
|
-
if (!captureInstanceDetails) {
|
|
123
|
-
// Match Postgres publication handling: If the source table cannot stream changes yet,
|
|
124
|
-
// don't resolve it into storage. Once CDC is enabled, the schema poller detects the
|
|
125
|
-
// new capture instance and resolves/snapshots it then.
|
|
126
|
-
this.logger.info(`Skipping ${tablePattern.schema}.${matchedTable.name} - not enabled for CDC. This table will not be replicated until CDC is enabled for it.`);
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
142
|
// TODO: Check RLS settings for table
|
|
130
143
|
const replicaIdColumns = await getReplicationIdentityColumns({
|
|
131
144
|
connectionManager: this.connections,
|
|
132
145
|
tableName: matchedTable.name,
|
|
133
146
|
schema: matchedTable.schema
|
|
134
147
|
});
|
|
135
|
-
const
|
|
148
|
+
const source = {
|
|
136
149
|
connectionTag: this.connectionTag,
|
|
137
150
|
name: matchedTable.name,
|
|
138
151
|
schema: matchedTable.schema,
|
|
139
152
|
objectId: matchedTable.objectId,
|
|
140
153
|
replicaIdColumns: replicaIdColumns.columns
|
|
141
|
-
}
|
|
142
|
-
|
|
154
|
+
};
|
|
155
|
+
const captureInstanceDetails = captureInstances.get(matchedTable.objectId);
|
|
156
|
+
if (!captureInstanceDetails?.instances.length) {
|
|
157
|
+
await this.reportUnavailableTable(batch, {
|
|
158
|
+
state: MSSQLTableReconciliationState.CDC_DISABLED,
|
|
159
|
+
source
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
const table = await this.processTable(batch, {
|
|
164
|
+
state: MSSQLTableReconciliationState.READY,
|
|
165
|
+
source,
|
|
166
|
+
captureInstances: captureInstanceDetails.instances
|
|
167
|
+
});
|
|
168
|
+
tables.push(table);
|
|
169
|
+
}
|
|
143
170
|
}
|
|
144
171
|
return tables;
|
|
145
172
|
}
|
|
146
|
-
async processTable(batch,
|
|
147
|
-
|
|
148
|
-
|
|
173
|
+
async processTable(batch, context) {
|
|
174
|
+
const { source } = context;
|
|
175
|
+
if (!source.objectId && typeof source.objectId != 'number') {
|
|
176
|
+
throw new ReplicationAssertionError(`objectId expected, got ${typeof source.objectId}`);
|
|
149
177
|
}
|
|
178
|
+
// Load all source metadata before resolving so the storage transaction does no source I/O.
|
|
150
179
|
const resolved = await batch.resolveTables({
|
|
151
180
|
connection_id: this.connectionId,
|
|
152
|
-
source
|
|
181
|
+
source,
|
|
182
|
+
reconcileSourceTables: createCaptureReconciler(context)
|
|
153
183
|
});
|
|
154
|
-
const resolvedTable = new MSSQLSourceTable(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
else {
|
|
159
|
-
resolvedTable.setCaptureInstance(captureInstance);
|
|
184
|
+
const resolvedTable = new MSSQLSourceTable(source, resolved.tables);
|
|
185
|
+
resolvedTable.setCaptureInstance(context.captureInstances);
|
|
186
|
+
if (!resolvedTable.enabledForCDC()) {
|
|
187
|
+
throw new ReplicationAssertionError(`No capture instance matching the persisted binding is available for table ${resolvedTable.toQualifiedName()}`);
|
|
160
188
|
}
|
|
161
189
|
this.tableCache.set(resolvedTable);
|
|
162
190
|
// Drop conflicting tables. This includes for example renamed tables.
|
|
163
191
|
await batch.drop(resolved.dropTables);
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
// 2. AND the table is enabled for CDC with a valid capture instance.
|
|
167
|
-
const snapshotCandidates = resolved.tables.filter((candidate) => snapshot && !candidate.snapshotComplete && candidate.syncAny);
|
|
168
|
-
const shouldSnapshot = snapshotCandidates.length > 0 && resolvedTable.enabledForCDC();
|
|
169
|
-
if (shouldSnapshot) {
|
|
170
|
-
// Truncate tables in case a previous snapshot was interrupted.
|
|
171
|
-
await batch.truncate(snapshotCandidates);
|
|
172
|
-
// Start the snapshot(s) inside a transaction.
|
|
173
|
-
for (const candidate of snapshotCandidates) {
|
|
174
|
-
await this.snapshotTableInTx(batch, resolvedTable, candidate);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
192
|
+
// Snapshotting is driven by startInitialReplication, which picks up any source table that is
|
|
193
|
+
// not snapshot-complete after the table cache has been populated.
|
|
177
194
|
return resolvedTable;
|
|
178
195
|
}
|
|
196
|
+
async reportUnavailableTable(batch, context) {
|
|
197
|
+
await batch.resolveTables({
|
|
198
|
+
connection_id: this.connectionId,
|
|
199
|
+
source: context.source,
|
|
200
|
+
reconcileSourceTables: createCaptureReconciler(context)
|
|
201
|
+
});
|
|
202
|
+
// Unavailable-state reconciliation must reject; this enforces the Promise<never> contract if it returns.
|
|
203
|
+
throw new ReplicationAssertionError(`Unavailable source-table reconciliation unexpectedly completed for ${context.source.schema}.${context.source.name}`);
|
|
204
|
+
}
|
|
179
205
|
async snapshotTableInTx(batch, physicalTable, sourceTable) {
|
|
180
206
|
// Note: We use the "Read Committed" isolation level here, not snapshot isolation.
|
|
181
207
|
// The data may change during the transaction, but that is compensated for in the streaming
|
|
@@ -330,7 +356,8 @@ export class CDCStream {
|
|
|
330
356
|
zeroLSN: LSN.ZERO,
|
|
331
357
|
defaultSchema: this.defaultSchema,
|
|
332
358
|
storeCurrentData: false,
|
|
333
|
-
skipExistingRows: true
|
|
359
|
+
skipExistingRows: true,
|
|
360
|
+
signal: this.abortSignal
|
|
334
361
|
}, async (batch) => {
|
|
335
362
|
switch (status) {
|
|
336
363
|
case SnapshotStatus.INITIAL:
|
|
@@ -345,9 +372,16 @@ export class CDCStream {
|
|
|
345
372
|
break;
|
|
346
373
|
case SnapshotStatus.LIMITED_RESNAPSHOT:
|
|
347
374
|
for (const table of specificTablesToResnapshot) {
|
|
375
|
+
if (table.captureInstance == null) {
|
|
376
|
+
throw new ReplicationAssertionError(`No capture instance bound for table ${table.toQualifiedName()} while re-snapshotting`);
|
|
377
|
+
}
|
|
348
378
|
await batch.drop(table.getReplicatedSourceTables());
|
|
349
|
-
//
|
|
350
|
-
await this.processTable(batch,
|
|
379
|
+
// Re-resolve against the bound instance only, so the new record keeps the same pin.
|
|
380
|
+
await this.processTable(batch, {
|
|
381
|
+
state: MSSQLTableReconciliationState.READY,
|
|
382
|
+
source: table.ref,
|
|
383
|
+
captureInstances: [table.captureInstance]
|
|
384
|
+
});
|
|
351
385
|
}
|
|
352
386
|
break;
|
|
353
387
|
default:
|
|
@@ -410,7 +444,7 @@ export class CDCStream {
|
|
|
410
444
|
*/
|
|
411
445
|
async checkSnapshotStatus() {
|
|
412
446
|
const status = await this.storage.getStatus();
|
|
413
|
-
if (status.
|
|
447
|
+
if (status.snapshotDone) {
|
|
414
448
|
const additionalTablesToSnapshot = new Set();
|
|
415
449
|
const newTables = this.tableCache
|
|
416
450
|
.getAll()
|
|
@@ -419,23 +453,23 @@ export class CDCStream {
|
|
|
419
453
|
this.logger.info(`Detected new table(s) [${newTables.map((table) => table.toQualifiedName()).join(', ')}] that have not been snapshotted yet.`);
|
|
420
454
|
newTables.forEach((table) => additionalTablesToSnapshot.add(table));
|
|
421
455
|
}
|
|
422
|
-
// Snapshot is done, but we still need to check that the last known
|
|
456
|
+
// Snapshot is done, but we still need to check that the last known resume LSN is still
|
|
423
457
|
// within the retention threshold of the CDC tables
|
|
424
|
-
const
|
|
458
|
+
const lastResumeLSN = LSN.fromString(status.resumeLsn);
|
|
425
459
|
// Check that the CDC tables still have valid data
|
|
426
460
|
const tablesOutsideRetentionThreshold = await checkRetentionThresholds({
|
|
427
|
-
checkpointLSN:
|
|
461
|
+
checkpointLSN: lastResumeLSN,
|
|
428
462
|
tables: this.tableCache.getAll(),
|
|
429
463
|
connectionManager: this.connections
|
|
430
464
|
});
|
|
431
465
|
if (tablesOutsideRetentionThreshold.length > 0) {
|
|
432
|
-
this.logger.warn(`Updates from the last
|
|
466
|
+
this.logger.warn(`Updates from the last resume LSN are no longer available in the CDC instances of the following table(s): ${tablesOutsideRetentionThreshold.map((table) => table.toQualifiedName()).join(', ')}.`);
|
|
433
467
|
tablesOutsideRetentionThreshold.forEach((table) => additionalTablesToSnapshot.add(table));
|
|
434
468
|
}
|
|
435
469
|
if (additionalTablesToSnapshot.size > 0) {
|
|
436
470
|
return {
|
|
437
471
|
status: SnapshotStatus.LIMITED_RESNAPSHOT,
|
|
438
|
-
snapshotLSN: status.
|
|
472
|
+
snapshotLSN: status.resumeLsn,
|
|
439
473
|
specificTablesToResnapshot: Array.from(additionalTablesToSnapshot)
|
|
440
474
|
};
|
|
441
475
|
}
|
|
@@ -448,8 +482,8 @@ export class CDCStream {
|
|
|
448
482
|
}
|
|
449
483
|
else {
|
|
450
484
|
return {
|
|
451
|
-
status: status.
|
|
452
|
-
snapshotLSN: status.
|
|
485
|
+
status: status.resumeLsn != null ? SnapshotStatus.RESUME : SnapshotStatus.INITIAL,
|
|
486
|
+
snapshotLSN: status.resumeLsn
|
|
453
487
|
};
|
|
454
488
|
}
|
|
455
489
|
}
|
|
@@ -459,7 +493,8 @@ export class CDCStream {
|
|
|
459
493
|
zeroLSN: LSN.ZERO,
|
|
460
494
|
defaultSchema: this.defaultSchema,
|
|
461
495
|
storeCurrentData: false,
|
|
462
|
-
skipExistingRows: false
|
|
496
|
+
skipExistingRows: false,
|
|
497
|
+
signal: this.abortSignal
|
|
463
498
|
}, async (batch) => {
|
|
464
499
|
if (batch.resumeFromLsn == null) {
|
|
465
500
|
throw new ReplicationAssertionError(`No LSN found to resume replication from.`);
|
|
@@ -470,7 +505,6 @@ export class CDCStream {
|
|
|
470
505
|
connectionManager: this.connections,
|
|
471
506
|
eventHandler,
|
|
472
507
|
getReplicatedTables: () => this.tableCache.getAll(),
|
|
473
|
-
sourceTables: this.syncRules.getSourceTables(),
|
|
474
508
|
startLSN,
|
|
475
509
|
logger: this.logger,
|
|
476
510
|
additionalConfig: this.options.additionalConfig,
|
|
@@ -544,82 +578,57 @@ export class CDCStream {
|
|
|
544
578
|
};
|
|
545
579
|
}
|
|
546
580
|
async handleSchemaChange(batch, change) {
|
|
547
|
-
let actionedSchemaChange = true;
|
|
548
581
|
switch (change.type) {
|
|
549
582
|
case SchemaChangeType.TABLE_RENAME:
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
}
|
|
559
|
-
break;
|
|
560
|
-
case SchemaChangeType.TABLE_CREATE:
|
|
561
|
-
await this.handleCreateOrUpdateTable(batch, change.newTable, change.newCaptureInstance);
|
|
562
|
-
break;
|
|
583
|
+
// Continuing could commit past unread changes because the rename has no known LSN.
|
|
584
|
+
throw new SourceTableUnavailableError(`Table ${change.table.toQualifiedName()} has been renamed to [${change.newTable.name}]. ` +
|
|
585
|
+
`Deploy a new sync config that uses the new name to replicate it again. ` +
|
|
586
|
+
`Its already-replicated data is retained until then.`);
|
|
587
|
+
case SchemaChangeType.TABLE_DROP:
|
|
588
|
+
throw new SourceTableUnavailableError(`Table ${change.table.toQualifiedName()} has been dropped from the source. Deploy a new sync config ` +
|
|
589
|
+
`that no longer includes it. Its already-replicated data is retained until the new sync config ` +
|
|
590
|
+
`becomes active.`);
|
|
563
591
|
case SchemaChangeType.TABLE_COLUMN_CHANGES:
|
|
564
|
-
|
|
565
|
-
actionedSchemaChange = false;
|
|
592
|
+
this.warnColumnChanges(change.table, change.captureInstance);
|
|
566
593
|
break;
|
|
567
|
-
case SchemaChangeType.NEW_CAPTURE_INSTANCE:
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
this.
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
594
|
+
case SchemaChangeType.NEW_CAPTURE_INSTANCE: {
|
|
595
|
+
// Warn once per newer instance and keep polling the pinned one.
|
|
596
|
+
const { table, newCaptureInstance } = change;
|
|
597
|
+
if (this.warnedNewerCaptureObjectId.get(table.objectId) !== newCaptureInstance.objectId) {
|
|
598
|
+
this.logger.warn(`A newer CDC capture instance (object id ${newCaptureInstance.objectId}) is available for table ${table.toQualifiedName()}, ` +
|
|
599
|
+
`but the current replication process remains pinned to capture instance object id ${table.pinnedCaptureObjectId}. ` +
|
|
600
|
+
`Deploy a new sync config to adopt the new capture instance, and keep the current instance ` +
|
|
601
|
+
`available until that sync config becomes active.`);
|
|
602
|
+
this.warnedNewerCaptureObjectId.set(table.objectId, newCaptureInstance.objectId);
|
|
603
|
+
}
|
|
576
604
|
break;
|
|
605
|
+
}
|
|
577
606
|
case SchemaChangeType.MISSING_CAPTURE_INSTANCE:
|
|
578
|
-
//
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
607
|
+
// A replacement may have a different schema, so never adopt it in place.
|
|
608
|
+
throw new CaptureInstanceMissingError(`The CDC capture instance for table ${change.table.toQualifiedName()} (pinned to object id ` +
|
|
609
|
+
`${change.table.pinnedCaptureObjectId}) is no longer available. ` +
|
|
610
|
+
`PowerSync cannot continue replicating the table - a dropped capture instance cannot be ` +
|
|
611
|
+
`restored, because re-enabling CDC creates a new one with a different object id. ` +
|
|
612
|
+
(change.replacementInstance
|
|
613
|
+
? `Deploy a new sync config to adopt the replacement.`
|
|
614
|
+
: `Re-enable CDC for this table, then deploy a new sync config.`));
|
|
583
615
|
default:
|
|
584
616
|
throw new ReplicationAssertionError(`Unknown schema change type: ${change.type}`);
|
|
585
617
|
}
|
|
586
|
-
//
|
|
587
|
-
if (actionedSchemaChange) {
|
|
588
|
-
await createCheckpoint(this.connections);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
async handleCreateOrUpdateTable(batch, table, captureInstance) {
|
|
592
|
-
const replicaIdColumns = await getReplicationIdentityColumns({
|
|
593
|
-
connectionManager: this.connections,
|
|
594
|
-
tableName: table.name,
|
|
595
|
-
schema: table.schema
|
|
596
|
-
});
|
|
597
|
-
await this.processTable(batch, {
|
|
598
|
-
connectionTag: this.connectionTag,
|
|
599
|
-
name: table.name,
|
|
600
|
-
schema: table.schema,
|
|
601
|
-
objectId: table.objectId,
|
|
602
|
-
replicaIdColumns: replicaIdColumns.columns
|
|
603
|
-
}, captureInstance, true);
|
|
618
|
+
// Warning-only changes do not need a checkpoint.
|
|
604
619
|
}
|
|
605
620
|
/**
|
|
606
|
-
*
|
|
607
|
-
*
|
|
608
|
-
* Due to the way CDC works, users are prevented from making column schema changes that affect the replication identities of a table.
|
|
609
|
-
* If changes like that are required, CDC has to be disabled and re-enabled for the table. This would then be handled by the detection of the new
|
|
610
|
-
* capture instance.
|
|
611
|
-
* @param table
|
|
612
|
-
* @param captureInstance
|
|
621
|
+
* Warn about column drift while continuing with the pinned capture schema.
|
|
613
622
|
*/
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
if (table.
|
|
617
|
-
table.captureInstance?.pendingSchemaChanges.length === captureInstance.pendingSchemaChanges.length) {
|
|
623
|
+
warnColumnChanges(table, captureInstance) {
|
|
624
|
+
const changeCount = captureInstance.pendingSchemaChanges.length;
|
|
625
|
+
if (this.warnedSchemaChangeCount.get(table.objectId) === changeCount) {
|
|
618
626
|
return;
|
|
619
627
|
}
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
628
|
+
this.logger.warn(`Schema drift detected for table ${table.toQualifiedName()}. Until a new sync config becomes active, ` +
|
|
629
|
+
`replication continues against the captured schema, so these changes are not replicated. Deploy a new ` +
|
|
630
|
+
`sync config to pick them up.\n Pending schema changes:\n ${captureInstance.pendingSchemaChanges.join(', \n')}`);
|
|
631
|
+
this.warnedSchemaChangeCount.set(table.objectId, changeCount);
|
|
623
632
|
}
|
|
624
633
|
/**
|
|
625
634
|
* Convert CDC row data to SqliteRow format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CDCStream.js","sourceRoot":"","sources":["../../src/replication/CDCStream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CDCStream.js","sourceRoot":"","sources":["../../src/replication/CDCStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ServiceError } from '@powersync/lib-services-framework';
|
|
2
|
+
import { JsonValue, SourceTableCandidate, storage } from '@powersync/service-core';
|
|
3
|
+
import * as t from 'ts-codec';
|
|
4
|
+
import type { MSSQLTableReconciliationContext } from './MSSQLTableReconciliationContext.js';
|
|
5
|
+
/**
|
|
6
|
+
* The pinned capture instance was dropped and cannot be replaced in this stream.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CaptureInstanceMissingError extends ServiceError {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A configured table does not exist or does not have CDC enabled yet.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SourceTableNotReadyError extends ServiceError {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A replicated table is unavailable or no longer matches its persisted source binding.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SourceTableUnavailableError extends ServiceError {
|
|
21
|
+
constructor(message: string);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Persisted capture-table identity. Names are not enough because SQL Server can reuse them.
|
|
25
|
+
*/
|
|
26
|
+
export declare const MSSQLSourceMetadata: t.ObjectCodec<{
|
|
27
|
+
captureTableObjectId: t.IdentityCodec<t.CodecType.Number>;
|
|
28
|
+
}>;
|
|
29
|
+
export type MSSQLSourceMetadata = t.Decoded<typeof MSSQLSourceMetadata>;
|
|
30
|
+
/**
|
|
31
|
+
* Parse persisted capture metadata, returning null for legacy records.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readCaptureMetadata(value: JsonValue): MSSQLSourceMetadata | null;
|
|
34
|
+
/**
|
|
35
|
+
* Reconcile a discovered source-table state against persisted bindings. Ready tables reconcile
|
|
36
|
+
* against capture instances ordered newest first. New and legacy bindings use the newest instance;
|
|
37
|
+
* pinned bindings keep their instance or fail if it is gone.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createCaptureReconciler(context: MSSQLTableReconciliationContext): ({ source, candidates }: storage.SourceTableCandidateReconcilerInput) => {
|
|
40
|
+
compatibleTables: SourceTableCandidate[];
|
|
41
|
+
incompatibleTables: SourceTableCandidate[];
|
|
42
|
+
newTableValues: {
|
|
43
|
+
sourceMetadata: {
|
|
44
|
+
captureTableObjectId: number;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|