@powersync/service-core-tests 0.10.4 → 0.12.0

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 CHANGED
@@ -1,5 +1,62 @@
1
1
  # @powersync/service-core-tests
2
2
 
3
+ ## 0.12.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6d4a4d1: Create a persisted checksum cache when compacting buckets.
8
+
9
+ ### Patch Changes
10
+
11
+ - 060b829: Update license abbreviation to FSL-1.1-ALv2.
12
+ - Updated dependencies [6d4a4d1]
13
+ - Updated dependencies [b0b8ae9]
14
+ - Updated dependencies [d2be184]
15
+ - Updated dependencies [29a368e]
16
+ - Updated dependencies [c27e1c8]
17
+ - Updated dependencies [5284fb5]
18
+ - Updated dependencies [18435a4]
19
+ - Updated dependencies [5284fb5]
20
+ - Updated dependencies [f56acce]
21
+ - Updated dependencies [6fd0242]
22
+ - Updated dependencies [6315334]
23
+ - Updated dependencies [86807d0]
24
+ - Updated dependencies [060b829]
25
+ - Updated dependencies [d49bebe]
26
+ - @powersync/service-core@1.15.0
27
+ - @powersync/service-sync-rules@0.29.0
28
+ - @powersync/service-jsonbig@0.17.11
29
+
30
+ ## 0.11.0
31
+
32
+ ### Minor Changes
33
+
34
+ - b1add5a: [MongoDB Storage] Compact action now also compacts parameter lookup storage.
35
+ - d56eeb9: Delay switching over to new sync rules until we have a consistent checkpoint.
36
+ - d4db4e2: MySQL:
37
+ - Added schema change handling
38
+ - Except for some edge cases, the following schema changes are now handled automatically:
39
+ - Creation, renaming, dropping and truncation of tables.
40
+ - Creation and dropping of unique indexes and primary keys.
41
+ - Adding, modifying, dropping and renaming of table columns.
42
+ - If a schema change cannot handled automatically, a warning with details will be logged.
43
+ - Mismatches in table schema from the Zongji binlog listener are now handled more gracefully.
44
+ - Replication of wildcard tables is now supported.
45
+ - Improved logging for binlog event processing.
46
+
47
+ ### Patch Changes
48
+
49
+ - Updated dependencies [b1add5a]
50
+ - Updated dependencies [2378e36]
51
+ - Updated dependencies [4a34a51]
52
+ - Updated dependencies [4ebc3bf]
53
+ - Updated dependencies [2378e36]
54
+ - Updated dependencies [1aafdaf]
55
+ - Updated dependencies [d56eeb9]
56
+ - Updated dependencies [d4db4e2]
57
+ - @powersync/service-core@1.14.0
58
+ - @powersync/service-sync-rules@0.28.0
59
+
3
60
  ## 0.10.4
4
61
 
5
62
  ### Patch Changes
package/LICENSE CHANGED
@@ -1,12 +1,12 @@
1
- # Functional Source License, Version 1.1, Apache 2.0 Future License
1
+ # Functional Source License, Version 1.1, ALv2 Future License
2
2
 
3
3
  ## Abbreviation
4
4
 
5
- FSL-1.1-Apache-2.0
5
+ FSL-1.1-ALv2
6
6
 
7
7
  ## Notice
8
8
 
9
- Copyright 2023-2024 Journey Mobile, Inc.
9
+ Copyright 2023-2025 Journey Mobile, Inc.
10
10
 
11
11
  ## Terms and Conditions
12
12
 
@@ -1,4 +1,5 @@
1
1
  import { storage, utils } from '@powersync/service-core';
2
+ import { GetQuerierOptions, RequestParameters } from '@powersync/service-sync-rules';
2
3
  import * as bson from 'bson';
3
4
  export declare const ZERO_LSN = "0/0";
4
5
  export declare const PARSE_OPTIONS: storage.ParseSyncRulesOptions;
@@ -20,3 +21,4 @@ export declare function getBatchMeta(batch: utils.SyncBucketData[] | storage.Syn
20
21
  * Replica id in the old Postgres format, for backwards-compatible tests.
21
22
  */
22
23
  export declare function rid(id: string): bson.UUID;
24
+ export declare function querierOptions(globalParameters: RequestParameters): GetQuerierOptions;
@@ -32,7 +32,15 @@ export function testRules(content) {
32
32
  export function makeTestTable(name, replicaIdColumns) {
33
33
  const relId = utils.hashData('table', name, (replicaIdColumns ?? ['id']).join(','));
34
34
  const id = new bson.ObjectId('6544e3899293153fa7b38331');
35
- return new storage.SourceTable(id, storage.SourceTable.DEFAULT_TAG, relId, 'public', name, (replicaIdColumns ?? ['id']).map((column) => ({ name: column, type: 'VARCHAR', typeId: 25 })), true);
35
+ return new storage.SourceTable({
36
+ id: id,
37
+ connectionTag: storage.SourceTable.DEFAULT_TAG,
38
+ objectId: relId,
39
+ schema: 'public',
40
+ name: name,
41
+ replicaIdColumns: (replicaIdColumns ?? ['id']).map((column) => ({ name: column, type: 'VARCHAR', typeId: 25 })),
42
+ snapshotComplete: true
43
+ });
36
44
  }
37
45
  export function getBatchData(batch) {
38
46
  const first = getFirst(batch);
@@ -80,4 +88,12 @@ function getFirst(batch) {
80
88
  export function rid(id) {
81
89
  return utils.getUuidReplicaIdentityBson({ id: id }, [{ name: 'id', type: 'VARCHAR', typeId: 25 }]);
82
90
  }
91
+ export function querierOptions(globalParameters) {
92
+ return {
93
+ globalParameters,
94
+ hasDefaultStreams: true,
95
+ streams: {},
96
+ bucketIdTransformer: SqlSyncRules.versionedBucketIdTransformer('1')
97
+ };
98
+ }
83
99
  //# sourceMappingURL=general-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general-utils.js","sourceRoot":"","sources":["../../src/test-utils/general-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general-utils.js","sourceRoot":"","sources":["../../src/test-utils/general-utils.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,2 @@
1
1
  import { storage } from '@powersync/service-core';
2
- /**
3
- * @example
4
- * ```TypeScript
5
- * // Test with the default options - large batch sizes
6
- * describe('compacting buckets - default options', () => registerCompactTests(() => new MongoStorageFactory(), {}));
7
- *
8
- * // Also test with the miniumum batch sizes, forcing usage of multiple batches internally
9
- * describe('compacting buckets - batched', () =>
10
- * compactTests(() => new MongoStorageFactory(), { clearBatchLimit: 2, moveBatchLimit: 1, moveBatchQueryLimit: 1 }));
11
- * ```
12
- */
13
2
  export declare function registerCompactTests(generateStorageFactory: storage.TestStorageFactory): void;
@@ -54,28 +54,19 @@ import { storage } from '@powersync/service-core';
54
54
  import { expect, test } from 'vitest';
55
55
  import * as test_utils from '../test-utils/test-utils-index.js';
56
56
  const TEST_TABLE = test_utils.makeTestTable('test', ['id']);
57
- /**
58
- * @example
59
- * ```TypeScript
60
- * // Test with the default options - large batch sizes
61
- * describe('compacting buckets - default options', () => registerCompactTests(() => new MongoStorageFactory(), {}));
62
- *
63
- * // Also test with the miniumum batch sizes, forcing usage of multiple batches internally
64
- * describe('compacting buckets - batched', () =>
65
- * compactTests(() => new MongoStorageFactory(), { clearBatchLimit: 2, moveBatchLimit: 1, moveBatchQueryLimit: 1 }));
66
- * ```
67
- */
68
57
  export function registerCompactTests(generateStorageFactory) {
69
58
  test('compacting (1)', async () => {
70
59
  const env_1 = { stack: [], error: void 0, hasError: false };
71
60
  try {
72
- const sync_rules = test_utils.testRules(`
61
+ const factory = __addDisposableResource(env_1, await generateStorageFactory(), true);
62
+ const syncRules = await factory.updateSyncRules({
63
+ content: `
73
64
  bucket_definitions:
74
65
  global:
75
66
  data: [select * from test]
76
- `);
77
- const factory = __addDisposableResource(env_1, await generateStorageFactory(), true);
78
- const bucketStorage = factory.getInstance(sync_rules);
67
+ `
68
+ });
69
+ const bucketStorage = factory.getInstance(syncRules);
79
70
  const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
80
71
  await batch.save({
81
72
  sourceTable: TEST_TABLE,
@@ -101,6 +92,7 @@ bucket_definitions:
101
92
  },
102
93
  afterReplicaId: test_utils.rid('t2')
103
94
  });
95
+ await batch.commit('1/1');
104
96
  });
105
97
  const checkpoint = result.flushed_op;
106
98
  const batchBefore = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', 0n]])));
@@ -126,6 +118,7 @@ bucket_definitions:
126
118
  op_id: '3'
127
119
  }
128
120
  ]);
121
+ expect(batchBefore.targetOp).toEqual(null);
129
122
  await bucketStorage.compact({
130
123
  clearBatchLimit: 2,
131
124
  moveBatchLimit: 1,
@@ -134,6 +127,8 @@ bucket_definitions:
134
127
  const batchAfter = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', 0n]])));
135
128
  const dataAfter = batchAfter.chunkData.data;
136
129
  const checksumAfter = await bucketStorage.getChecksums(checkpoint, ['global[]']);
130
+ bucketStorage.clearChecksumCache();
131
+ const checksumAfter2 = await bucketStorage.getChecksums(checkpoint, ['global[]']);
137
132
  expect(batchAfter.targetOp).toEqual(3n);
138
133
  expect(dataAfter).toMatchObject([
139
134
  {
@@ -154,7 +149,8 @@ bucket_definitions:
154
149
  op_id: '3'
155
150
  }
156
151
  ]);
157
- expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
152
+ expect(checksumAfter.get('global[]')).toEqual(checksumBefore.get('global[]'));
153
+ expect(checksumAfter2.get('global[]')).toEqual(checksumBefore.get('global[]'));
158
154
  test_utils.validateCompactedBucket(dataBefore, dataAfter);
159
155
  }
160
156
  catch (e_1) {
@@ -170,13 +166,15 @@ bucket_definitions:
170
166
  test('compacting (2)', async () => {
171
167
  const env_2 = { stack: [], error: void 0, hasError: false };
172
168
  try {
173
- const sync_rules = test_utils.testRules(`
169
+ const factory = __addDisposableResource(env_2, await generateStorageFactory(), true);
170
+ const syncRules = await factory.updateSyncRules({
171
+ content: `
174
172
  bucket_definitions:
175
173
  global:
176
174
  data: [select * from test]
177
- `);
178
- const factory = __addDisposableResource(env_2, await generateStorageFactory(), true);
179
- const bucketStorage = factory.getInstance(sync_rules);
175
+ `
176
+ });
177
+ const bucketStorage = factory.getInstance(syncRules);
180
178
  const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
181
179
  await batch.save({
182
180
  sourceTable: TEST_TABLE,
@@ -210,6 +208,7 @@ bucket_definitions:
210
208
  },
211
209
  afterReplicaId: test_utils.rid('t2')
212
210
  });
211
+ await batch.commit('1/1');
213
212
  });
214
213
  const checkpoint = result.flushed_op;
215
214
  const batchBefore = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', 0n]])));
@@ -248,6 +247,7 @@ bucket_definitions:
248
247
  });
249
248
  const batchAfter = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', 0n]])));
250
249
  const dataAfter = batchAfter.chunkData.data;
250
+ bucketStorage.clearChecksumCache();
251
251
  const checksumAfter = await bucketStorage.getChecksums(checkpoint, ['global[]']);
252
252
  expect(batchAfter.targetOp).toEqual(4n);
253
253
  expect(dataAfter).toMatchObject([
@@ -263,7 +263,10 @@ bucket_definitions:
263
263
  op_id: '4'
264
264
  }
265
265
  ]);
266
- expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
266
+ expect(checksumAfter.get('global[]')).toEqual({
267
+ ...checksumBefore.get('global[]'),
268
+ count: 2
269
+ });
267
270
  test_utils.validateCompactedBucket(dataBefore, dataAfter);
268
271
  }
269
272
  catch (e_2) {
@@ -279,13 +282,15 @@ bucket_definitions:
279
282
  test('compacting (3)', async () => {
280
283
  const env_3 = { stack: [], error: void 0, hasError: false };
281
284
  try {
282
- const sync_rules = test_utils.testRules(`
285
+ const factory = __addDisposableResource(env_3, await generateStorageFactory(), true);
286
+ const syncRules = await factory.updateSyncRules({
287
+ content: `
283
288
  bucket_definitions:
284
289
  global:
285
290
  data: [select * from test]
286
- `);
287
- const factory = __addDisposableResource(env_3, await generateStorageFactory(), true);
288
- const bucketStorage = factory.getInstance(sync_rules);
291
+ `
292
+ });
293
+ const bucketStorage = factory.getInstance(syncRules);
289
294
  const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
290
295
  await batch.save({
291
296
  sourceTable: TEST_TABLE,
@@ -311,6 +316,7 @@ bucket_definitions:
311
316
  },
312
317
  beforeReplicaId: 't1'
313
318
  });
319
+ await batch.commit('1/1');
314
320
  });
315
321
  const checkpoint1 = result.flushed_op;
316
322
  const checksumBefore = await bucketStorage.getChecksums(checkpoint1, ['global[]']);
@@ -323,6 +329,7 @@ bucket_definitions:
323
329
  },
324
330
  beforeReplicaId: 't2'
325
331
  });
332
+ await batch.commit('2/1');
326
333
  });
327
334
  const checkpoint2 = result2.flushed_op;
328
335
  await bucketStorage.compact({
@@ -332,6 +339,7 @@ bucket_definitions:
332
339
  });
333
340
  const batchAfter = await test_utils.oneFromAsync(bucketStorage.getBucketDataBatch(checkpoint2, new Map([['global[]', 0n]])));
334
341
  const dataAfter = batchAfter.chunkData.data;
342
+ await bucketStorage.clearChecksumCache();
335
343
  const checksumAfter = await bucketStorage.getChecksums(checkpoint2, ['global[]']);
336
344
  expect(batchAfter.targetOp).toEqual(4n);
337
345
  expect(dataAfter).toMatchObject([
@@ -360,16 +368,18 @@ bucket_definitions:
360
368
  test('compacting (4)', async () => {
361
369
  const env_4 = { stack: [], error: void 0, hasError: false };
362
370
  try {
363
- const sync_rules = test_utils.testRules(/* yaml */ ` bucket_definitions:
364
- grouped:
365
- # The parameter query here is not important
366
- # We specifically don't want to create bucket_parameter records here
367
- # since the op_ids for bucket_data could vary between storage implementations.
368
- parameters: select 'b' as b
369
- data:
370
- - select * from test where b = bucket.b`);
371
371
  const factory = __addDisposableResource(env_4, await generateStorageFactory(), true);
372
- const bucketStorage = factory.getInstance(sync_rules);
372
+ const syncRules = await factory.updateSyncRules({
373
+ /* yaml */ content: ` bucket_definitions:
374
+ grouped:
375
+ # The parameter query here is not important
376
+ # We specifically don't want to create bucket_parameter records here
377
+ # since the op_ids for bucket_data could vary between storage implementations.
378
+ parameters: select 'b' as b
379
+ data:
380
+ - select * from test where b = bucket.b`
381
+ });
382
+ const bucketStorage = factory.getInstance(syncRules);
373
383
  const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
374
384
  /**
375
385
  * Repeatedly create operations which fall into different buckets.
@@ -429,6 +439,7 @@ bucket_definitions:
429
439
  },
430
440
  afterReplicaId: test_utils.rid('t2')
431
441
  });
442
+ await batch.commit('1/1');
432
443
  }
433
444
  });
434
445
  const checkpoint = result.flushed_op;
@@ -476,5 +487,79 @@ bucket_definitions:
476
487
  await result_4;
477
488
  }
478
489
  });
490
+ test('partial checksums after compacting', async () => {
491
+ const env_5 = { stack: [], error: void 0, hasError: false };
492
+ try {
493
+ const factory = __addDisposableResource(env_5, await generateStorageFactory(), true);
494
+ const syncRules = await factory.updateSyncRules({
495
+ content: `
496
+ bucket_definitions:
497
+ global:
498
+ data: [select * from test]
499
+ `
500
+ });
501
+ const bucketStorage = factory.getInstance(syncRules);
502
+ const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
503
+ await batch.save({
504
+ sourceTable: TEST_TABLE,
505
+ tag: storage.SaveOperationTag.INSERT,
506
+ after: {
507
+ id: 't1'
508
+ },
509
+ afterReplicaId: 't1'
510
+ });
511
+ await batch.save({
512
+ sourceTable: TEST_TABLE,
513
+ tag: storage.SaveOperationTag.INSERT,
514
+ after: {
515
+ id: 't2'
516
+ },
517
+ afterReplicaId: 't2'
518
+ });
519
+ await batch.save({
520
+ sourceTable: TEST_TABLE,
521
+ tag: storage.SaveOperationTag.DELETE,
522
+ before: {
523
+ id: 't1'
524
+ },
525
+ beforeReplicaId: 't1'
526
+ });
527
+ await batch.commit('1/1');
528
+ });
529
+ await bucketStorage.compact({
530
+ clearBatchLimit: 2,
531
+ moveBatchLimit: 1,
532
+ moveBatchQueryLimit: 1
533
+ });
534
+ const result2 = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
535
+ await batch.save({
536
+ sourceTable: TEST_TABLE,
537
+ tag: storage.SaveOperationTag.DELETE,
538
+ before: {
539
+ id: 't2'
540
+ },
541
+ beforeReplicaId: 't2'
542
+ });
543
+ await batch.commit('2/1');
544
+ });
545
+ const checkpoint2 = result2.flushed_op;
546
+ await bucketStorage.clearChecksumCache();
547
+ const checksumAfter = await bucketStorage.getChecksums(checkpoint2, ['global[]']);
548
+ expect(checksumAfter.get('global[]')).toEqual({
549
+ bucket: 'global[]',
550
+ count: 4,
551
+ checksum: 1874612650
552
+ });
553
+ }
554
+ catch (e_5) {
555
+ env_5.error = e_5;
556
+ env_5.hasError = true;
557
+ }
558
+ finally {
559
+ const result_5 = __disposeResources(env_5);
560
+ if (result_5)
561
+ await result_5;
562
+ }
563
+ });
479
564
  }
480
565
  //# sourceMappingURL=register-compacting-tests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-compacting-tests.js","sourceRoot":"","sources":["../../src/tests/register-compacting-tests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-compacting-tests.js","sourceRoot":"","sources":["../../src/tests/register-compacting-tests.ts"],"names":[],"mappings":"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"}