@powersync/service-module-mssql 0.10.3 → 0.10.4
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 +44 -0
- package/dist/api/MSSQLRouteAPIAdapter.js +2 -1
- package/dist/api/MSSQLRouteAPIAdapter.js.map +1 -1
- package/dist/module/MSSQLModule.js +1 -0
- package/dist/module/MSSQLModule.js.map +1 -1
- package/dist/replication/CDCStream.d.ts +2 -4
- package/dist/replication/CDCStream.js +54 -57
- package/dist/replication/CDCStream.js.map +1 -1
- package/dist/replication/MSSQLSnapshotQuery.d.ts +25 -15
- package/dist/replication/MSSQLSnapshotQuery.js +74 -47
- package/dist/replication/MSSQLSnapshotQuery.js.map +1 -1
- package/dist/utils/mssql.d.ts +0 -1
- package/dist/utils/mssql.js +0 -19
- package/dist/utils/mssql.js.map +1 -1
- package/package.json +9 -9
- package/src/api/MSSQLRouteAPIAdapter.ts +2 -1
- package/src/module/MSSQLModule.ts +1 -0
- package/src/replication/CDCStream.ts +56 -59
- package/src/replication/MSSQLSnapshotQuery.ts +107 -62
- package/src/utils/mssql.ts +0 -22
- package/test/src/CDCStream.test.ts +106 -16
- package/test/src/CDCStreamTestContext.ts +5 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAiC,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/mssql.d.ts
CHANGED
|
@@ -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;
|
package/dist/utils/mssql.js
CHANGED
|
@@ -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) {
|
package/dist/utils/mssql.js.map
CHANGED
|
@@ -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.
|
|
4
|
+
"version": "0.10.4",
|
|
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.
|
|
21
|
-
"@powersync/service-core": "1.27.
|
|
22
|
-
"@powersync/service-errors": "0.
|
|
20
|
+
"@powersync/lib-services-framework": "0.10.4",
|
|
21
|
+
"@powersync/service-core": "1.27.1",
|
|
22
|
+
"@powersync/service-errors": "0.6.0",
|
|
23
23
|
"@powersync/service-jsonbig": "0.17.13",
|
|
24
|
-
"@powersync/service-sync-rules": "0.
|
|
25
|
-
"@powersync/service-types": "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.
|
|
32
|
-
"@powersync/service-module-mongodb-storage": "0.23.
|
|
33
|
-
"@powersync/service-module-postgres-storage": "0.19.
|
|
31
|
+
"@powersync/service-core-tests": "0.18.4",
|
|
32
|
+
"@powersync/service-module-mongodb-storage": "0.23.1",
|
|
33
|
+
"@powersync/service-module-postgres-storage": "0.19.3"
|
|
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
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
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
|
-
|
|
436
|
-
|
|
428
|
+
this.touch();
|
|
429
|
+
}
|
|
437
430
|
|
|
438
|
-
|
|
439
|
-
|
|
431
|
+
// Important: flush before marking progress
|
|
432
|
+
await batch.flush();
|
|
440
433
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
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
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
455
|
+
if (this.abortSignal.aborted) {
|
|
456
|
+
// We only abort after flushing
|
|
457
|
+
throw new ReplicationAbortedError(`Initial replication interrupted`);
|
|
458
|
+
}
|
|
465
459
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
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
|
|
482
|
-
const request =
|
|
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
|
|
@@ -5,61 +5,102 @@ import { MSSQLBaseType } from '../types/mssql-data-types.js';
|
|
|
5
5
|
import { escapeIdentifier } from '../utils/mssql.js';
|
|
6
6
|
|
|
7
7
|
export interface MSSQLSnapshotQuery {
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Returns the column metadata for the rows that would be returned for this query.
|
|
10
|
+
*/
|
|
11
|
+
getColumnMetadata(): Promise<sql.IColumnMetadata>;
|
|
9
12
|
|
|
10
13
|
/**
|
|
11
|
-
* Returns an async
|
|
14
|
+
* Returns an async iterator for the next batch of rows, yielding at most the batch size.
|
|
15
|
+
* A batch smaller than the batch size indicates that there are no rows left.
|
|
12
16
|
*/
|
|
13
|
-
|
|
17
|
+
nextBatch(): AsyncIterableIterator<Record<string, any>>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Cancels the query if it is still in progress.
|
|
21
|
+
*/
|
|
22
|
+
close(): Promise<void>;
|
|
14
23
|
}
|
|
15
24
|
|
|
16
25
|
/**
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
* Helper class that encapsulates the streaming logic of the queries used for snapshots.
|
|
27
|
+
*/
|
|
28
|
+
class StreamingQuery {
|
|
29
|
+
readonly rows: AsyncIterableIterator<any>;
|
|
30
|
+
private readonly completed: Promise<void>;
|
|
31
|
+
private finished = false;
|
|
32
|
+
|
|
33
|
+
constructor(
|
|
34
|
+
private readonly request: sql.Request,
|
|
35
|
+
query: string
|
|
36
|
+
) {
|
|
37
|
+
const stream = request.toReadableStream();
|
|
38
|
+
// Errors are surfaced by iterating the rows. This listener prevents an unhandled 'error' event
|
|
39
|
+
// when the query fails after iteration has stopped, such as the cancellation error from cancel().
|
|
40
|
+
stream.on('error', () => {});
|
|
41
|
+
// In stream mode, errors are emitted on the stream instead of rejecting this promise.
|
|
42
|
+
this.completed = request.query(query).then(
|
|
43
|
+
() => {
|
|
44
|
+
this.finished = true;
|
|
45
|
+
},
|
|
46
|
+
() => {
|
|
47
|
+
this.finished = true;
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
this.rows = stream[Symbol.asyncIterator]();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async cancel(): Promise<void> {
|
|
54
|
+
if (!this.finished) {
|
|
55
|
+
this.request.cancel();
|
|
56
|
+
}
|
|
57
|
+
// Resolves once the driver has released the transaction's connection.
|
|
58
|
+
await this.completed;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Snapshot query using a plain SELECT * FROM table.
|
|
64
|
+
* This supports all tables but cannot resume the snapshot if the process is restarted.
|
|
21
65
|
*/
|
|
22
66
|
export class SimpleSnapshotQuery implements MSSQLSnapshotQuery {
|
|
67
|
+
private query: StreamingQuery | null = null;
|
|
68
|
+
|
|
23
69
|
public constructor(
|
|
24
70
|
private readonly transaction: sql.Transaction,
|
|
25
|
-
private readonly qualifiedTableName: string
|
|
71
|
+
private readonly qualifiedTableName: string,
|
|
72
|
+
private readonly batchSize: number = 10_000
|
|
26
73
|
) {}
|
|
27
74
|
|
|
28
|
-
public
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const metadataRequest = this.transaction.request();
|
|
32
|
-
metadataRequest.stream = true;
|
|
33
|
-
const metadataPromise = new Promise<sql.IColumnMetadata>((resolve, reject) => {
|
|
34
|
-
metadataRequest.on('recordset', resolve);
|
|
35
|
-
metadataRequest.on('error', reject);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
metadataRequest.query(`SELECT TOP(0) * FROM ${this.qualifiedTableName}`);
|
|
39
|
-
|
|
40
|
-
const columnMetadata: sql.IColumnMetadata = await metadataPromise;
|
|
41
|
-
yield columnMetadata;
|
|
42
|
-
|
|
43
|
-
const request = this.transaction.request();
|
|
44
|
-
const stream = request.toReadableStream();
|
|
45
|
-
|
|
46
|
-
request.query(`SELECT * FROM ${this.qualifiedTableName}`);
|
|
75
|
+
public getColumnMetadata(): Promise<sql.IColumnMetadata> {
|
|
76
|
+
return queryColumnMetadata(this.transaction, this.qualifiedTableName);
|
|
77
|
+
}
|
|
47
78
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
79
|
+
public async *nextBatch(): AsyncIterableIterator<Record<string, any>> {
|
|
80
|
+
// Opened on the first call, and iterated straight away so that the row iterator receives any query error.
|
|
81
|
+
this.query ??= new StreamingQuery(this.transaction.request(), `SELECT * FROM ${this.qualifiedTableName}`);
|
|
82
|
+
for (let i = 0; i < this.batchSize; i++) {
|
|
83
|
+
// MSSQL only streams one row at a time
|
|
84
|
+
const result = await this.query.rows.next();
|
|
85
|
+
if (result.done) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
yield result.value;
|
|
51
89
|
}
|
|
52
90
|
}
|
|
91
|
+
|
|
92
|
+
public async close(): Promise<void> {
|
|
93
|
+
await this.query?.cancel();
|
|
94
|
+
}
|
|
53
95
|
}
|
|
54
96
|
|
|
55
97
|
/**
|
|
56
98
|
* Performs a table snapshot query, batching by ranges of primary key data.
|
|
57
99
|
*
|
|
58
100
|
* This may miss some rows if they are modified during the snapshot query.
|
|
59
|
-
* In that case, replication will pick up those rows afterward
|
|
60
|
-
* possibly resulting in an IdSnapshotQuery.
|
|
101
|
+
* In that case, replication will pick up those rows afterward.
|
|
61
102
|
*
|
|
62
|
-
* Currently, this only supports
|
|
103
|
+
* Currently, this only supports tables with a single primary key column,
|
|
63
104
|
* of a select few types.
|
|
64
105
|
*/
|
|
65
106
|
export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
|
|
@@ -93,6 +134,7 @@ export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
|
|
|
93
134
|
}
|
|
94
135
|
|
|
95
136
|
private readonly key: ColumnDescriptor;
|
|
137
|
+
private query: StreamingQuery | null = null;
|
|
96
138
|
lastKey: string | bigint | null = null;
|
|
97
139
|
|
|
98
140
|
public constructor(
|
|
@@ -109,57 +151,52 @@ export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
|
|
|
109
151
|
}
|
|
110
152
|
}
|
|
111
153
|
|
|
112
|
-
public async
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
public getLastKeySerialized(): Uint8Array {
|
|
117
|
-
return bson.serialize({ [this.key.name]: this.lastKey });
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
public async *next(): AsyncIterableIterator<sql.IColumnMetadata | sql.IRecordSet<any>> {
|
|
121
|
-
const escapedKeyName = escapeIdentifier(this.key.name);
|
|
122
|
-
const metadataRequest = this.transaction.request();
|
|
123
|
-
metadataRequest.stream = true;
|
|
124
|
-
const metadataPromise = new Promise<sql.IColumnMetadata>((resolve, reject) => {
|
|
125
|
-
metadataRequest.on('recordset', resolve);
|
|
126
|
-
metadataRequest.on('error', reject);
|
|
127
|
-
});
|
|
128
|
-
metadataRequest.query(`SELECT TOP(0) * FROM ${this.qualifiedTableName}`);
|
|
129
|
-
|
|
130
|
-
const columnMetadata: sql.IColumnMetadata = await metadataPromise;
|
|
154
|
+
public async getColumnMetadata(): Promise<sql.IColumnMetadata> {
|
|
155
|
+
const columnMetadata = await queryColumnMetadata(this.transaction, this.qualifiedTableName);
|
|
131
156
|
|
|
132
157
|
const foundPrimaryKey = columnMetadata[this.key.name];
|
|
133
158
|
if (!foundPrimaryKey) {
|
|
134
159
|
throw new Error(
|
|
135
|
-
`Cannot find primary key column ${this.key.name} in results. Keys: ${Object.keys(columnMetadata
|
|
160
|
+
`Cannot find primary key column ${this.key.name} in results. Keys: ${Object.keys(columnMetadata).join(', ')}`
|
|
136
161
|
);
|
|
137
162
|
}
|
|
163
|
+
return columnMetadata;
|
|
164
|
+
}
|
|
138
165
|
|
|
139
|
-
|
|
166
|
+
public getLastKeySerialized(): Uint8Array {
|
|
167
|
+
return bson.serialize({ [this.key.name]: this.lastKey });
|
|
168
|
+
}
|
|
140
169
|
|
|
170
|
+
public async *nextBatch(): AsyncIterableIterator<Record<string, any>> {
|
|
171
|
+
const escapedKeyName = escapeIdentifier(this.key.name);
|
|
141
172
|
const request = this.transaction.request();
|
|
142
|
-
const stream = request.toReadableStream();
|
|
143
173
|
if (this.lastKey == null) {
|
|
144
|
-
|
|
174
|
+
this.query = new StreamingQuery(
|
|
175
|
+
request,
|
|
176
|
+
`SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} ORDER BY ${escapedKeyName}`
|
|
177
|
+
);
|
|
145
178
|
} else {
|
|
146
179
|
if (this.key.typeId == null) {
|
|
147
180
|
throw new Error(`typeId required for primary key ${this.key.name}`);
|
|
148
181
|
}
|
|
149
|
-
request
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
182
|
+
request.input('lastKey', this.lastKey);
|
|
183
|
+
this.query = new StreamingQuery(
|
|
184
|
+
request,
|
|
185
|
+
`SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} WHERE ${escapedKeyName} > @lastKey ORDER BY ${escapedKeyName}`
|
|
186
|
+
);
|
|
154
187
|
}
|
|
155
188
|
|
|
156
189
|
// MSSQL only streams one row at a time
|
|
157
|
-
for await (const row of
|
|
190
|
+
for await (const row of this.query.rows) {
|
|
158
191
|
this.lastKey = row[this.key.name];
|
|
159
192
|
yield row;
|
|
160
193
|
}
|
|
161
194
|
}
|
|
162
195
|
|
|
196
|
+
public async close(): Promise<void> {
|
|
197
|
+
await this.query?.cancel();
|
|
198
|
+
}
|
|
199
|
+
|
|
163
200
|
private deserializeKey(key: Uint8Array) {
|
|
164
201
|
const decoded = bson.deserialize(key, { useBigInt64: true });
|
|
165
202
|
const keys = Object.keys(decoded);
|
|
@@ -173,3 +210,11 @@ export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
|
|
|
173
210
|
return decoded[this.key.name];
|
|
174
211
|
}
|
|
175
212
|
}
|
|
213
|
+
|
|
214
|
+
async function queryColumnMetadata(
|
|
215
|
+
transaction: sql.Transaction,
|
|
216
|
+
qualifiedTableName: string
|
|
217
|
+
): Promise<sql.IColumnMetadata> {
|
|
218
|
+
const { recordset } = await transaction.request().query(`SELECT TOP(0) * FROM ${qualifiedTableName}`);
|
|
219
|
+
return recordset.columns;
|
|
220
|
+
}
|
package/src/utils/mssql.ts
CHANGED
|
@@ -251,28 +251,6 @@ export function toQualifiedTableName(schema: string, tableName: string): string
|
|
|
251
251
|
return `${escapeIdentifier(schema)}.${escapeIdentifier(tableName)}`;
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
export function isIColumnMetadata(obj: any): obj is sql.IColumnMetadata {
|
|
255
|
-
if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
|
|
256
|
-
return false;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
let propertiesMatched = true;
|
|
260
|
-
for (const value of Object.values(obj)) {
|
|
261
|
-
const property = value as any;
|
|
262
|
-
propertiesMatched =
|
|
263
|
-
typeof property.index === 'number' &&
|
|
264
|
-
typeof property.name === 'string' &&
|
|
265
|
-
(typeof property.length === 'number' || typeof property.length === 'undefined') &&
|
|
266
|
-
(typeof property.type === 'function' || typeof property.type === 'object') &&
|
|
267
|
-
typeof property.nullable === 'boolean' &&
|
|
268
|
-
typeof property.caseSensitive === 'boolean' &&
|
|
269
|
-
typeof property.identity === 'boolean' &&
|
|
270
|
-
typeof property.readOnly === 'boolean';
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
return propertiesMatched;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
254
|
export function addParameters(request: sql.Request, parameters: MSSQLParameter[]): sql.Request {
|
|
277
255
|
for (const param of parameters) {
|
|
278
256
|
if (param.type) {
|