@powersync/service-module-mongodb 0.21.1 → 0.21.2
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 +23 -0
- package/ci/test-connection.yaml +12 -0
- package/dist/api/MongoRouteAPIAdapter.js +12 -2
- package/dist/api/MongoRouteAPIAdapter.js.map +1 -1
- package/dist/api/infer-collection-schema.d.ts +5 -0
- package/dist/api/infer-collection-schema.js +24 -0
- package/dist/api/infer-collection-schema.js.map +1 -1
- package/dist/module/MongoModule.d.ts +0 -1
- package/dist/module/MongoModule.js +0 -1
- package/dist/module/MongoModule.js.map +1 -1
- package/dist/replication/MongoRelation.js +5 -2
- package/dist/replication/MongoRelation.js.map +1 -1
- package/dist/replication/SourceRowConverter.d.ts +1 -0
- package/dist/replication/SourceRowConverter.js +4 -2
- package/dist/replication/SourceRowConverter.js.map +1 -1
- package/dist/replication/bufferToSqlite.d.ts +3 -1
- package/dist/replication/bufferToSqlite.js +35 -23
- package/dist/replication/bufferToSqlite.js.map +1 -1
- package/package.json +9 -9
- package/src/api/MongoRouteAPIAdapter.ts +12 -2
- package/src/api/infer-collection-schema.ts +26 -0
- package/src/module/MongoModule.ts +0 -2
- package/src/replication/MongoRelation.ts +8 -1
- package/src/replication/SourceRowConverter.ts +4 -2
- package/src/replication/bufferToSqlite.ts +43 -23
- package/test/src/buffer_to_sqlite.test.ts +9 -0
- package/test/src/change_stream_utils.ts +4 -4
- package/test/src/schema.test.ts +62 -19
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bufferToSqlite.js","sourceRoot":"","sources":["../../src/replication/bufferToSqlite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bufferToSqlite.js","sourceRoot":"","sources":["../../src/replication/bufferToSqlite.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/service-module-mongodb",
|
|
3
3
|
"repository": "https://github.com/powersync-ja/powersync-service",
|
|
4
|
-
"version": "0.21.
|
|
4
|
+
"version": "0.21.2",
|
|
5
5
|
"license": "FSL-1.1-ALv2",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
"bson": "^6.10.4",
|
|
16
16
|
"ts-codec": "^1.3.0",
|
|
17
17
|
"uuid": "^14.0.0",
|
|
18
|
-
"@powersync/lib-service-mongodb": "0.6.
|
|
19
|
-
"@powersync/lib-services-framework": "0.10.
|
|
20
|
-
"@powersync/service-core": "1.
|
|
18
|
+
"@powersync/lib-service-mongodb": "0.6.33",
|
|
19
|
+
"@powersync/lib-services-framework": "0.10.3",
|
|
20
|
+
"@powersync/service-core": "1.27.0",
|
|
21
21
|
"@powersync/service-jsonbig": "0.17.13",
|
|
22
|
-
"@powersync/service-sync-rules": "0.
|
|
23
|
-
"@powersync/service-types": "0.
|
|
22
|
+
"@powersync/service-sync-rules": "0.43.0",
|
|
23
|
+
"@powersync/service-types": "0.19.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@powersync/service-core-tests": "0.18.
|
|
27
|
-
"@powersync/service-module-mongodb-storage": "0.
|
|
28
|
-
"@powersync/service-module-postgres-storage": "0.19.
|
|
26
|
+
"@powersync/service-core-tests": "0.18.3",
|
|
27
|
+
"@powersync/service-module-mongodb-storage": "0.23.0",
|
|
28
|
+
"@powersync/service-module-postgres-storage": "0.19.2"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"build": "tsc -b",
|
|
@@ -11,7 +11,7 @@ import { MongoManager } from '../replication/MongoManager.js';
|
|
|
11
11
|
import { CHECKPOINTS_COLLECTION, detectDocumentDb } from '../replication/replication-utils.js';
|
|
12
12
|
import * as types from '../types/types.js';
|
|
13
13
|
import { escapeRegExp } from '../utils.js';
|
|
14
|
-
import { inferCollectionSchema } from './infer-collection-schema.js';
|
|
14
|
+
import { inferCollectionSchema, isSchemaInferenceFailure } from './infer-collection-schema.js';
|
|
15
15
|
|
|
16
16
|
const SCHEMA_INFERENCE_CONCURRENCY = 4;
|
|
17
17
|
|
|
@@ -150,7 +150,7 @@ export class MongoRouteAPIAdapter implements api.RouteAPI {
|
|
|
150
150
|
};
|
|
151
151
|
let errors: service_types.ReplicationError[] = [];
|
|
152
152
|
if (collection.type == 'view') {
|
|
153
|
-
errors.push({ level: 'warning', message: `Collection ${schema}.${
|
|
153
|
+
errors.push({ level: 'warning', message: `Collection ${schema}.${collection.name} is a view` });
|
|
154
154
|
} else {
|
|
155
155
|
errors.push(...validatePostImages(schema, collection));
|
|
156
156
|
}
|
|
@@ -293,6 +293,16 @@ export class MongoRouteAPIAdapter implements api.RouteAPI {
|
|
|
293
293
|
// Ignore collections we're not authorized to query
|
|
294
294
|
continue;
|
|
295
295
|
}
|
|
296
|
+
if (isSchemaInferenceFailure(e)) {
|
|
297
|
+
// We know the collection is there, we just could not read its fields. Report it
|
|
298
|
+
// without columns rather than failing: one collection we cannot sample should not
|
|
299
|
+
// block validation and deployment for every sync config on the instance. Queries
|
|
300
|
+
// naming its columns warn about unknown columns; the result is indistinguishable
|
|
301
|
+
// from an empty collection, so a `SELECT *` query still validates cleanly.
|
|
302
|
+
logger.warn(`Could not infer the schema of ${db.name}.${collection.name}`, e);
|
|
303
|
+
tables[index] = { name: collection.name, columns: [] };
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
296
306
|
// Fail the whole request on unexpected errors: the response cannot indicate
|
|
297
307
|
// partial results, so omitting a collection would make an incomplete schema
|
|
298
308
|
// appear complete and could produce an incorrect generated client schema.
|
|
@@ -1,7 +1,33 @@
|
|
|
1
|
+
import * as lib_mongo from '@powersync/lib-service-mongodb';
|
|
1
2
|
import { mongo } from '@powersync/lib-service-mongodb';
|
|
2
3
|
import { ExpressionType } from '@powersync/service-sync-rules';
|
|
3
4
|
import { TableSchema } from '@powersync/service-types';
|
|
4
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Server errors that mean this one collection could not be inspected, rather than the
|
|
8
|
+
* connection being unusable.
|
|
9
|
+
*
|
|
10
|
+
* These come from the memory ceiling {@link inferCollectionSchema} imposes on itself by
|
|
11
|
+
* refusing to spill to disk, and are deterministic per collection. Timeouts are
|
|
12
|
+
* deliberately excluded: they usually indicate an overloaded source, where degrading
|
|
13
|
+
* would silently empty the schema of every collection at once.
|
|
14
|
+
*/
|
|
15
|
+
const SCHEMA_INFERENCE_FAILURE_CODES = new Set([
|
|
16
|
+
// ExceededMemoryLimit - a blocking stage ran out of memory with disk spill disabled.
|
|
17
|
+
146,
|
|
18
|
+
// QueryExceededMemoryLimitNoDiskUseAllowed - as above, reported by the sort $sample
|
|
19
|
+
// uses on collections too small for its random cursor.
|
|
20
|
+
292
|
|
21
|
+
]);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Whether the error means we could not determine this collection's fields, as opposed to
|
|
25
|
+
* something that makes the rest of the schema unreliable too.
|
|
26
|
+
*/
|
|
27
|
+
export function isSchemaInferenceFailure(e: unknown): boolean {
|
|
28
|
+
return lib_mongo.isMongoServerError(e) && SCHEMA_INFERENCE_FAILURE_CODES.has(e.code as number);
|
|
29
|
+
}
|
|
30
|
+
|
|
5
31
|
// Match the types exposed after BSON deserialization and conversion to sync rules values.
|
|
6
32
|
const BSON_TYPES: Record<string, { name: string; sqliteType: ExpressionType }> = {
|
|
7
33
|
int: { name: 'Integer', sqliteType: ExpressionType.INTEGER },
|
|
@@ -3,11 +3,14 @@ import { storage } from '@powersync/service-core';
|
|
|
3
3
|
import { JsonContainer } from '@powersync/service-jsonbig';
|
|
4
4
|
import {
|
|
5
5
|
CompatibilityContext,
|
|
6
|
+
CompatibilityOption,
|
|
6
7
|
CustomArray,
|
|
7
8
|
CustomObject,
|
|
8
9
|
CustomSqliteValue,
|
|
9
10
|
DateTimeSourceOptions,
|
|
10
11
|
DateTimeValue,
|
|
12
|
+
SQLITE_FALSE,
|
|
13
|
+
SQLITE_TRUE,
|
|
11
14
|
SqliteInputRow,
|
|
12
15
|
SqliteInputValue,
|
|
13
16
|
TimeValuePrecision
|
|
@@ -127,7 +130,11 @@ function filterJsonData(data: any, context: CompatibilityContext, depth = 0): an
|
|
|
127
130
|
return data;
|
|
128
131
|
}
|
|
129
132
|
} else if (typeof data == 'boolean') {
|
|
130
|
-
|
|
133
|
+
if (context.isEnabled(CompatibilityOption.fixedBooleanInJson)) {
|
|
134
|
+
return data;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return data ? SQLITE_TRUE : SQLITE_FALSE;
|
|
131
138
|
} else if (typeof data == 'bigint') {
|
|
132
139
|
return data;
|
|
133
140
|
} else if (data instanceof Date) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mongo } from '@powersync/lib-service-mongodb';
|
|
2
|
-
import { applyRowContext, CompatibilityContext, SqliteRow } from '@powersync/service-sync-rules';
|
|
2
|
+
import { applyRowContext, CompatibilityContext, CompatibilityOption, SqliteRow } from '@powersync/service-sync-rules';
|
|
3
3
|
import { bufferToSqlite, DateRenderMode, getDateRenderMode, parseDocumentId } from './bufferToSqlite.js';
|
|
4
4
|
import { constructAfterRecord } from './MongoRelation.js';
|
|
5
5
|
|
|
@@ -46,13 +46,15 @@ export class LegacySourceRowConverter implements SourceRowConverter {
|
|
|
46
46
|
|
|
47
47
|
export class DirectSourceRowConverter implements SourceRowConverter {
|
|
48
48
|
private readonly dateRenderMode: DateRenderMode;
|
|
49
|
+
private readonly fixedBooleansInJson: boolean;
|
|
49
50
|
|
|
50
51
|
constructor(compatibilityContext: CompatibilityContext) {
|
|
51
52
|
this.dateRenderMode = getDateRenderMode(compatibilityContext);
|
|
53
|
+
this.fixedBooleansInJson = compatibilityContext.isEnabled(CompatibilityOption.fixedBooleanInJson);
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
rawToSqliteRow(source: Buffer): { row: SqliteRow; replicaId: any } {
|
|
55
|
-
const row = bufferToSqlite(source, this.dateRenderMode);
|
|
57
|
+
const row = bufferToSqlite(source, this.dateRenderMode, this.fixedBooleansInJson);
|
|
56
58
|
const replicaId = parseDocumentId(source).id;
|
|
57
59
|
return { row, replicaId };
|
|
58
60
|
}
|
|
@@ -80,12 +80,16 @@ const SHARED_WRITER = new JsonBufferWriter();
|
|
|
80
80
|
*
|
|
81
81
|
* @param bytes the source BSON bytes
|
|
82
82
|
* @param dateRenderMode derive using getDateRenderMode(compatibilityContext)
|
|
83
|
+
* @param fixedBooleansInJson whether to serialize booleans in nested JSON as booleans, derived from compatibility
|
|
84
|
+
* context.
|
|
83
85
|
*
|
|
84
86
|
* @returns a SqliteRow
|
|
85
87
|
*/
|
|
86
|
-
export function bufferToSqlite(bytes: Buffer, dateRenderMode: DateRenderMode): SqliteRow {
|
|
88
|
+
export function bufferToSqlite(bytes: Buffer, dateRenderMode: DateRenderMode, fixedBooleansInJson: boolean): SqliteRow {
|
|
87
89
|
const row: SqliteRow = {};
|
|
88
90
|
const jsonWriter = SHARED_WRITER;
|
|
91
|
+
const options: SerializeToJsonOptions = { dateRenderMode, fixedBooleans: fixedBooleansInJson };
|
|
92
|
+
|
|
89
93
|
// BSON documents are length-prefixed and null-terminated. We parse directly
|
|
90
94
|
// from raw bytes, so structural validation happens here rather than in the
|
|
91
95
|
// upstream BSON decoder.
|
|
@@ -112,14 +116,14 @@ export function bufferToSqlite(bytes: Buffer, dateRenderMode: DateRenderMode): S
|
|
|
112
116
|
}
|
|
113
117
|
case BSON_TYPE_ARRAY: {
|
|
114
118
|
jsonWriter.reset();
|
|
115
|
-
const result = serializeNestedArrayToJson(bytes, offset, 0, jsonWriter,
|
|
119
|
+
const result = serializeNestedArrayToJson(bytes, offset, 0, jsonWriter, options);
|
|
116
120
|
row[key] = jsonWriter.toString();
|
|
117
121
|
offset = result.nextOffset;
|
|
118
122
|
break;
|
|
119
123
|
}
|
|
120
124
|
case BSON_TYPE_DOCUMENT: {
|
|
121
125
|
jsonWriter.reset();
|
|
122
|
-
const result = serializeNestedObjectToJson(bytes, offset, 0, jsonWriter,
|
|
126
|
+
const result = serializeNestedObjectToJson(bytes, offset, 0, jsonWriter, options);
|
|
123
127
|
row[key] = jsonWriter.toString();
|
|
124
128
|
offset = result.nextOffset;
|
|
125
129
|
break;
|
|
@@ -195,7 +199,7 @@ export function bufferToSqlite(bytes: Buffer, dateRenderMode: DateRenderMode): S
|
|
|
195
199
|
}
|
|
196
200
|
case BSON_TYPE_CODE_WITH_SCOPE: {
|
|
197
201
|
jsonWriter.reset();
|
|
198
|
-
const nextOffset = writeCodeWithScopeJson(bytes, offset, 0, jsonWriter,
|
|
202
|
+
const nextOffset = writeCodeWithScopeJson(bytes, offset, 0, jsonWriter, options);
|
|
199
203
|
row[key] = jsonWriter.toString();
|
|
200
204
|
offset = nextOffset;
|
|
201
205
|
break;
|
|
@@ -437,12 +441,17 @@ function skipBsonValue(bytes: Buffer, offset: number, type: number) {
|
|
|
437
441
|
}
|
|
438
442
|
}
|
|
439
443
|
|
|
444
|
+
interface SerializeToJsonOptions {
|
|
445
|
+
dateRenderMode: DateRenderMode;
|
|
446
|
+
fixedBooleans: boolean;
|
|
447
|
+
}
|
|
448
|
+
|
|
440
449
|
function serializeNestedObjectToJson(
|
|
441
450
|
bytes: Buffer,
|
|
442
451
|
offset: number,
|
|
443
452
|
depth: number,
|
|
444
453
|
writer: JsonBufferWriter,
|
|
445
|
-
|
|
454
|
+
options: SerializeToJsonOptions
|
|
446
455
|
): { nextOffset: number } {
|
|
447
456
|
if (depth > NESTED_DEPTH_LIMIT) {
|
|
448
457
|
throw new Error(`json nested object depth exceeds the limit of ${NESTED_DEPTH_LIMIT}`);
|
|
@@ -475,7 +484,7 @@ function serializeNestedObjectToJson(
|
|
|
475
484
|
type,
|
|
476
485
|
depth,
|
|
477
486
|
writer,
|
|
478
|
-
|
|
487
|
+
options
|
|
479
488
|
);
|
|
480
489
|
cursor = afterValue;
|
|
481
490
|
// Malformed BSON must fail fast instead of getting the parser stuck on the
|
|
@@ -499,7 +508,7 @@ function serializeNestedArrayToJson(
|
|
|
499
508
|
offset: number,
|
|
500
509
|
depth: number,
|
|
501
510
|
writer: JsonBufferWriter,
|
|
502
|
-
|
|
511
|
+
options: SerializeToJsonOptions
|
|
503
512
|
): { nextOffset: number } {
|
|
504
513
|
if (depth > NESTED_DEPTH_LIMIT) {
|
|
505
514
|
throw new Error(`json nested object depth exceeds the limit of ${NESTED_DEPTH_LIMIT}`);
|
|
@@ -527,7 +536,7 @@ function serializeNestedArrayToJson(
|
|
|
527
536
|
type,
|
|
528
537
|
depth,
|
|
529
538
|
writer,
|
|
530
|
-
|
|
539
|
+
options
|
|
531
540
|
);
|
|
532
541
|
cursor = afterValue;
|
|
533
542
|
assertAdvanced(previousCursor, cursor);
|
|
@@ -547,7 +556,7 @@ function serializeNestedElementValue(
|
|
|
547
556
|
type: number,
|
|
548
557
|
depth: number,
|
|
549
558
|
writer: JsonBufferWriter,
|
|
550
|
-
|
|
559
|
+
options: SerializeToJsonOptions
|
|
551
560
|
): { nextOffset: number; defined: boolean } {
|
|
552
561
|
switch (type) {
|
|
553
562
|
case BSON_TYPE_DOUBLE: // Double
|
|
@@ -555,9 +564,9 @@ function serializeNestedElementValue(
|
|
|
555
564
|
case BSON_TYPE_STRING: // String
|
|
556
565
|
return serializeNestedStringElement(bytes, offset, writer);
|
|
557
566
|
case BSON_TYPE_DOCUMENT: // Embedded document
|
|
558
|
-
return serializeNestedObjectElement(bytes, offset, depth, writer,
|
|
567
|
+
return serializeNestedObjectElement(bytes, offset, depth, writer, options);
|
|
559
568
|
case BSON_TYPE_ARRAY: // Array
|
|
560
|
-
return serializeNestedArrayElement(bytes, offset, depth, writer,
|
|
569
|
+
return serializeNestedArrayElement(bytes, offset, depth, writer, options);
|
|
561
570
|
case BSON_TYPE_BINARY: // Binary
|
|
562
571
|
return serializeNestedBinaryElement(bytes, offset, writer);
|
|
563
572
|
case BSON_TYPE_UNDEFINED: // Undefined
|
|
@@ -567,11 +576,22 @@ function serializeNestedElementValue(
|
|
|
567
576
|
writer.writeQuotedHexLower(bytes, offset, 12);
|
|
568
577
|
return { nextOffset: offset + 12, defined: true };
|
|
569
578
|
}
|
|
570
|
-
case BSON_TYPE_BOOLEAN:
|
|
571
|
-
|
|
579
|
+
case BSON_TYPE_BOOLEAN: {
|
|
580
|
+
// Boolean
|
|
581
|
+
const value = !!bytes[offset];
|
|
582
|
+
|
|
583
|
+
if (options.fixedBooleans) {
|
|
584
|
+
const str = value ? 'true' : 'false';
|
|
585
|
+
|
|
586
|
+
writer.writeAscii(str);
|
|
587
|
+
} else {
|
|
588
|
+
writer.writeByte(value ? BYTE_ONE : BYTE_ZERO);
|
|
589
|
+
}
|
|
590
|
+
|
|
572
591
|
return { nextOffset: offset + 1, defined: true };
|
|
592
|
+
}
|
|
573
593
|
case BSON_TYPE_UTC_DATETIME: // UTC datetime
|
|
574
|
-
return serializeNestedDateTimeElement(bytes, offset, writer, dateRenderMode);
|
|
594
|
+
return serializeNestedDateTimeElement(bytes, offset, writer, options.dateRenderMode);
|
|
575
595
|
case BSON_TYPE_NULL: // Null
|
|
576
596
|
case BSON_TYPE_MIN_KEY: // MinKey
|
|
577
597
|
case BSON_TYPE_MAX_KEY: // MaxKey
|
|
@@ -586,7 +606,7 @@ function serializeNestedElementValue(
|
|
|
586
606
|
case BSON_TYPE_SYMBOL: // Symbol
|
|
587
607
|
return serializeNestedSymbolElement(bytes, offset, writer);
|
|
588
608
|
case BSON_TYPE_CODE_WITH_SCOPE: // JavaScript code with scope
|
|
589
|
-
return serializeNestedCodeWithScopeElement(bytes, offset, depth, writer,
|
|
609
|
+
return serializeNestedCodeWithScopeElement(bytes, offset, depth, writer, options);
|
|
590
610
|
case BSON_TYPE_INT32: {
|
|
591
611
|
// Int32
|
|
592
612
|
writer.writeAscii(String(readInt32LE(bytes, offset)));
|
|
@@ -641,9 +661,9 @@ function serializeNestedObjectElement(
|
|
|
641
661
|
offset: number,
|
|
642
662
|
depth: number,
|
|
643
663
|
writer: JsonBufferWriter,
|
|
644
|
-
|
|
664
|
+
options: SerializeToJsonOptions
|
|
645
665
|
): { nextOffset: number; defined: boolean } {
|
|
646
|
-
const result = serializeNestedObjectToJson(bytes, offset, depth + 1, writer,
|
|
666
|
+
const result = serializeNestedObjectToJson(bytes, offset, depth + 1, writer, options);
|
|
647
667
|
return { nextOffset: result.nextOffset, defined: true };
|
|
648
668
|
}
|
|
649
669
|
|
|
@@ -652,9 +672,9 @@ function serializeNestedArrayElement(
|
|
|
652
672
|
offset: number,
|
|
653
673
|
depth: number,
|
|
654
674
|
writer: JsonBufferWriter,
|
|
655
|
-
|
|
675
|
+
options: SerializeToJsonOptions
|
|
656
676
|
): { nextOffset: number; defined: boolean } {
|
|
657
|
-
const result = serializeNestedArrayToJson(bytes, offset, depth + 1, writer,
|
|
677
|
+
const result = serializeNestedArrayToJson(bytes, offset, depth + 1, writer, options);
|
|
658
678
|
return { nextOffset: result.nextOffset, defined: true };
|
|
659
679
|
}
|
|
660
680
|
|
|
@@ -791,14 +811,14 @@ function writeCodeWithScopeJson(
|
|
|
791
811
|
offset: number,
|
|
792
812
|
depth: number,
|
|
793
813
|
writer: JsonBufferWriter,
|
|
794
|
-
|
|
814
|
+
options: SerializeToJsonOptions
|
|
795
815
|
) {
|
|
796
816
|
const totalLength = readInt32LE(bytes, offset);
|
|
797
817
|
const { value: code, nextOffset: afterCode } = readBsonString(bytes, offset + 4);
|
|
798
818
|
writer.writeAscii('{"code":');
|
|
799
819
|
writer.writeQuotedJsonString(code);
|
|
800
820
|
writer.writeAscii(',"scope":');
|
|
801
|
-
serializeNestedObjectToJson(bytes, afterCode, depth + 1, writer,
|
|
821
|
+
serializeNestedObjectToJson(bytes, afterCode, depth + 1, writer, options);
|
|
802
822
|
writer.writeByte(BYTE_RBRACE);
|
|
803
823
|
// code_w_scope carries its own total byte length, so we trust that wrapper
|
|
804
824
|
// rather than reconstructing the end position from the nested scope.
|
|
@@ -885,10 +905,10 @@ function serializeNestedCodeWithScopeElement(
|
|
|
885
905
|
offset: number,
|
|
886
906
|
depth: number,
|
|
887
907
|
writer: JsonBufferWriter,
|
|
888
|
-
|
|
908
|
+
options: SerializeToJsonOptions
|
|
889
909
|
): { nextOffset: number; defined: boolean } {
|
|
890
910
|
return {
|
|
891
|
-
nextOffset: writeCodeWithScopeJson(bytes, offset, depth, writer,
|
|
911
|
+
nextOffset: writeCodeWithScopeJson(bytes, offset, depth, writer, options),
|
|
892
912
|
defined: true
|
|
893
913
|
};
|
|
894
914
|
}
|
|
@@ -121,6 +121,15 @@ const testCases: ConverterCase[] = [
|
|
|
121
121
|
serializableCase('array', [1, 'two', false, null, { deep: 3 }], jsonTextPlacements('[1,"two",0,null,{"deep":3}]')),
|
|
122
122
|
serializableCase('objectId', objectId, jsonStringPlacements('66e834cc91d805df11fa0ecb')),
|
|
123
123
|
serializableCase('bool', true, placements(1n, '[1]', '{"nested":1}')),
|
|
124
|
+
{
|
|
125
|
+
name: 'bool (fixed json)',
|
|
126
|
+
buildBuffer: (placement) => serializeCaseDocument(`bool (fixed json):${placement}`, placement, false),
|
|
127
|
+
expected: placements(0n, '[false]', '{"nested":false}'),
|
|
128
|
+
context: new CompatibilityContext({
|
|
129
|
+
edition: CompatibilityEdition.COMPILED_STREAMS,
|
|
130
|
+
overrides: new Map([[CompatibilityOption.fixedBooleanInJson, true]])
|
|
131
|
+
})
|
|
132
|
+
} satisfies ConverterCase,
|
|
124
133
|
serializableCase('date', normalDate, jsonStringPlacements('2023-03-06 13:47:00.000Z')),
|
|
125
134
|
serializableCase('date:+010000', positiveExtendedDate, jsonStringPlacements('+010000-01-01 00:00:00.000Z')),
|
|
126
135
|
serializableCase('date:-000001', negativeExtendedDate, jsonStringPlacements('-000001-12-31 23:59:59.999Z')),
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
updateSyncRulesFromYaml,
|
|
19
19
|
utils
|
|
20
20
|
} from '@powersync/service-core';
|
|
21
|
-
import { bucketRequest, METRICS_HELPER, test_utils } from '@powersync/service-core-tests';
|
|
21
|
+
import { bucketRequest, getTestStorage, METRICS_HELPER, test_utils } from '@powersync/service-core-tests';
|
|
22
22
|
|
|
23
23
|
import { SentinelLSN } from '@module/common/SentinelLSN.js';
|
|
24
24
|
import { ChangeStream, ChangeStreamOptions } from '@module/replication/ChangeStream.js';
|
|
@@ -119,7 +119,7 @@ export class ChangeStreamTestContext {
|
|
|
119
119
|
updateSyncRulesFromYaml(content, { validate: true, storageVersion: this.storageVersion })
|
|
120
120
|
);
|
|
121
121
|
this.syncRulesContent = replicationStream.syncConfigContent[0];
|
|
122
|
-
this.storage = this.factory
|
|
122
|
+
this.storage = await getTestStorage(this.factory, replicationStream);
|
|
123
123
|
return this.storage!;
|
|
124
124
|
}
|
|
125
125
|
|
|
@@ -130,7 +130,7 @@ export class ChangeStreamTestContext {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
this.syncRulesContent = syncConfig.content;
|
|
133
|
-
this.storage = syncConfig.
|
|
133
|
+
this.storage = await getTestStorage(this.factory, syncConfig.replicationStream);
|
|
134
134
|
return this.storage!;
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -141,7 +141,7 @@ export class ChangeStreamTestContext {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
this.syncRulesContent = syncConfig.content;
|
|
144
|
-
this.storage = syncConfig.
|
|
144
|
+
this.storage = await getTestStorage(this.factory, syncConfig.replicationStream);
|
|
145
145
|
return this.storage!;
|
|
146
146
|
}
|
|
147
147
|
|
package/test/src/schema.test.ts
CHANGED
|
@@ -154,27 +154,70 @@ describe('collection schema inference', { timeout: testTimeout(20_000) }, () =>
|
|
|
154
154
|
expect(executionLimits).toEqual([30_000]);
|
|
155
155
|
});
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
157
|
+
// A collection we cannot sample should cost us that collection's fields, not the whole schema.
|
|
158
|
+
// Exercises the real server/driver error path without waiting for the limits to be reached.
|
|
159
|
+
describe.skipIf(DATABASE_TYPE == DatabaseType.DOCUMENTDB)('when a collection cannot be sampled', () => {
|
|
160
|
+
// 146 is ExceededMemoryLimit, 292 is QueryExceededMemoryLimitNoDiskUseAllowed, which is what
|
|
161
|
+
// a small collection of multi-megabyte documents produces when $sample has to sort them.
|
|
162
|
+
// The namespace filter below needs a server recent enough to honor it (CI runs 6.0+);
|
|
163
|
+
// older servers ignore it and fail an arbitrary collection's aggregation.
|
|
164
|
+
test.for([146, 292])('reports it without columns on error %i', async (errorCode, ctx) => {
|
|
165
|
+
await db.collection('readable').insertOne({ value: 'text' });
|
|
166
|
+
await db.collection('unreadable').insertOne({ value: 'text' });
|
|
167
|
+
await using adapter = new MongoRouteAPIAdapter({
|
|
168
|
+
type: 'mongodb',
|
|
169
|
+
...TEST_CONNECTION_OPTIONS,
|
|
170
|
+
database: db.databaseName
|
|
171
|
+
});
|
|
172
|
+
await using failCommand = await requireFailCommand(client, ctx);
|
|
173
|
+
await failCommand.configure({
|
|
174
|
+
mode: { times: 1 },
|
|
175
|
+
data: {
|
|
176
|
+
failCommands: ['aggregate'],
|
|
177
|
+
namespace: `${db.databaseName}.unreadable`,
|
|
178
|
+
errorCode
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
const schema = await adapter.getConnectionSchema();
|
|
183
|
+
const tables = schema.find((s) => s.name == db.databaseName)?.tables;
|
|
184
|
+
|
|
185
|
+
expect(tables).toEqual(
|
|
186
|
+
expect.arrayContaining([
|
|
187
|
+
{ name: 'unreadable', columns: [] },
|
|
188
|
+
expect.objectContaining({
|
|
189
|
+
name: 'readable',
|
|
190
|
+
columns: expect.arrayContaining([expect.objectContaining({ name: 'value' })])
|
|
191
|
+
})
|
|
192
|
+
])
|
|
193
|
+
);
|
|
171
194
|
});
|
|
172
195
|
|
|
173
|
-
//
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
196
|
+
// 2 is BadValue, standing in for any unexpected error. 50 is MaxTimeMSExpired: timeouts
|
|
197
|
+
// usually mean the source is overloaded rather than one problem collection, so they keep
|
|
198
|
+
// failing the request instead of silently degrading every collection.
|
|
199
|
+
// Neither is retryable, so the driver surfaces them without re-running the aggregation.
|
|
200
|
+
test.for([2, 50])('still fails the request on error %i', async (errorCode, ctx) => {
|
|
201
|
+
await db.collection('broken').insertOne({ value: 'text' });
|
|
202
|
+
await using adapter = new MongoRouteAPIAdapter({
|
|
203
|
+
type: 'mongodb',
|
|
204
|
+
...TEST_CONNECTION_OPTIONS,
|
|
205
|
+
database: db.databaseName
|
|
206
|
+
});
|
|
207
|
+
await using failCommand = await requireFailCommand(client, ctx);
|
|
208
|
+
await failCommand.configure({
|
|
209
|
+
mode: { times: 1 },
|
|
210
|
+
data: {
|
|
211
|
+
failCommands: ['aggregate'],
|
|
212
|
+
namespace: `${db.databaseName}.broken`,
|
|
213
|
+
errorCode
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
await expect(adapter.getConnectionSchema()).rejects.toMatchObject({
|
|
218
|
+
name: 'MongoServerError',
|
|
219
|
+
code: errorCode
|
|
220
|
+
});
|
|
178
221
|
});
|
|
179
222
|
});
|
|
180
223
|
});
|