@powersync/service-module-postgres-storage 0.0.0-dev-20260511080634 → 0.0.0-dev-20260601140105

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.
@@ -35,7 +35,7 @@ export declare class PostgresSyncRulesStorage extends framework.BaseObserver<sto
35
35
  */
36
36
  private get checksumCache();
37
37
  get writeCheckpointMode(): storage.WriteCheckpointMode;
38
- getParsedSyncRules(options: storage.ParseSyncRulesOptions): sync_rules.HydratedSyncRules;
38
+ getParsedSyncRules(options: storage.ParseSyncRulesOptions): sync_rules.HydratedSyncConfig;
39
39
  reportError(e: any): Promise<void>;
40
40
  compact(options?: storage.CompactOptions): Promise<void>;
41
41
  populatePersistentChecksumCache(_options: PopulateChecksumCacheOptions): Promise<PopulateChecksumCacheResults>;
@@ -43,13 +43,12 @@ export declare class PostgresSyncRulesStorage extends framework.BaseObserver<sto
43
43
  setWriteCheckpointMode(mode: storage.WriteCheckpointMode): void;
44
44
  createManagedWriteCheckpoint(checkpoint: storage.ManagedWriteCheckpointOptions): Promise<bigint>;
45
45
  getCheckpoint(): Promise<storage.ReplicationCheckpoint>;
46
- resolveTable(options: storage.ResolveTableOptions): Promise<storage.ResolveTableResult>;
47
46
  createWriter(options: storage.CreateWriterOptions): Promise<storage.BucketStorageBatch>;
48
47
  /**
49
48
  * @deprecated Use `createWriter()` with `await using` instead.
50
49
  */
51
50
  startBatch(options: storage.CreateWriterOptions, callback: (batch: storage.BucketStorageBatch) => Promise<void>): Promise<storage.FlushedResult | null>;
52
- getParameterSets(checkpoint: ReplicationCheckpoint, lookups: sync_rules.ScopedParameterLookup[], limit: number): Promise<sync_rules.SqliteJsonRow[]>;
51
+ getParameterSets(checkpoint: ReplicationCheckpoint, lookups: sync_rules.ScopedParameterLookup[], limit: number): Promise<sync_rules.ParameterLookupRows[]>;
53
52
  getBucketDataBatch(checkpoint: InternalOpId, dataBuckets: storage.BucketDataRequest[], options?: storage.BucketDataBatchOptions): AsyncIterable<storage.SyncBucketDataChunk>;
54
53
  getChecksums(checkpoint: utils.InternalOpId, buckets: storage.BucketChecksumRequest[]): Promise<utils.ChecksumMap>;
55
54
  clearChecksumCache(): void;
@@ -10,7 +10,7 @@ import { PostgresPersistedBatch } from './PostgresPersistedBatch.js';
10
10
  export interface PostgresBucketBatchOptions {
11
11
  logger: Logger;
12
12
  db: lib_postgres.DatabaseClient;
13
- sync_rules: sync_rules.HydratedSyncRules;
13
+ sync_rules: sync_rules.HydratedSyncConfig;
14
14
  group_id: number;
15
15
  slot_name: string;
16
16
  last_checkpoint_lsn: string | null;
@@ -23,6 +23,7 @@ export interface PostgresBucketBatchOptions {
23
23
  skip_existing_rows: boolean;
24
24
  batch_limits: RequiredOperationBatchLimits;
25
25
  markRecordUnavailable: BucketStorageMarkRecordUnavailable | undefined;
26
+ hooks: storage.StorageHooks | undefined;
26
27
  storageConfig: storage.StorageVersionConfig;
27
28
  }
28
29
  /**
@@ -46,15 +47,17 @@ export declare class PostgresBucketBatch extends BaseObserver<storage.BucketBatc
46
47
  private logger;
47
48
  last_flushed_op: InternalOpId | null;
48
49
  resumeFromLsn: string | null;
50
+ readonly skipExistingRows: boolean;
49
51
  protected db: lib_postgres.DatabaseClient;
50
52
  protected group_id: number;
51
53
  protected last_checkpoint_lsn: string | null;
52
54
  protected persisted_op: InternalOpId | null;
53
55
  protected write_checkpoint_batch: storage.CustomWriteCheckpointOptions[];
54
- protected readonly sync_rules: sync_rules.HydratedSyncRules;
56
+ protected readonly sync_rules: sync_rules.HydratedSyncConfig;
55
57
  protected batch: OperationBatch | null;
56
58
  private lastWaitingLogThrottled;
57
59
  private markRecordUnavailable;
60
+ private hooks;
58
61
  private needsActivation;
59
62
  private clearedError;
60
63
  private readonly storageConfig;
@@ -63,6 +66,9 @@ export declare class PostgresBucketBatch extends BaseObserver<storage.BucketBatc
63
66
  get lastCheckpointLsn(): string | null;
64
67
  [Symbol.asyncDispose](): Promise<void>;
65
68
  dispose(): Promise<void>;
69
+ resolveTables(options: storage.ResolveTablesOptions): Promise<storage.ResolveTablesResult>;
70
+ getSourceTableStatus(table: storage.SourceTable): Promise<storage.SourceTable | null>;
71
+ private sourceTableFromRow;
66
72
  save(record: storage.SaveOptions): Promise<storage.FlushedResult | null>;
67
73
  truncate(sourceTables: storage.SourceTable[]): Promise<storage.FlushedResult | null>;
68
74
  protected truncateSingle(sourceTable: storage.SourceTable): Promise<bigint | null>;
@@ -73,6 +79,9 @@ export declare class PostgresBucketBatch extends BaseObserver<storage.BucketBatc
73
79
  keepalive(lsn: string): Promise<CheckpointResult>;
74
80
  setResumeLsn(lsn: string): Promise<void>;
75
81
  markAllSnapshotDone(no_checkpoint_before_lsn: string): Promise<void>;
82
+ markSnapshotDone(no_checkpoint_before_lsn: string, options?: {
83
+ throwOnConflict?: boolean;
84
+ }): Promise<void>;
76
85
  markTableSnapshotRequired(table: storage.SourceTable): Promise<void>;
77
86
  markTableSnapshotDone(tables: storage.SourceTable[], no_checkpoint_before_lsn?: string): Promise<storage.SourceTable[]>;
78
87
  updateTableProgress(table: storage.SourceTable, progress: Partial<storage.TableSnapshotStatus>): Promise<storage.SourceTable>;
@@ -1,13 +1,13 @@
1
1
  import { BroadcastIterable, CHECKPOINT_INVALIDATE_ALL, internalToExternalOpId, LastValueSink, maxLsn, ParameterSetLimitExceededError, storage } from '@powersync/service-core';
2
2
  import { JSONBig } from '@powersync/service-jsonbig';
3
3
  import * as timers from 'timers/promises';
4
- import * as uuid from 'uuid';
5
- import { BIGINT_MAX } from '../types/codecs.js';
4
+ import { bigint, BIGINT_MAX } from '../types/codecs.js';
6
5
  import { models } from '../types/types.js';
7
6
  import { replicaIdToSubkey } from '../utils/bson.js';
8
7
  import { mapOpEntry } from '../utils/bucket-data.js';
9
8
  import * as framework from '@powersync/lib-services-framework';
10
9
  import { wrapWithAbort } from 'ix/asynciterable/operators/withabort.js';
10
+ import * as t from 'ts-codec';
11
11
  import { pick } from '../utils/ts-codec.js';
12
12
  import { PostgresBucketBatch } from './batch/PostgresBucketBatch.js';
13
13
  import { PostgresWriteCheckpointAPI } from './checkpoints/PostgresWriteCheckpointAPI.js';
@@ -69,7 +69,7 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
69
69
  * Parse sync config if the options are different or if there is no cached value.
70
70
  */
71
71
  if (!parsed || options.defaultSchema != cachedOptions?.defaultSchema) {
72
- this.parsedSyncRulesCache = { parsed: this.sync_rules.parsed(options).hydratedSyncRules(), options };
72
+ this.parsedSyncRulesCache = { parsed: this.sync_rules.parsed(options).hydratedSyncConfig(), options };
73
73
  }
74
74
  return this.parsedSyncRulesCache.parsed;
75
75
  }
@@ -126,159 +126,6 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
126
126
  .first();
127
127
  return new PostgresReplicationCheckpoint(this, checkpointRow?.last_checkpoint ?? 0n, checkpointRow?.last_checkpoint_lsn ?? null);
128
128
  }
129
- async resolveTable(options) {
130
- const { group_id, connection_id, connection_tag, entity_descriptor } = options;
131
- const { schema, name: table, objectId, replicaIdColumns } = entity_descriptor;
132
- const normalizedReplicaIdColumns = replicaIdColumns.map((column) => ({
133
- name: column.name,
134
- type: column.type,
135
- // The PGWire returns this as a BigInt. We want to store this as JSONB
136
- type_oid: typeof column.typeId !== 'undefined' ? Number(column.typeId) : column.typeId
137
- }));
138
- return this.db.transaction(async (db) => {
139
- let sourceTableRow;
140
- if (objectId != null) {
141
- sourceTableRow = await db.sql `
142
- SELECT
143
- *
144
- FROM
145
- source_tables
146
- WHERE
147
- group_id = ${{ type: 'int4', value: group_id }}
148
- AND connection_id = ${{ type: 'int4', value: connection_id }}
149
- AND relation_id = ${{ type: 'jsonb', value: { object_id: objectId } }}
150
- AND schema_name = ${{ type: 'varchar', value: schema }}
151
- AND table_name = ${{ type: 'varchar', value: table }}
152
- AND replica_id_columns = ${{ type: 'jsonb', value: normalizedReplicaIdColumns }}
153
- `
154
- .decoded(models.SourceTable)
155
- .first();
156
- }
157
- else {
158
- sourceTableRow = await db.sql `
159
- SELECT
160
- *
161
- FROM
162
- source_tables
163
- WHERE
164
- group_id = ${{ type: 'int4', value: group_id }}
165
- AND connection_id = ${{ type: 'int4', value: connection_id }}
166
- AND schema_name = ${{ type: 'varchar', value: schema }}
167
- AND table_name = ${{ type: 'varchar', value: table }}
168
- AND replica_id_columns = ${{ type: 'jsonb', value: normalizedReplicaIdColumns }}
169
- `
170
- .decoded(models.SourceTable)
171
- .first();
172
- }
173
- if (sourceTableRow == null) {
174
- const row = await db.sql `
175
- INSERT INTO
176
- source_tables (
177
- id,
178
- group_id,
179
- connection_id,
180
- relation_id,
181
- schema_name,
182
- table_name,
183
- replica_id_columns
184
- )
185
- VALUES
186
- (
187
- ${{ type: 'varchar', value: uuid.v4() }},
188
- ${{ type: 'int4', value: group_id }},
189
- ${{ type: 'int4', value: connection_id }},
190
- --- The objectId can be string | number | undefined, we store it as jsonb value
191
- ${{ type: 'jsonb', value: { object_id: objectId } }},
192
- ${{ type: 'varchar', value: schema }},
193
- ${{ type: 'varchar', value: table }},
194
- ${{ type: 'jsonb', value: normalizedReplicaIdColumns }}
195
- )
196
- RETURNING
197
- *
198
- `
199
- .decoded(models.SourceTable)
200
- .first();
201
- sourceTableRow = row;
202
- }
203
- const sourceTable = new storage.SourceTable({
204
- id: sourceTableRow.id,
205
- connectionTag: connection_tag,
206
- objectId: objectId,
207
- schema: schema,
208
- name: table,
209
- replicaIdColumns: replicaIdColumns,
210
- snapshotComplete: sourceTableRow.snapshot_done ?? true
211
- });
212
- if (!sourceTable.snapshotComplete) {
213
- sourceTable.snapshotStatus = {
214
- totalEstimatedCount: Number(sourceTableRow.snapshot_total_estimated_count ?? -1n),
215
- replicatedCount: Number(sourceTableRow.snapshot_replicated_count ?? 0n),
216
- lastKey: sourceTableRow.snapshot_last_key
217
- };
218
- }
219
- sourceTable.syncEvent = options.sync_rules.tableTriggersEvent(sourceTable);
220
- sourceTable.syncData = options.sync_rules.tableSyncsData(sourceTable);
221
- sourceTable.syncParameters = options.sync_rules.tableSyncsParameters(sourceTable);
222
- let truncatedTables = [];
223
- if (objectId != null) {
224
- // relation_id present - check for renamed tables
225
- truncatedTables = await db.sql `
226
- SELECT
227
- *
228
- FROM
229
- source_tables
230
- WHERE
231
- group_id = ${{ type: 'int4', value: group_id }}
232
- AND connection_id = ${{ type: 'int4', value: connection_id }}
233
- AND id != ${{ type: 'varchar', value: sourceTableRow.id }}
234
- AND (
235
- relation_id = ${{ type: 'jsonb', value: { object_id: objectId } }}
236
- OR (
237
- schema_name = ${{ type: 'varchar', value: schema }}
238
- AND table_name = ${{ type: 'varchar', value: table }}
239
- )
240
- )
241
- `
242
- .decoded(models.SourceTable)
243
- .rows();
244
- }
245
- else {
246
- // relation_id not present - only check for changed replica_id_columns
247
- truncatedTables = await db.sql `
248
- SELECT
249
- *
250
- FROM
251
- source_tables
252
- WHERE
253
- group_id = ${{ type: 'int4', value: group_id }}
254
- AND connection_id = ${{ type: 'int4', value: connection_id }}
255
- AND id != ${{ type: 'varchar', value: sourceTableRow.id }}
256
- AND (
257
- schema_name = ${{ type: 'varchar', value: schema }}
258
- AND table_name = ${{ type: 'varchar', value: table }}
259
- )
260
- `
261
- .decoded(models.SourceTable)
262
- .rows();
263
- }
264
- return {
265
- table: sourceTable,
266
- dropTables: truncatedTables.map((doc) => new storage.SourceTable({
267
- id: doc.id,
268
- connectionTag: connection_tag,
269
- objectId: doc.relation_id?.object_id ?? 0,
270
- schema: doc.schema_name,
271
- name: doc.table_name,
272
- replicaIdColumns: doc.replica_id_columns?.map((c) => ({
273
- name: c.name,
274
- typeOid: c.typeId,
275
- type: c.type
276
- })) ?? [],
277
- snapshotComplete: doc.snapshot_done ?? true
278
- }))
279
- };
280
- });
281
- }
282
129
  async createWriter(options) {
283
130
  const syncRules = await this.db.sql `
284
131
  SELECT
@@ -297,7 +144,7 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
297
144
  const writer = new PostgresBucketBatch({
298
145
  logger: options.logger ?? this.logger,
299
146
  db: this.db,
300
- sync_rules: this.sync_rules.parsed(options).hydratedSyncRules(),
147
+ sync_rules: this.sync_rules.parsed(options).hydratedSyncConfig(),
301
148
  group_id: this.group_id,
302
149
  slot_name: this.slot_name,
303
150
  last_checkpoint_lsn: checkpoint_lsn,
@@ -307,6 +154,7 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
307
154
  skip_existing_rows: options.skipExistingRows ?? false,
308
155
  batch_limits: this.options.batchLimits,
309
156
  markRecordUnavailable: options.markRecordUnavailable,
157
+ hooks: options.hooks,
310
158
  storageConfig: this.storageConfig
311
159
  });
312
160
  this.iterateListeners((cb) => cb.batchStarted?.(writer));
@@ -326,24 +174,17 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
326
174
  WITH
327
175
  rows AS (
328
176
  SELECT DISTINCT
329
- ON (lookup, source_table, source_key) lookup,
330
- source_table,
331
- source_key,
332
- id,
177
+ ON (lookup, source_table, source_key) requested.index - 1 AS index,
333
178
  bucket_parameters
334
179
  FROM
335
- bucket_parameters
336
- WHERE
337
- group_id = ${{ type: 'int4', value: this.group_id }}
338
- AND lookup = ANY (
339
- SELECT
340
- decode((FILTER ->> 0)::text, 'hex') -- Decode the hex string to bytea
341
- FROM
342
- jsonb_array_elements(${{
180
+ bucket_parameters,
181
+ jsonb_array_elements(${{
343
182
  type: 'jsonb',
344
183
  value: lookups.map((l) => storage.serializeLookupBuffer(l).toString('hex'))
345
- }}) AS FILTER
346
- )
184
+ }}) WITH ORDINALITY AS requested (value, index)
185
+ WHERE
186
+ group_id = ${{ type: 'int4', value: this.group_id }}
187
+ AND lookup = decode((requested.value ->> 0)::text, 'hex') -- Decode the hex string to bytea
347
188
  AND id <= ${{ type: 'int8', value: checkpoint.checkpoint }}
348
189
  ORDER BY
349
190
  lookup,
@@ -352,6 +193,7 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
352
193
  id DESC
353
194
  )
354
195
  SELECT
196
+ index,
355
197
  bucket_parameters
356
198
  FROM
357
199
  rows
@@ -360,20 +202,31 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
360
202
  LIMIT
361
203
  ${{ type: 'int4', value: limit + 1 }}
362
204
  `
363
- .decoded(pick(models.BucketParameters, ['bucket_parameters']))
205
+ .decoded(parameterSetsRow)
364
206
  .rows();
365
- const parameters = rows
366
- .map((row) => {
367
- return JSONBig.parse(row.bucket_parameters);
368
- })
369
- .flat();
370
- if (parameters.length > limit) {
207
+ let totalRows = 0;
208
+ const resultsByLookup = new Map();
209
+ for (const row of rows) {
210
+ const parameterRows = JSONBig.parse(row.bucket_parameters);
211
+ const lookup = lookups[Number(row.index)];
212
+ totalRows += parameterRows.length;
213
+ const existingResults = resultsByLookup.get(lookup);
214
+ if (existingResults != null) {
215
+ existingResults.push(...parameterRows);
216
+ }
217
+ else {
218
+ resultsByLookup.set(lookup, parameterRows);
219
+ }
220
+ }
221
+ if (totalRows > limit) {
371
222
  // Note that the LIMIT in the query allows more rows than parameters (because each row stores an array of
372
223
  // parameter results). That array is very small though, and it doesn't allow fewer rows (due to the != []), so
373
224
  // the SQL limit is good enough.
374
225
  throw new ParameterSetLimitExceededError(limit);
375
226
  }
376
- return parameters;
227
+ const results = [];
228
+ resultsByLookup.forEach((rows, lookup) => results.push({ lookup, rows }));
229
+ return results;
377
230
  }
378
231
  async *getBucketDataBatch(checkpoint, dataBuckets, options) {
379
232
  if (dataBuckets.length == 0) {
@@ -550,13 +403,14 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
550
403
  snapshot_done,
551
404
  snapshot_lsn,
552
405
  last_checkpoint_lsn,
553
- state
406
+ state,
407
+ keepalive_op
554
408
  FROM
555
409
  sync_rules
556
410
  WHERE
557
411
  id = ${{ type: 'int4', value: this.group_id }}
558
412
  `
559
- .decoded(pick(models.SyncRules, ['snapshot_done', 'last_checkpoint_lsn', 'state', 'snapshot_lsn']))
413
+ .decoded(pick(models.SyncRules, ['snapshot_done', 'last_checkpoint_lsn', 'state', 'snapshot_lsn', 'keepalive_op']))
560
414
  .first();
561
415
  if (syncRulesRow == null) {
562
416
  throw new Error('Cannot find replication stream status');
@@ -565,7 +419,8 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
565
419
  snapshot_done: syncRulesRow.snapshot_done,
566
420
  active: syncRulesRow.state == storage.SyncRuleState.ACTIVE,
567
421
  checkpoint_lsn: syncRulesRow.last_checkpoint_lsn ?? null,
568
- snapshot_lsn: syncRulesRow.snapshot_lsn ?? null
422
+ snapshot_lsn: syncRulesRow.snapshot_lsn ?? null,
423
+ keepalive_op: syncRulesRow.keepalive_op ?? null
569
424
  };
570
425
  }
571
426
  async clear(options) {
@@ -779,4 +634,8 @@ class PostgresReplicationCheckpoint {
779
634
  return this.storage.getParameterSets(this, lookups, limit);
780
635
  }
781
636
  }
637
+ const parameterSetsRow = t.object({
638
+ index: bigint,
639
+ bucket_parameters: t.string
640
+ });
782
641
  //# sourceMappingURL=PostgresSyncRulesStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresSyncRulesStorage.js","sourceRoot":"","sources":["../../src/storage/PostgresSyncRulesStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresSyncRulesStorage.js","sourceRoot":"","sources":["../../src/storage/PostgresSyncRulesStorage.ts"],"names":[],"mappings":"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"}