@rocicorp/zero 0.11.2025011802 → 0.11.2025012200

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.
Files changed (104) hide show
  1. package/out/{chunk-3JROCHFI.js → chunk-5OVHF6ZM.js} +250 -235
  2. package/out/chunk-5OVHF6ZM.js.map +7 -0
  3. package/out/datadog/src/datadog-log-sink.d.ts.map +1 -1
  4. package/out/react.js +36 -10
  5. package/out/react.js.map +2 -2
  6. package/out/replicache/src/replicache-impl.d.ts.map +1 -1
  7. package/out/replicache/src/sync/pull.d.ts.map +1 -1
  8. package/out/shared/src/custom-key-set.d.ts +25 -0
  9. package/out/shared/src/custom-key-set.d.ts.map +1 -0
  10. package/out/shared/src/custom-key-set.js +58 -0
  11. package/out/shared/src/custom-key-set.js.map +1 -0
  12. package/out/solid.js +1 -1
  13. package/out/zero/src/zero-cache-dev.d.ts.map +1 -1
  14. package/out/zero/src/zero-cache-dev.js +10 -0
  15. package/out/zero/src/zero-cache-dev.js.map +1 -1
  16. package/out/zero-cache/src/db/create.js +1 -1
  17. package/out/zero-cache/src/db/create.js.map +1 -1
  18. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  19. package/out/zero-cache/src/db/lite-tables.js +8 -10
  20. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  21. package/out/zero-cache/src/db/pg-to-lite.d.ts +2 -1
  22. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  23. package/out/zero-cache/src/db/pg-to-lite.js +6 -8
  24. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  25. package/out/zero-cache/src/db/specs.d.ts +2 -1
  26. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  27. package/out/zero-cache/src/db/specs.js.map +1 -1
  28. package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
  29. package/out/zero-cache/src/server/life-cycle.js +2 -0
  30. package/out/zero-cache/src/server/life-cycle.js.map +1 -1
  31. package/out/zero-cache/src/server/logging.js +1 -0
  32. package/out/zero-cache/src/server/logging.js.map +1 -1
  33. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  34. package/out/zero-cache/src/server/main.js +4 -2
  35. package/out/zero-cache/src/server/main.js.map +1 -1
  36. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  37. package/out/zero-cache/src/services/change-source/pg/change-source.js +21 -4
  38. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  39. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +4 -0
  40. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
  41. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +16 -5
  42. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  43. package/out/zero-cache/src/services/change-source/pg/sync-schema.js +3 -3
  44. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  45. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +16 -1
  46. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  47. package/out/zero-cache/src/services/view-syncer/cvr-store.js +73 -26
  48. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  49. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +2 -2
  50. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  51. package/out/zero-cache/src/services/view-syncer/cvr.js +24 -4
  52. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  53. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +32 -0
  54. package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +1 -0
  55. package/out/zero-cache/src/services/view-syncer/key-columns.js +73 -0
  56. package/out/zero-cache/src/services/view-syncer/key-columns.js.map +1 -0
  57. package/out/zero-cache/src/types/lite.d.ts +27 -8
  58. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  59. package/out/zero-cache/src/types/lite.js +24 -12
  60. package/out/zero-cache/src/types/lite.js.map +1 -1
  61. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  62. package/out/zero-cache/src/types/processes.js +0 -4
  63. package/out/zero-cache/src/types/processes.js.map +1 -1
  64. package/out/zero-client/src/client/server-option.d.ts.map +1 -1
  65. package/out/zero-client/src/mod.d.ts +6 -3
  66. package/out/zero-client/src/mod.d.ts.map +1 -1
  67. package/out/zero-protocol/src/ast.d.ts +5 -7
  68. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  69. package/out/zero-protocol/src/ast.js.map +1 -1
  70. package/out/zero-react/src/use-query.d.ts +60 -3
  71. package/out/zero-react/src/use-query.d.ts.map +1 -1
  72. package/out/zero-schema/src/builder/schema-builder.d.ts +10 -3
  73. package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
  74. package/out/zero-schema/src/builder/schema-builder.js +11 -5
  75. package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
  76. package/out/zero-schema/src/permissions.d.ts +4 -5
  77. package/out/zero-schema/src/permissions.d.ts.map +1 -1
  78. package/out/zero.js +1 -1
  79. package/out/zql/src/builder/builder.d.ts +1 -1
  80. package/out/zql/src/builder/builder.d.ts.map +1 -1
  81. package/out/zql/src/builder/builder.js +18 -25
  82. package/out/zql/src/builder/builder.js.map +1 -1
  83. package/out/zql/src/ivm/filter-push.d.ts +5 -0
  84. package/out/zql/src/ivm/filter-push.d.ts.map +1 -0
  85. package/out/zql/src/ivm/filter-push.js +27 -0
  86. package/out/zql/src/ivm/filter-push.js.map +1 -0
  87. package/out/zql/src/ivm/filter.d.ts +1 -7
  88. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  89. package/out/zql/src/ivm/filter.js +4 -24
  90. package/out/zql/src/ivm/filter.js.map +1 -1
  91. package/out/zql/src/ivm/memory-source.d.ts +1 -1
  92. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  93. package/out/zql/src/ivm/memory-source.js +6 -5
  94. package/out/zql/src/ivm/memory-source.js.map +1 -1
  95. package/out/zql/src/ivm/source.d.ts +3 -3
  96. package/out/zql/src/ivm/source.d.ts.map +1 -1
  97. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  98. package/out/zql/src/query/query-impl.js.map +1 -1
  99. package/out/zqlite/src/table-source.d.ts +4 -4
  100. package/out/zqlite/src/table-source.d.ts.map +1 -1
  101. package/out/zqlite/src/table-source.js +18 -13
  102. package/out/zqlite/src/table-source.js.map +1 -1
  103. package/package.json +2 -2
  104. package/out/chunk-3JROCHFI.js.map +0 -7
@@ -4,6 +4,7 @@ import { startAsyncSpan } from '../../../../otel/src/span.js';
4
4
  import { version } from '../../../../otel/src/version.js';
5
5
  import { assert } from '../../../../shared/src/asserts.js';
6
6
  import { CustomKeyMap } from '../../../../shared/src/custom-key-map.js';
7
+ import { CustomKeySet } from '../../../../shared/src/custom-key-set.js';
7
8
  import { deepEqual, } from '../../../../shared/src/json.js';
8
9
  import { must } from '../../../../shared/src/must.js';
9
10
  import { promiseVoid } from '../../../../shared/src/resolved-promises.js';
@@ -131,15 +132,15 @@ class RowRecordCache {
131
132
  */
132
133
  async apply(rowRecords, rowsVersion, flushed) {
133
134
  const cache = await this.#ensureLoaded();
134
- for (const row of rowRecords) {
135
- if (row.refCounts === null) {
136
- cache.delete(row.id);
135
+ for (const [id, row] of rowRecords.entries()) {
136
+ if (row === null || row.refCounts === null) {
137
+ cache.delete(id);
137
138
  }
138
139
  else {
139
- cache.set(row.id, row);
140
+ cache.set(id, row);
140
141
  }
141
142
  if (!flushed) {
142
- this.#pending.set(row.id, row);
143
+ this.#pending.set(id, row);
143
144
  }
144
145
  }
145
146
  this.#pendingRowsVersion = rowsVersion;
@@ -159,7 +160,7 @@ class RowRecordCache {
159
160
  // #pendingRowsVersion is consistent with the #pending rows.
160
161
  const rows = this.#pending.size;
161
162
  const rowsVersion = must(this.#pendingRowsVersion);
162
- this.executeRowUpdates(tx, rowsVersion, [...this.#pending.values()], 'force');
163
+ this.executeRowUpdates(tx, rowsVersion, this.#pending, 'force');
163
164
  this.#pending.clear();
164
165
  return { rows, rowsVersion };
165
166
  });
@@ -237,15 +238,14 @@ class RowRecordCache {
237
238
  const totalMs = Date.now() - startMs;
238
239
  lc.debug?.(`finished row catchup (flush: ${flushMs} ms, total: ${totalMs} ms)`);
239
240
  }
240
- executeRowUpdates(tx, version, rowRecordsToFlush, mode) {
241
+ executeRowUpdates(tx, version, rowUpdates, mode) {
241
242
  if (mode === 'allow-defer' &&
242
243
  // defer if pending rows are being flushed
243
244
  (this.#flushing !== null ||
244
245
  // or if the new batch is above the limit.
245
- rowRecordsToFlush.length > this.#deferredRowFlushThreshold)) {
246
+ rowUpdates.size > this.#deferredRowFlushThreshold)) {
246
247
  return [];
247
248
  }
248
- const rowRecordRows = rowRecordsToFlush.map(r => rowRecordToRowsRow(this.#cvrID, r));
249
249
  const rowsVersion = {
250
250
  clientGroupID: this.#cvrID,
251
251
  version: versionString(version),
@@ -255,6 +255,21 @@ class RowRecordCache {
255
255
  ON CONFLICT ("clientGroupID")
256
256
  DO UPDATE SET ${tx(rowsVersion)}`.execute(),
257
257
  ];
258
+ const rowRecordRows = [];
259
+ for (const [id, row] of rowUpdates.entries()) {
260
+ if (row === null) {
261
+ pending.push(tx `
262
+ DELETE FROM cvr.rows
263
+ WHERE "clientGroupID" = ${this.#cvrID}
264
+ AND "schema" = ${id.schema}
265
+ AND "table" = ${id.table}
266
+ AND "rowKey" = ${id.rowKey}
267
+ `.execute());
268
+ }
269
+ else {
270
+ rowRecordRows.push(rowRecordToRowsRow(this.#cvrID, row));
271
+ }
272
+ }
258
273
  if (rowRecordRows.length) {
259
274
  pending.push(tx `
260
275
  INSERT INTO cvr.rows(
@@ -274,7 +289,7 @@ class RowRecordCache {
274
289
  "patchVersion" = excluded."patchVersion",
275
290
  "refCounts" = excluded."refCounts"
276
291
  `.execute());
277
- this.#lc.debug?.(`flushing ${rowRecordRows.length} rows`);
292
+ this.#lc.debug?.(`flushing ${rowUpdates.size} rows (${rowRecordRows.length} inserts, ${rowUpdates.size - rowRecordRows.length} deletes)`);
278
293
  }
279
294
  return pending;
280
295
  }
@@ -313,7 +328,8 @@ export class CVRStore {
313
328
  #id;
314
329
  #db;
315
330
  #writes = new Set();
316
- #pendingRowRecordPuts = new CustomKeyMap(rowIDString);
331
+ #pendingRowRecordUpdates = new CustomKeyMap(rowIDString);
332
+ #forceUpdates = new CustomKeySet(rowIDString);
317
333
  #rowCache;
318
334
  #loadAttemptIntervalMs;
319
335
  #maxLoadAttempts;
@@ -443,11 +459,30 @@ export class CVRStore {
443
459
  getRowRecords() {
444
460
  return this.#rowCache.getRowRecords();
445
461
  }
446
- getPendingRowRecord(id) {
447
- return this.#pendingRowRecordPuts.get(id);
448
- }
449
462
  putRowRecord(row) {
450
- this.#pendingRowRecordPuts.set(row.id, row);
463
+ this.#pendingRowRecordUpdates.set(row.id, row);
464
+ }
465
+ /**
466
+ * Note: Removing a row from the CVR should be represented by a
467
+ * {@link putRowRecord()} with `refCounts: null` in order to properly
468
+ * produce the appropriate delete patch when catching up old clients.
469
+ *
470
+ * This `delRowRecord()` method, on the other hand, is only used when a
471
+ * row record is being *replaced* by another RowRecord, which currently
472
+ * only happens when the columns of the row key change.
473
+ */
474
+ delRowRecord(id) {
475
+ this.#pendingRowRecordUpdates.set(id, null);
476
+ }
477
+ /**
478
+ * Overrides the default logic that removes no-op writes and forces
479
+ * the updates for the given row `ids`. This has no effect if there
480
+ * are no corresponding puts or dels for the associated row records.
481
+ */
482
+ forceUpdates(...ids) {
483
+ for (const id of ids) {
484
+ this.#forceUpdates.add(id);
485
+ }
451
486
  }
452
487
  putInstance({ version, replicaVersion, lastActive, }) {
453
488
  this.#writes.add({
@@ -654,12 +689,22 @@ export class CVRStore {
654
689
  rowsDeferred: 0,
655
690
  statements: 0,
656
691
  };
657
- const existingRowRecords = await this.getRowRecords();
658
- const rowRecordsToFlush = [...this.#pendingRowRecordPuts.values()].filter(row => {
659
- const existing = existingRowRecords.get(row.id);
660
- return ((existing !== undefined || row.refCounts !== null) &&
661
- !deepEqual(row, existing));
662
- });
692
+ if (this.#pendingRowRecordUpdates.size) {
693
+ const existingRowRecords = await this.getRowRecords();
694
+ for (const [id, row] of this.#pendingRowRecordUpdates.entries()) {
695
+ if (this.#forceUpdates.has(id)) {
696
+ continue;
697
+ }
698
+ const existing = existingRowRecords.get(id);
699
+ if (
700
+ // Don't delete or add an unreferenced row if it's not in the CVR.
701
+ (existing === undefined && !row?.refCounts) ||
702
+ // Don't write a row record that exactly matches what's in the CVR.
703
+ deepEqual((row ?? undefined), existing)) {
704
+ this.#pendingRowRecordUpdates.delete(id);
705
+ }
706
+ }
707
+ }
663
708
  const rowsFlushed = await this.#db.begin(async (tx) => {
664
709
  const pipelined = [
665
710
  // #checkVersionAndOwnership() executes a `SELECT ... FOR UPDATE`
@@ -676,23 +721,24 @@ export class CVRStore {
676
721
  stats.queries += write.stats.queries ?? 0;
677
722
  stats.desires += write.stats.desires ?? 0;
678
723
  stats.clients += write.stats.clients ?? 0;
724
+ stats.rows += write.stats.rows ?? 0;
679
725
  pipelined.push(write.write(tx, lastConnectTime).execute());
680
726
  stats.statements++;
681
727
  }
682
- const rowUpdates = this.#rowCache.executeRowUpdates(tx, newVersion, rowRecordsToFlush, 'allow-defer');
728
+ const rowUpdates = this.#rowCache.executeRowUpdates(tx, newVersion, this.#pendingRowRecordUpdates, 'allow-defer');
683
729
  pipelined.push(...rowUpdates);
684
730
  stats.statements += rowUpdates.length;
685
731
  // Make sure Errors thrown by pipelined statements
686
732
  // are propagated up the stack.
687
733
  await Promise.all(pipelined);
688
734
  if (rowUpdates.length === 0) {
689
- stats.rowsDeferred = rowRecordsToFlush.length;
735
+ stats.rowsDeferred = this.#pendingRowRecordUpdates.size;
690
736
  return false;
691
737
  }
692
- stats.rows = rowRecordsToFlush.length;
738
+ stats.rows += this.#pendingRowRecordUpdates.size;
693
739
  return true;
694
740
  });
695
- await this.#rowCache.apply(rowRecordsToFlush, newVersion, rowsFlushed);
741
+ await this.#rowCache.apply(this.#pendingRowRecordUpdates, newVersion, rowsFlushed);
696
742
  return stats;
697
743
  }
698
744
  async flush(expectedCurrentVersion, newVersion, lastConnectTime) {
@@ -706,7 +752,8 @@ export class CVRStore {
706
752
  }
707
753
  finally {
708
754
  this.#writes.clear();
709
- this.#pendingRowRecordPuts.clear();
755
+ this.#pendingRowRecordUpdates.clear();
756
+ this.#forceUpdates.clear();
710
757
  }
711
758
  }
712
759
  hasPendingUpdates() {
@@ -1 +1 @@
1
- {"version":3,"file":"cvr-store.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cvr-store.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { LogContext } from '@rocicorp/logger';
2
2
  import type { AST } from '../../../../zero-protocol/src/ast.js';
3
- import type { JSONObject } from '../../types/bigint-json.js';
3
+ import { type JSONObject } from '../../types/bigint-json.js';
4
4
  import type { LexiVersion } from '../../types/lexi-version.js';
5
5
  import type { PatchToVersion } from './client-handler.js';
6
6
  import type { CVRFlushStats, CVRStore } from './cvr-store.js';
@@ -135,7 +135,7 @@ export declare class CVRQueryDrivenUpdater extends CVRUpdater {
135
135
  * returns (put) patches to be returned to update their state, versioned by
136
136
  * patchVersion so that only the patches new to the clients are sent.
137
137
  */
138
- received(_: LogContext, rows: Map<RowID, RowUpdate>): Promise<PatchToVersion[]>;
138
+ received(lc: LogContext, rows: Map<RowID, RowUpdate>): Promise<PatchToVersion[]>;
139
139
  /**
140
140
  * Computes and updates the row records based on:
141
141
  * * The {@link #executed} queries
@@ -1 +1 @@
1
- {"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AASjD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAY,KAAK,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAG7D,OAAO,KAAK,EAAQ,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAIL,KAAK,UAAU,EAEf,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,KAAK,EAEX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CACrC,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,GAAG,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC,CAAC;AAEF,mCAAmC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;CACzD,CAAC;AAaF;;;;;;;;GAQG;AACH,qBAAa,UAAU;;IACrB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IAE7B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAEvC;;;OAGG;gBAED,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,MAAM,GAAG,IAAI;IAQ/B,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU;;;;IAOzC;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,IAAI,UAAU;IAYnC,KAAK,CACT,EAAE,EAAE,UAAU,EACd,eAAe,EAAE,MAAM,EACvB,UAAU,SAAa,GACtB,OAAO,CAAC;QACT,GAAG,EAAE,WAAW,CAAC;QACjB,KAAK,EAAE,aAAa,CAAC;KACtB,CAAC;CAoBH;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;;gBAGxC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAwDjE,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAC,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAC3B,cAAc,EAAE;IA6BnB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE;IA8B3E,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE;IAQvD,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,SAAa;aA9J/D,WAAW;eACT,aAAa;;CAiKvB;AAED,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;;IASnD;;OAEG;gBAED,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,MAAM;IAiBxB;;;;;;;;;;;;OAYG;IACH,YAAY,CACV,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAC,EAAE,EACpD,OAAO,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAC,EAAE,GAClD;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,cAAc,EAAE,CAAA;KAAC;IA2H3D,cAAc,IAAI,UAAU;IAM5B;;;;;OAKG;IACG,QAAQ,CACZ,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC;IAkF5B;;;;;;;;;;;OAWG;IACG,sBAAsB,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CA4DzE"}
@@ -2,8 +2,10 @@ import { compareUTF8 } from 'compare-utf8';
2
2
  import { assert } from '../../../../shared/src/asserts.js';
3
3
  import { CustomKeyMap } from '../../../../shared/src/custom-key-map.js';
4
4
  import { difference, intersection, union, } from '../../../../shared/src/set-utils.js';
5
+ import { stringify } from '../../types/bigint-json.js';
5
6
  import { rowIDString } from '../../types/row-key.js';
6
7
  import { unescapedSchema as schema } from '../change-source/pg/schema/shard.js';
8
+ import { KeyColumns } from './key-columns.js';
7
9
  import { cmpVersions, oneAfter, versionString, } from './schema/types.js';
8
10
  const CLIENT_LMID_QUERY_ID = 'lmids';
9
11
  function assertNotInternal(query) {
@@ -204,6 +206,7 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
204
206
  export class CVRQueryDrivenUpdater extends CVRUpdater {
205
207
  #removedOrExecutedQueryIDs = new Set();
206
208
  #receivedRows = new CustomKeyMap(rowIDString);
209
+ #replacedRows = new CustomKeyMap(rowIDString);
207
210
  #existingRows = undefined;
208
211
  /**
209
212
  * @param stateVersion The `stateVersion` at which the queries were executed.
@@ -337,18 +340,35 @@ export class CVRQueryDrivenUpdater extends CVRUpdater {
337
340
  updatedVersion() {
338
341
  return this._cvr.version;
339
342
  }
343
+ #keyColumns;
340
344
  /**
341
345
  * Tracks rows received from executing queries. This will update row records
342
346
  * and row patches if the received rows have a new version. The method also
343
347
  * returns (put) patches to be returned to update their state, versioned by
344
348
  * patchVersion so that only the patches new to the clients are sent.
345
349
  */
346
- async received(_, rows) {
350
+ async received(lc, rows) {
347
351
  const patches = [];
348
352
  const existingRows = await this._cvrStore.getRowRecords();
353
+ this.#keyColumns ??= new KeyColumns(existingRows.values());
349
354
  for (const [id, update] of rows.entries()) {
350
355
  const { contents, version, refCounts } = update;
351
- const existing = existingRows.get(id);
356
+ let existing = existingRows.get(id);
357
+ if (!existing && contents) {
358
+ // See if the row being put is referenced in the CVR using a different ID.
359
+ const oldID = this.#keyColumns.getOldRowID(id, contents);
360
+ if (oldID) {
361
+ existing = existingRows.get(oldID);
362
+ if (existing && !this.#replacedRows.get(oldID)) {
363
+ lc.debug?.(`replacing ${stringify(oldID)} with ${stringify(id)}`);
364
+ this.#replacedRows.set(oldID, true);
365
+ this._cvrStore.delRowRecord(oldID);
366
+ // Force the updates for these rows to happen, even if they look like
367
+ // no-ops on their own.
368
+ this._cvrStore.forceUpdates(oldID, id);
369
+ }
370
+ }
371
+ }
352
372
  // Accumulate all received refCounts to determine which rows to prune.
353
373
  const previouslyReceived = this.#receivedRows.get(id);
354
374
  const merged = previouslyReceived !== undefined
@@ -430,8 +450,8 @@ export class CVRQueryDrivenUpdater extends CVRUpdater {
430
450
  return patches;
431
451
  }
432
452
  #deleteUnreferencedRow(existing) {
433
- const received = this.#receivedRows.get(existing.id);
434
- if (received !== undefined) {
453
+ if (this.#receivedRows.get(existing.id) ||
454
+ this.#replacedRows.get(existing.id)) {
435
455
  return null;
436
456
  }
437
457
  const newRefCounts = mergeRefCounts(existing.refCounts, undefined, this.#removedOrExecutedQueryIDs);
@@ -1 +1 @@
1
- {"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { JSONObject } from '../../types/bigint-json.js';
2
+ import type { RowID, RowRecord } from './schema/types.js';
3
+ /**
4
+ * KeyColumns track the key columns used to reference rows in the CVR.
5
+ * This is then used to potentially compute a backwards compatible row
6
+ * key in the event that pipelines produce a row with a schema that has
7
+ * a different row key.
8
+ *
9
+ * An invariant that is assumed and maintained is that only one key
10
+ * (i.e. set of columns) is used per table in a given CVR
11
+ * (not counting deleted rows with non-null refCounts).
12
+ *
13
+ * This invariant is maintained by the fact that a full hydration
14
+ * (and thus full CVR scan) always follows any schema change:
15
+ * (1) initial hydration when the client connects
16
+ * (2) re-hydration upon a receiving ResetPipelinesSignal during an
17
+ * advancement (i.e. schema change)
18
+ *
19
+ * The ensuing CVR update is then responsible for replacing or deleting
20
+ * all obsolete row keys.
21
+ */
22
+ export declare class KeyColumns {
23
+ #private;
24
+ constructor(allRowRecords: Iterable<RowRecord>);
25
+ /**
26
+ * Gets an "old" RowID (i.e. compatible with what's in the CVR) from the
27
+ * given `id` and `row` produced by the pipeline. Returns `null` if there
28
+ * is no old row being replaced.
29
+ */
30
+ getOldRowID(id: RowID, row: JSONObject): RowID | null;
31
+ }
32
+ //# sourceMappingURL=key-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-columns.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/key-columns.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAE3D,OAAO,KAAK,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,UAAU;;gBAIT,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC;IAU9C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,GAAG,KAAK,GAAG,IAAI;CAkCtD"}
@@ -0,0 +1,73 @@
1
+ import { deepEqual } from '../../../../shared/src/json.js';
2
+ import * as ErrorKind from '../../../../zero-protocol/src/error-kind-enum.js';
3
+ import { ErrorForClient } from '../../types/error-for-client.js';
4
+ /**
5
+ * KeyColumns track the key columns used to reference rows in the CVR.
6
+ * This is then used to potentially compute a backwards compatible row
7
+ * key in the event that pipelines produce a row with a schema that has
8
+ * a different row key.
9
+ *
10
+ * An invariant that is assumed and maintained is that only one key
11
+ * (i.e. set of columns) is used per table in a given CVR
12
+ * (not counting deleted rows with non-null refCounts).
13
+ *
14
+ * This invariant is maintained by the fact that a full hydration
15
+ * (and thus full CVR scan) always follows any schema change:
16
+ * (1) initial hydration when the client connects
17
+ * (2) re-hydration upon a receiving ResetPipelinesSignal during an
18
+ * advancement (i.e. schema change)
19
+ *
20
+ * The ensuing CVR update is then responsible for replacing or deleting
21
+ * all obsolete row keys.
22
+ */
23
+ export class KeyColumns {
24
+ #cvrKeyColumns = new Map();
25
+ #sameKey = new Map();
26
+ constructor(allRowRecords) {
27
+ for (const existing of allRowRecords) {
28
+ const { schema, table, rowKey } = existing.id;
29
+ const fullTableName = `${schema}.${table}`;
30
+ if (!this.#cvrKeyColumns.has(fullTableName)) {
31
+ this.#cvrKeyColumns.set(fullTableName, Object.keys(rowKey).sort());
32
+ }
33
+ }
34
+ }
35
+ /**
36
+ * Gets an "old" RowID (i.e. compatible with what's in the CVR) from the
37
+ * given `id` and `row` produced by the pipeline. Returns `null` if there
38
+ * is no old row being replaced.
39
+ */
40
+ getOldRowID(id, row) {
41
+ const { schema, table, rowKey } = id;
42
+ const fullTableName = `${schema}.${table}`;
43
+ const cvrKey = this.#cvrKeyColumns.get(fullTableName);
44
+ if (!cvrKey) {
45
+ return null; // No rows in the CVR for the given table.
46
+ }
47
+ let sameKey = this.#sameKey.get(fullTableName);
48
+ if (sameKey === undefined) {
49
+ const newKey = Object.keys(rowKey).sort();
50
+ sameKey = deepEqual(cvrKey, newKey);
51
+ this.#sameKey.set(fullTableName, sameKey);
52
+ }
53
+ if (sameKey) {
54
+ return null;
55
+ }
56
+ const cvrRowKey = Object.fromEntries(cvrKey.map(col => {
57
+ const val = row[col];
58
+ if (val === undefined) {
59
+ // If the column used by the row key in the CVR no longer exists in
60
+ // the replica, this CVR should have ideally been rejected via the
61
+ // schema versioning mechanism. However, since there is no guarantee
62
+ // of that protection, this sanity check here drops the CVR entirely.
63
+ throw new ErrorForClient({
64
+ kind: ErrorKind.ClientNotFound,
65
+ message: `CVR contains key column "${col}" that is no longer in the replica`,
66
+ });
67
+ }
68
+ return [col, val];
69
+ }));
70
+ return { ...id, rowKey: cvrRowKey };
71
+ }
72
+ }
73
+ //# sourceMappingURL=key-columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-columns.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/key-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,kDAAkD,CAAC;AAE9E,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAG/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,UAAU;IACZ,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE/C,YAAY,aAAkC;QAC5C,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,EAAS,EAAE,GAAe;QACpC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,CAAC,0CAA0C;QACzD,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACf,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,mEAAmE;gBACnE,kEAAkE;gBAClE,oEAAoE;gBACpE,qEAAqE;gBACrE,MAAM,IAAI,cAAc,CAAC;oBACvB,IAAI,EAAE,SAAS,CAAC,cAAc;oBAC9B,OAAO,EAAE,4BAA4B,GAAG,oCAAoC;iBAC7E,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CACH,CAAC;QACF,OAAO,EAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC;IACpC,CAAC;CACF"}