@powersync/service-module-mssql 0.10.3 → 0.10.5

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.
@@ -3,46 +3,75 @@ import { bson } from '@powersync/service-core';
3
3
  import { MSSQLBaseType } from '../types/mssql-data-types.js';
4
4
  import { escapeIdentifier } from '../utils/mssql.js';
5
5
  /**
6
- * Snapshot query using a plain SELECT * FROM table
7
- *
8
- * This supports all tables but does not efficiently resume the snapshot
9
- * if the process is restarted.
6
+ * Helper class that encapsulates the streaming logic of the queries used for snapshots.
7
+ */
8
+ class StreamingQuery {
9
+ request;
10
+ rows;
11
+ completed;
12
+ finished = false;
13
+ constructor(request, query) {
14
+ this.request = request;
15
+ const stream = request.toReadableStream();
16
+ // Errors are surfaced by iterating the rows. This listener prevents an unhandled 'error' event
17
+ // when the query fails after iteration has stopped, such as the cancellation error from cancel().
18
+ stream.on('error', () => { });
19
+ // In stream mode, errors are emitted on the stream instead of rejecting this promise.
20
+ this.completed = request.query(query).then(() => {
21
+ this.finished = true;
22
+ }, () => {
23
+ this.finished = true;
24
+ });
25
+ this.rows = stream[Symbol.asyncIterator]();
26
+ }
27
+ async cancel() {
28
+ if (!this.finished) {
29
+ this.request.cancel();
30
+ }
31
+ // Resolves once the driver has released the transaction's connection.
32
+ await this.completed;
33
+ }
34
+ }
35
+ /**
36
+ * Snapshot query using a plain SELECT * FROM table.
37
+ * This supports all tables but cannot resume the snapshot if the process is restarted.
10
38
  */
11
39
  export class SimpleSnapshotQuery {
12
40
  transaction;
13
41
  qualifiedTableName;
14
- constructor(transaction, qualifiedTableName) {
42
+ batchSize;
43
+ query = null;
44
+ constructor(transaction, qualifiedTableName, batchSize = 10_000) {
15
45
  this.transaction = transaction;
16
46
  this.qualifiedTableName = qualifiedTableName;
47
+ this.batchSize = batchSize;
17
48
  }
18
- async initialize() { }
19
- async *next() {
20
- const metadataRequest = this.transaction.request();
21
- metadataRequest.stream = true;
22
- const metadataPromise = new Promise((resolve, reject) => {
23
- metadataRequest.on('recordset', resolve);
24
- metadataRequest.on('error', reject);
25
- });
26
- metadataRequest.query(`SELECT TOP(0) * FROM ${this.qualifiedTableName}`);
27
- const columnMetadata = await metadataPromise;
28
- yield columnMetadata;
29
- const request = this.transaction.request();
30
- const stream = request.toReadableStream();
31
- request.query(`SELECT * FROM ${this.qualifiedTableName}`);
32
- // MSSQL only streams one row at a time
33
- for await (const row of stream) {
34
- yield row;
49
+ getColumnMetadata() {
50
+ return queryColumnMetadata(this.transaction, this.qualifiedTableName);
51
+ }
52
+ async *nextBatch() {
53
+ // Opened on the first call, and iterated straight away so that the row iterator receives any query error.
54
+ this.query ??= new StreamingQuery(this.transaction.request(), `SELECT * FROM ${this.qualifiedTableName}`);
55
+ for (let i = 0; i < this.batchSize; i++) {
56
+ // MSSQL only streams one row at a time
57
+ const result = await this.query.rows.next();
58
+ if (result.done) {
59
+ return;
60
+ }
61
+ yield result.value;
35
62
  }
36
63
  }
64
+ async close() {
65
+ await this.query?.cancel();
66
+ }
37
67
  }
38
68
  /**
39
69
  * Performs a table snapshot query, batching by ranges of primary key data.
40
70
  *
41
71
  * This may miss some rows if they are modified during the snapshot query.
42
- * In that case, replication will pick up those rows afterward,
43
- * possibly resulting in an IdSnapshotQuery.
72
+ * In that case, replication will pick up those rows afterward.
44
73
  *
45
- * Currently, this only supports a table with a single primary key column,
74
+ * Currently, this only supports tables with a single primary key column,
46
75
  * of a select few types.
47
76
  */
48
77
  export class BatchedSnapshotQuery {
@@ -76,6 +105,7 @@ export class BatchedSnapshotQuery {
76
105
  return primaryKey.typeId != null && BatchedSnapshotQuery.SUPPORTED_TYPES.includes(Number(primaryKey.typeId));
77
106
  }
78
107
  key;
108
+ query = null;
79
109
  lastKey = null;
80
110
  constructor(transaction, qualifiedTableName, sourceTable, batchSize = 10_000, lastKeySerialized) {
81
111
  this.transaction = transaction;
@@ -86,46 +116,39 @@ export class BatchedSnapshotQuery {
86
116
  this.lastKey = this.deserializeKey(lastKeySerialized);
87
117
  }
88
118
  }
89
- async initialize() {
90
- // No-op
119
+ async getColumnMetadata() {
120
+ const columnMetadata = await queryColumnMetadata(this.transaction, this.qualifiedTableName);
121
+ const foundPrimaryKey = columnMetadata[this.key.name];
122
+ if (!foundPrimaryKey) {
123
+ throw new Error(`Cannot find primary key column ${this.key.name} in results. Keys: ${Object.keys(columnMetadata).join(', ')}`);
124
+ }
125
+ return columnMetadata;
91
126
  }
92
127
  getLastKeySerialized() {
93
128
  return bson.serialize({ [this.key.name]: this.lastKey });
94
129
  }
95
- async *next() {
130
+ async *nextBatch() {
96
131
  const escapedKeyName = escapeIdentifier(this.key.name);
97
- const metadataRequest = this.transaction.request();
98
- metadataRequest.stream = true;
99
- const metadataPromise = new Promise((resolve, reject) => {
100
- metadataRequest.on('recordset', resolve);
101
- metadataRequest.on('error', reject);
102
- });
103
- metadataRequest.query(`SELECT TOP(0) * FROM ${this.qualifiedTableName}`);
104
- const columnMetadata = await metadataPromise;
105
- const foundPrimaryKey = columnMetadata[this.key.name];
106
- if (!foundPrimaryKey) {
107
- throw new Error(`Cannot find primary key column ${this.key.name} in results. Keys: ${Object.keys(columnMetadata.columns).join(', ')}`);
108
- }
109
- yield columnMetadata;
110
132
  const request = this.transaction.request();
111
- const stream = request.toReadableStream();
112
133
  if (this.lastKey == null) {
113
- request.query(`SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} ORDER BY ${escapedKeyName}`);
134
+ this.query = new StreamingQuery(request, `SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} ORDER BY ${escapedKeyName}`);
114
135
  }
115
136
  else {
116
137
  if (this.key.typeId == null) {
117
138
  throw new Error(`typeId required for primary key ${this.key.name}`);
118
139
  }
119
- request
120
- .input('lastKey', this.lastKey)
121
- .query(`SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} WHERE ${escapedKeyName} > @lastKey ORDER BY ${escapedKeyName}`);
140
+ request.input('lastKey', this.lastKey);
141
+ this.query = new StreamingQuery(request, `SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} WHERE ${escapedKeyName} > @lastKey ORDER BY ${escapedKeyName}`);
122
142
  }
123
143
  // MSSQL only streams one row at a time
124
- for await (const row of stream) {
144
+ for await (const row of this.query.rows) {
125
145
  this.lastKey = row[this.key.name];
126
146
  yield row;
127
147
  }
128
148
  }
149
+ async close() {
150
+ await this.query?.cancel();
151
+ }
129
152
  deserializeKey(key) {
130
153
  const decoded = bson.deserialize(key, { useBigInt64: true });
131
154
  const keys = Object.keys(decoded);
@@ -138,4 +161,8 @@ export class BatchedSnapshotQuery {
138
161
  return decoded[this.key.name];
139
162
  }
140
163
  }
164
+ async function queryColumnMetadata(transaction, qualifiedTableName) {
165
+ const { recordset } = await transaction.request().query(`SELECT TOP(0) * FROM ${qualifiedTableName}`);
166
+ return recordset.columns;
167
+ }
141
168
  //# sourceMappingURL=MSSQLSnapshotQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,6 @@ export declare function getLatestReplicatedLSN(connectionManager: MSSQLConnectio
59
59
  */
60
60
  export declare function escapeIdentifier(identifier: string): string;
61
61
  export declare function toQualifiedTableName(schema: string, tableName: string): string;
62
- export declare function isIColumnMetadata(obj: any): obj is sql.IColumnMetadata;
63
62
  export declare function addParameters(request: sql.Request, parameters: MSSQLParameter[]): sql.Request;
64
63
  export interface GetDebugTableInfoOptions {
65
64
  connectionManager: MSSQLConnectionManager;
@@ -178,25 +178,6 @@ export function escapeIdentifier(identifier) {
178
178
  export function toQualifiedTableName(schema, tableName) {
179
179
  return `${escapeIdentifier(schema)}.${escapeIdentifier(tableName)}`;
180
180
  }
181
- export function isIColumnMetadata(obj) {
182
- if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
183
- return false;
184
- }
185
- let propertiesMatched = true;
186
- for (const value of Object.values(obj)) {
187
- const property = value;
188
- propertiesMatched =
189
- typeof property.index === 'number' &&
190
- typeof property.name === 'string' &&
191
- (typeof property.length === 'number' || typeof property.length === 'undefined') &&
192
- (typeof property.type === 'function' || typeof property.type === 'object') &&
193
- typeof property.nullable === 'boolean' &&
194
- typeof property.caseSensitive === 'boolean' &&
195
- typeof property.identity === 'boolean' &&
196
- typeof property.readOnly === 'boolean';
197
- }
198
- return propertiesMatched;
199
- }
200
181
  export function addParameters(request, parameters) {
201
182
  for (const param of parameters) {
202
183
  if (param.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../src/utils/mssql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../src/utils/mssql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powersync/service-module-mssql",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.10.3",
4
+ "version": "0.10.5",
5
5
  "license": "FSL-1.1-ALv2",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -17,20 +17,20 @@
17
17
  "ts-codec": "^1.3.0",
18
18
  "uri-js": "^4.4.1",
19
19
  "uuid": "^14.0.0",
20
- "@powersync/lib-services-framework": "0.10.3",
21
- "@powersync/service-core": "1.27.0",
22
- "@powersync/service-errors": "0.5.0",
20
+ "@powersync/lib-services-framework": "0.10.4",
21
+ "@powersync/service-core": "1.27.2",
22
+ "@powersync/service-errors": "0.6.0",
23
23
  "@powersync/service-jsonbig": "0.17.13",
24
- "@powersync/service-sync-rules": "0.43.0",
25
- "@powersync/service-types": "0.19.0"
24
+ "@powersync/service-sync-rules": "0.44.0",
25
+ "@powersync/service-types": "0.20.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/mssql": "^9.1.9",
29
29
  "@types/semver": "^7.7.1",
30
30
  "@types/uuid": "^11.0.0",
31
- "@powersync/service-core-tests": "0.18.3",
32
- "@powersync/service-module-mongodb-storage": "0.23.0",
33
- "@powersync/service-module-postgres-storage": "0.19.2"
31
+ "@powersync/service-core-tests": "0.18.4",
32
+ "@powersync/service-module-mongodb-storage": "0.23.2",
33
+ "@powersync/service-module-postgres-storage": "0.19.4"
34
34
  },
35
35
  "scripts": {
36
36
  "build": "tsc -b",
@@ -218,7 +218,8 @@ export class MSSQLRouteAPIAdapter implements api.RouteAPI {
218
218
 
219
219
  getParseSyncRulesOptions(): ParseSyncConfigOptions {
220
220
  return {
221
- defaultSchema: this.connectionManager.schema
221
+ defaultSchema: this.connectionManager.schema,
222
+ connections: { [this.connectionManager.connectionTag]: { type: this.config.type } }
222
223
  };
223
224
  }
224
225
 
@@ -36,6 +36,7 @@ export class MSSQLModule extends replication.ReplicationModule<types.MSSQLConnec
36
36
  id: this.getDefaultId(normalisedConfig.database),
37
37
  syncRuleProvider: syncRuleProvider,
38
38
  storageEngine: context.storageEngine,
39
+ configuration: context.configuration,
39
40
  metricsEngine: context.metricsEngine,
40
41
  connectionFactory: connectionFactory,
41
42
  rateLimiter: new MSSQLErrorRateLimiter(),
@@ -32,8 +32,7 @@ import {
32
32
  createCheckpoint,
33
33
  getCaptureInstances,
34
34
  getLatestLSN,
35
- getLatestReplicatedLSN,
36
- isIColumnMetadata
35
+ getLatestReplicatedLSN
37
36
  } from '../utils/mssql.js';
38
37
  import { getReplicationIdentityColumns, getTablesFromPattern, ResolvedTable } from '../utils/schema.js';
39
38
  import {
@@ -52,8 +51,8 @@ import { MSSQLTableReconciliationState } from './MSSQLTableReconciliationContext
52
51
  import { SchemaChange, SchemaChangeType } from './SchemaChange.js';
53
52
 
54
53
  export interface CDCStreamOptions {
55
- connections: MSSQLConnectionManager;
56
54
  storage: storage.SyncRulesBucketStorage;
55
+ connections: MSSQLConnectionManager;
57
56
  metrics: MetricsEngine;
58
57
  abortSignal: AbortSignal;
59
58
  logger?: Logger;
@@ -393,28 +392,23 @@ export class CDCStream {
393
392
  this.logger.info(
394
393
  `Snapshotting ${physicalTable.toQualifiedName()} ${sourceTable.formatSnapshotProgress()} - not resumable`
395
394
  );
396
- query = new SimpleSnapshotQuery(transaction, physicalTable.toQualifiedName());
395
+ query = new SimpleSnapshotQuery(transaction, physicalTable.toQualifiedName(), this.snapshotBatchSize);
397
396
  replicatedCount = 0;
398
397
  }
399
- await query.initialize();
400
-
401
- let hasRemainingData = true;
402
- while (hasRemainingData) {
403
- // Fetch 10k at a time.
404
- // The balance here is between latency overhead per FETCH call,
405
- // and not spending too much time on each FETCH call.
406
- // We aim for a couple of seconds on each FETCH call.
407
- let batchReplicatedCount = 0;
408
- let columns: sql.IColumnMetadata | null = null;
409
- const cursor = query.next();
410
- for await (const result of cursor) {
411
- if (columns == null && isIColumnMetadata(result)) {
412
- columns = result;
413
- continue;
414
- } else {
415
- if (!columns) {
416
- throw new ReplicationAssertionError(`Missing column metadata`);
417
- }
398
+
399
+ try {
400
+ // Fetched once for the whole snapshot. Column changes require deploying a new sync config anyway,
401
+ // since replication continues against the captured schema until then.
402
+ const columns = await query.getColumnMetadata();
403
+
404
+ let hasRemainingData = true;
405
+ while (hasRemainingData) {
406
+ // Fetch this.snapshotBatchSize rows at a time
407
+ // The balance here is between latency overhead per FETCH call,
408
+ // and not spending too much time on each FETCH call.
409
+ // We aim for a couple of seconds on each FETCH call.
410
+ let batchReplicatedCount = 0;
411
+ for await (const result of query.nextBatch()) {
418
412
  const inputRow: SqliteInputRow = toSqliteInputRow(result, columns);
419
413
  const row = this.syncRules.applyRowContext<never>(inputRow);
420
414
  // This auto-flushes when the batch reaches its size limit
@@ -430,45 +424,49 @@ export class CDCStream {
430
424
  replicatedCount++;
431
425
  batchReplicatedCount++;
432
426
  this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
433
- }
434
427
 
435
- this.touch();
436
- }
428
+ this.touch();
429
+ }
437
430
 
438
- // Important: flush before marking progress
439
- await batch.flush();
431
+ // Important: flush before marking progress
432
+ await batch.flush();
440
433
 
441
- let lastKey: Uint8Array | undefined;
442
- if (query instanceof BatchedSnapshotQuery) {
443
- lastKey = query.getLastKeySerialized();
444
- }
445
- if (lastCountTime < performance.now() - 10 * 60 * 1000) {
446
- // Even though we're doing the snapshot inside a transaction, the transaction uses
447
- // the default "Read Committed" isolation level. This means we can get new data
448
- // within the transaction, so we re-estimate the count every 10 minutes when replicating
449
- // large tables.
450
- totalEstimatedCount = await this.estimatedCountNumber(physicalTable, transaction);
451
- lastCountTime = performance.now();
452
- }
453
- const updatedSourceTable = await batch.updateTableProgress(sourceTable, {
454
- lastKey: lastKey,
455
- replicatedCount: replicatedCount,
456
- totalEstimatedCount: totalEstimatedCount
457
- });
458
- this.tableCache.updateSourceTable(updatedSourceTable);
459
- sourceTable = updatedSourceTable;
434
+ let lastKey: Uint8Array | undefined;
435
+ if (query instanceof BatchedSnapshotQuery) {
436
+ lastKey = query.getLastKeySerialized();
437
+ }
438
+ if (lastCountTime < performance.now() - 10 * 60 * 1000) {
439
+ // Even though we're doing the snapshot inside a transaction, the transaction uses
440
+ // the default "Read Committed" isolation level. This means we can get new data
441
+ // within the transaction, so we re-estimate the count every 10 minutes when replicating
442
+ // large tables.
443
+ // This uses a separate connection: the snapshot query may still be in progress on the transaction.
444
+ totalEstimatedCount = await this.estimatedCountNumber(physicalTable);
445
+ lastCountTime = performance.now();
446
+ }
447
+ const updatedSourceTable = await batch.updateTableProgress(sourceTable, {
448
+ lastKey: lastKey,
449
+ replicatedCount: replicatedCount,
450
+ totalEstimatedCount: totalEstimatedCount
451
+ });
452
+ this.tableCache.updateSourceTable(updatedSourceTable);
453
+ sourceTable = updatedSourceTable;
460
454
 
461
- if (this.abortSignal.aborted) {
462
- // We only abort after flushing
463
- throw new ReplicationAbortedError(`Initial replication interrupted`);
464
- }
455
+ if (this.abortSignal.aborted) {
456
+ // We only abort after flushing
457
+ throw new ReplicationAbortedError(`Initial replication interrupted`);
458
+ }
465
459
 
466
- // When the batch of rows is smaller than the requested batch size we know it is the final batch
467
- if (batchReplicatedCount < this.snapshotBatchSize) {
468
- hasRemainingData = false;
469
- } else {
470
- this.logger.info(`Snapshotting ${physicalTable.toQualifiedName()} ${sourceTable.formatSnapshotProgress()}`);
460
+ // When the batch of rows is smaller than the requested batch size we know it is the final batch
461
+ if (batchReplicatedCount < this.snapshotBatchSize) {
462
+ hasRemainingData = false;
463
+ } else {
464
+ this.logger.info(`Snapshotting ${physicalTable.toQualifiedName()} ${sourceTable.formatSnapshotProgress()}`);
465
+ }
471
466
  }
467
+ } finally {
468
+ // Cancel the snapshot query if it is still in progress, so that the transaction can be rolled back.
469
+ await query.close();
472
470
  }
473
471
  }
474
472
 
@@ -476,10 +474,9 @@ export class CDCStream {
476
474
  * Estimate the number of rows in a table. This query uses partition stats view to get a fast estimate of the row count.
477
475
  * This requires that the MSSQL DB user has the VIEW DATABASE PERFORMANCE STATE permission.
478
476
  * @param table
479
- * @param transaction
480
477
  */
481
- async estimatedCountNumber(table: MSSQLSourceTable, transaction?: sql.Transaction): Promise<number> {
482
- const request = transaction ? transaction.request() : await this.connections.createRequest();
478
+ async estimatedCountNumber(table: MSSQLSourceTable): Promise<number> {
479
+ const request = await this.connections.createRequest();
483
480
  const { recordset: result } = await request.input('tableName', table.toQualifiedName()).query(
484
481
  `SELECT SUM(row_count) AS total_rows
485
482
  FROM sys.dm_db_partition_stats