@rocicorp/zero 0.2.2024101101 → 0.3.2024102500
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/out/react.js +91 -39
- package/out/react.js.map +2 -2
- package/out/replicache/src/async-iterable-to-array.js +8 -0
- package/out/replicache/src/async-iterable-to-array.js.map +1 -0
- package/out/replicache/src/bg-interval.js +38 -0
- package/out/replicache/src/bg-interval.js.map +1 -0
- package/out/replicache/src/binary-search.js +31 -0
- package/out/replicache/src/binary-search.js.map +1 -0
- package/out/replicache/src/broadcast-channel.js +29 -0
- package/out/replicache/src/broadcast-channel.js.map +1 -0
- package/out/replicache/src/btree/diff.js +6 -0
- package/out/replicache/src/btree/diff.js.map +1 -0
- package/out/replicache/src/btree/node.js +392 -0
- package/out/replicache/src/btree/node.js.map +1 -0
- package/out/replicache/src/btree/read.js +227 -0
- package/out/replicache/src/btree/read.js.map +1 -0
- package/out/replicache/src/btree/splice.js +79 -0
- package/out/replicache/src/btree/splice.js.map +1 -0
- package/out/replicache/src/btree/write.js +154 -0
- package/out/replicache/src/btree/write.js.map +1 -0
- package/out/replicache/src/call-default-fetch.js +37 -0
- package/out/replicache/src/call-default-fetch.js.map +1 -0
- package/out/replicache/src/config.js +13 -0
- package/out/replicache/src/config.js.map +1 -0
- package/out/replicache/src/connection-loop-delegates.js +30 -0
- package/out/replicache/src/connection-loop-delegates.js.map +1 -0
- package/out/replicache/src/connection-loop.js +268 -0
- package/out/replicache/src/connection-loop.js.map +1 -0
- package/out/replicache/src/cookies.js +41 -0
- package/out/replicache/src/cookies.js.map +1 -0
- package/out/replicache/src/dag/chunk.js +60 -0
- package/out/replicache/src/dag/chunk.js.map +1 -0
- package/out/replicache/src/dag/gc.js +126 -0
- package/out/replicache/src/dag/gc.js.map +1 -0
- package/out/replicache/src/dag/key-type-enum.js +6 -0
- package/out/replicache/src/dag/key-type-enum.js.map +1 -0
- package/out/replicache/src/dag/key.js +54 -0
- package/out/replicache/src/dag/key.js.map +1 -0
- package/out/replicache/src/dag/lazy-store.js +532 -0
- package/out/replicache/src/dag/lazy-store.js.map +1 -0
- package/out/replicache/src/dag/store-impl.js +175 -0
- package/out/replicache/src/dag/store-impl.js.map +1 -0
- package/out/replicache/src/dag/store.js +22 -0
- package/out/replicache/src/dag/store.js.map +1 -0
- package/out/replicache/src/dag/visitor.js +22 -0
- package/out/replicache/src/dag/visitor.js.map +1 -0
- package/out/replicache/src/db/commit.js +443 -0
- package/out/replicache/src/db/commit.js.map +1 -0
- package/out/replicache/src/db/index-operation-enum.js +4 -0
- package/out/replicache/src/db/index-operation-enum.js.map +1 -0
- package/out/replicache/src/db/index.js +170 -0
- package/out/replicache/src/db/index.js.map +1 -0
- package/out/replicache/src/db/meta-type-enum.js +7 -0
- package/out/replicache/src/db/meta-type-enum.js.map +1 -0
- package/out/replicache/src/db/read.js +59 -0
- package/out/replicache/src/db/read.js.map +1 -0
- package/out/replicache/src/db/rebase.js +56 -0
- package/out/replicache/src/db/rebase.js.map +1 -0
- package/out/replicache/src/db/scan.js +2 -0
- package/out/replicache/src/db/scan.js.map +1 -0
- package/out/replicache/src/db/write.js +260 -0
- package/out/replicache/src/db/write.js.map +1 -0
- package/out/replicache/src/error-responses.js +30 -0
- package/out/replicache/src/error-responses.js.map +1 -0
- package/out/replicache/src/filter-async-iterable.js +15 -0
- package/out/replicache/src/filter-async-iterable.js.map +1 -0
- package/out/replicache/src/format-version-enum.js +9 -0
- package/out/replicache/src/format-version-enum.js.map +1 -0
- package/out/replicache/src/format-version.js +8 -0
- package/out/replicache/src/format-version.js.map +1 -0
- package/out/replicache/src/frozen-json.js +151 -0
- package/out/replicache/src/frozen-json.js.map +1 -0
- package/out/replicache/src/get-default-puller.js +74 -0
- package/out/replicache/src/get-default-puller.js.map +1 -0
- package/out/replicache/src/get-default-pusher.js +36 -0
- package/out/replicache/src/get-default-pusher.js.map +1 -0
- package/out/replicache/src/hash.js +73 -0
- package/out/replicache/src/hash.js.map +1 -0
- package/out/replicache/src/http-request-info.js +7 -0
- package/out/replicache/src/http-request-info.js.map +1 -0
- package/out/replicache/src/impl.js +2 -0
- package/out/replicache/src/impl.js.map +1 -0
- package/out/replicache/src/index-defs.js +28 -0
- package/out/replicache/src/index-defs.js.map +1 -0
- package/out/replicache/src/invoke-kind-enum.js +4 -0
- package/out/replicache/src/invoke-kind-enum.js.map +1 -0
- package/out/replicache/src/iterable-union.js +5 -0
- package/out/replicache/src/iterable-union.js.map +1 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js +93 -0
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -0
- package/out/replicache/src/kv/idb-store.js +179 -0
- package/out/replicache/src/kv/idb-store.js.map +1 -0
- package/out/replicache/src/kv/mem-store.js +61 -0
- package/out/replicache/src/kv/mem-store.js.map +1 -0
- package/out/replicache/src/kv/read-impl.js +23 -0
- package/out/replicache/src/kv/read-impl.js.map +1 -0
- package/out/replicache/src/kv/store.js +2 -0
- package/out/replicache/src/kv/store.js.map +1 -0
- package/out/replicache/src/kv/write-impl-base.js +48 -0
- package/out/replicache/src/kv/write-impl-base.js.map +1 -0
- package/out/replicache/src/kv/write-impl.js +25 -0
- package/out/replicache/src/kv/write-impl.js.map +1 -0
- package/out/replicache/src/lazy.js +10 -0
- package/out/replicache/src/lazy.js.map +1 -0
- package/out/replicache/src/log-options.js +13 -0
- package/out/replicache/src/log-options.js.map +1 -0
- package/out/replicache/src/merge-async-iterables.js +61 -0
- package/out/replicache/src/merge-async-iterables.js.map +1 -0
- package/out/replicache/src/mod.js +14 -0
- package/out/replicache/src/mod.js.map +1 -0
- package/out/replicache/src/mutation-recovery.js +439 -0
- package/out/replicache/src/mutation-recovery.js.map +1 -0
- package/out/replicache/src/new-client-channel.js +77 -0
- package/out/replicache/src/new-client-channel.js.map +1 -0
- package/out/replicache/src/on-persist-channel.js +33 -0
- package/out/replicache/src/on-persist-channel.js.map +1 -0
- package/out/replicache/src/patch-operation.js +37 -0
- package/out/replicache/src/patch-operation.js.map +1 -0
- package/out/replicache/src/pending-mutations.js +18 -0
- package/out/replicache/src/pending-mutations.js.map +1 -0
- package/out/replicache/src/persist/client-gc.js +38 -0
- package/out/replicache/src/persist/client-gc.js.map +1 -0
- package/out/replicache/src/persist/client-group-gc.js +38 -0
- package/out/replicache/src/persist/client-group-gc.js.map +1 -0
- package/out/replicache/src/persist/client-groups.js +180 -0
- package/out/replicache/src/persist/client-groups.js.map +1 -0
- package/out/replicache/src/persist/clients.js +390 -0
- package/out/replicache/src/persist/clients.js.map +1 -0
- package/out/replicache/src/persist/collect-idb-databases.js +174 -0
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js +25 -0
- package/out/replicache/src/persist/gather-mem-only-visitor.js.map +1 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js +35 -0
- package/out/replicache/src/persist/gather-not-cached-visitor.js.map +1 -0
- package/out/replicache/src/persist/heartbeat.js +37 -0
- package/out/replicache/src/persist/heartbeat.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js +18 -0
- package/out/replicache/src/persist/idb-databases-store-db-name.js.map +1 -0
- package/out/replicache/src/persist/idb-databases-store.js +90 -0
- package/out/replicache/src/persist/idb-databases-store.js.map +1 -0
- package/out/replicache/src/persist/make-client-id.js +13 -0
- package/out/replicache/src/persist/make-client-id.js.map +1 -0
- package/out/replicache/src/persist/persist.js +132 -0
- package/out/replicache/src/persist/persist.js.map +1 -0
- package/out/replicache/src/persist/refresh.js +147 -0
- package/out/replicache/src/persist/refresh.js.map +1 -0
- package/out/replicache/src/process-scheduler.js +93 -0
- package/out/replicache/src/process-scheduler.js.map +1 -0
- package/out/replicache/src/puller.js +2 -0
- package/out/replicache/src/puller.js.map +1 -0
- package/out/replicache/src/pusher.js +32 -0
- package/out/replicache/src/pusher.js.map +1 -0
- package/out/replicache/src/replicache-impl.js +1007 -0
- package/out/replicache/src/replicache-impl.js.map +1 -0
- package/out/replicache/src/replicache-options.js +2 -0
- package/out/replicache/src/replicache-options.js.map +1 -0
- package/out/replicache/src/replicache.js +387 -0
- package/out/replicache/src/replicache.js.map +1 -0
- package/out/replicache/src/request-idle.js +15 -0
- package/out/replicache/src/request-idle.js.map +1 -0
- package/out/replicache/src/scan-iterator.js +202 -0
- package/out/replicache/src/scan-iterator.js.map +1 -0
- package/out/replicache/src/scan-options.js +45 -0
- package/out/replicache/src/scan-options.js.map +1 -0
- package/out/replicache/src/set-interval-with-signal.js +7 -0
- package/out/replicache/src/set-interval-with-signal.js.map +1 -0
- package/out/replicache/src/size-of-value.js +77 -0
- package/out/replicache/src/size-of-value.js.map +1 -0
- package/out/replicache/src/subscriptions.js +357 -0
- package/out/replicache/src/subscriptions.js.map +1 -0
- package/out/replicache/src/sync/diff.js +75 -0
- package/out/replicache/src/sync/diff.js.map +1 -0
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js +5 -0
- package/out/replicache/src/sync/handle-pull-response-result-type-enum.js.map +1 -0
- package/out/replicache/src/sync/ids.js +4 -0
- package/out/replicache/src/sync/ids.js.map +1 -0
- package/out/replicache/src/sync/patch.js +41 -0
- package/out/replicache/src/sync/patch.js.map +1 -0
- package/out/replicache/src/sync/pull-error.js +16 -0
- package/out/replicache/src/sync/pull-error.js.map +1 -0
- package/out/replicache/src/sync/pull.js +375 -0
- package/out/replicache/src/sync/pull.js.map +1 -0
- package/out/replicache/src/sync/push.js +141 -0
- package/out/replicache/src/sync/push.js.map +1 -0
- package/out/replicache/src/sync/request-id.js +31 -0
- package/out/replicache/src/sync/request-id.js.map +1 -0
- package/out/replicache/src/sync/sync-head-name.js +2 -0
- package/out/replicache/src/sync/sync-head-name.js.map +1 -0
- package/out/replicache/src/test-license-key.js +3 -0
- package/out/replicache/src/test-license-key.js.map +1 -0
- package/out/replicache/src/to-error.js +7 -0
- package/out/replicache/src/to-error.js.map +1 -0
- package/out/replicache/src/transaction-closed-error.js +17 -0
- package/out/replicache/src/transaction-closed-error.js.map +1 -0
- package/out/replicache/src/transactions.js +144 -0
- package/out/replicache/src/transactions.js.map +1 -0
- package/out/replicache/src/types.js +2 -0
- package/out/replicache/src/types.js.map +1 -0
- package/out/replicache/src/version.js +5 -0
- package/out/replicache/src/version.js.map +1 -0
- package/out/replicache/src/with-transactions.js +28 -0
- package/out/replicache/src/with-transactions.js.map +1 -0
- package/out/shared/src/browser-env.js +14 -0
- package/out/shared/src/browser-env.js.map +1 -0
- package/out/shared/src/document-visible.js +76 -0
- package/out/shared/src/document-visible.js.map +1 -0
- package/out/shared/src/immutable.js +2 -0
- package/out/shared/src/immutable.js.map +1 -0
- package/out/shared/src/iterables.d.ts +2 -2
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +40 -0
- package/out/shared/src/iterables.js.map +1 -0
- package/out/shared/src/navigator.js +3 -0
- package/out/shared/src/navigator.js.map +1 -0
- package/out/shared/src/random-uint64.js +8 -0
- package/out/shared/src/random-uint64.js.map +1 -0
- package/out/shared/src/random-values.d.ts +1 -0
- package/out/shared/src/random-values.d.ts.map +1 -1
- package/out/shared/src/random-values.js +22 -0
- package/out/shared/src/random-values.js.map +1 -0
- package/out/shared/src/set-utils.d.ts +1 -1
- package/out/shared/src/set-utils.d.ts.map +1 -1
- package/out/shared/src/set-utils.js +6 -4
- package/out/shared/src/set-utils.js.map +1 -1
- package/out/shared/src/sorted-entries.d.ts +2 -0
- package/out/shared/src/sorted-entries.d.ts.map +1 -0
- package/out/shared/src/sorted-entries.js +6 -0
- package/out/shared/src/sorted-entries.js.map +1 -0
- package/out/shared/src/types.js +2 -0
- package/out/shared/src/types.js.map +1 -0
- package/out/shared/src/valita.d.ts +1 -1
- package/out/shared/src/valita.d.ts.map +1 -1
- package/out/shared/src/valita.js.map +1 -1
- package/out/shared/src/writable.d.ts +4 -0
- package/out/shared/src/writable.d.ts.map +1 -0
- package/out/shared/src/writable.js +2 -0
- package/out/shared/src/writable.js.map +1 -0
- package/out/zero/src/config.d.ts +2 -0
- package/out/zero/src/config.d.ts.map +1 -0
- package/out/zero/src/config.js +2 -0
- package/out/zero/src/config.js.map +1 -0
- package/out/zero-cache/src/config/config-query.d.ts +18 -0
- package/out/zero-cache/src/config/config-query.d.ts.map +1 -0
- package/out/zero-cache/src/config/config-query.js +19 -0
- package/out/zero-cache/src/config/config-query.js.map +1 -0
- package/out/zero-cache/src/config/define-config.d.ts +43 -0
- package/out/zero-cache/src/config/define-config.d.ts.map +1 -0
- package/out/zero-cache/src/config/define-config.js +120 -0
- package/out/zero-cache/src/config/define-config.js.map +1 -0
- package/out/zero-cache/src/config/refs.d.ts +3 -0
- package/out/zero-cache/src/config/refs.d.ts.map +1 -0
- package/out/zero-cache/src/config/refs.js +14 -0
- package/out/zero-cache/src/config/refs.js.map +1 -0
- package/out/zero-cache/src/config/zero-config.d.ts +126 -686
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +43 -161
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/create.d.ts +8 -0
- package/out/zero-cache/src/db/create.d.ts.map +1 -0
- package/out/zero-cache/src/db/create.js +39 -0
- package/out/zero-cache/src/db/create.js.map +1 -0
- package/out/zero-cache/src/db/lite-tables.d.ts +3 -3
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +29 -20
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.d.ts +60 -20
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +89 -69
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.d.ts +61 -20
- package/out/zero-cache/src/db/migration.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration.js +92 -75
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +11 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -0
- package/out/zero-cache/src/{services/change-streamer/pg/schema/lite.js → db/pg-to-lite.js} +27 -15
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -0
- package/out/zero-cache/src/db/specs.d.ts +73 -0
- package/out/zero-cache/src/db/specs.d.ts.map +1 -0
- package/out/zero-cache/src/db/specs.js +30 -0
- package/out/zero-cache/src/db/specs.js.map +1 -0
- package/out/zero-cache/src/db/statements.d.ts +1 -1
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/server/life-cycle.js +9 -5
- package/out/zero-cache/src/server/life-cycle.js.map +1 -1
- package/out/zero-cache/src/server/main.js +3 -3
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +2 -1
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +1 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +455 -13
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js +16 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +313 -88
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +13 -54
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +239 -59
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js +291 -183
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/init.d.ts +5 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/init.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/init.js +18 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +4 -4
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js +14 -19
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/shard.d.ts +17 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/shard.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/shard.js +150 -0
- package/out/zero-cache/src/services/change-streamer/pg/schema/shard.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +11 -5
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +325 -26
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.js +84 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js +13 -5
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +6 -6
- package/out/zero-cache/src/services/change-streamer/storer.js +4 -4
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js +5 -2
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +21 -22
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +18 -9
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +131 -16
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +20 -3
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +46 -14
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +9 -9
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +4 -3
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +27 -21
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -4
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +63 -18
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +11 -8
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +22 -13
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +31 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +53 -0
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +13 -5
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +27 -0
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +5 -4
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +4 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.js +16 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +8 -216
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -4
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +12 -4
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +59 -49
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -4
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +105 -44
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +8 -9
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +10 -4
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +37 -15
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +4 -2
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +21 -2
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts +2 -1
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +20 -9
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +1 -1
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/context.js +99 -0
- package/out/zero-client/src/client/context.js.map +1 -0
- package/out/zero-client/src/client/crud.d.ts +8 -10
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.js +181 -0
- package/out/zero-client/src/client/crud.js.map +1 -0
- package/out/zero-client/src/client/enable-analytics.js +21 -0
- package/out/zero-client/src/client/enable-analytics.js.map +1 -0
- package/out/zero-client/src/client/http-string.js +14 -0
- package/out/zero-client/src/client/http-string.js.map +1 -0
- package/out/zero-client/src/client/keys.d.ts +3 -2
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.js +32 -0
- package/out/zero-client/src/client/keys.js.map +1 -0
- package/out/zero-client/src/client/log-options.js +57 -0
- package/out/zero-client/src/client/log-options.js.map +1 -0
- package/out/zero-client/src/client/metrics.js +268 -0
- package/out/zero-client/src/client/metrics.js.map +1 -0
- package/out/zero-client/src/client/normalized-schema.d.ts +17 -0
- package/out/zero-client/src/client/normalized-schema.d.ts.map +1 -0
- package/out/zero-client/src/client/normalized-schema.js +31 -0
- package/out/zero-client/src/client/normalized-schema.js.map +1 -0
- package/out/zero-client/src/client/options.js +2 -0
- package/out/zero-client/src/client/options.js.map +1 -0
- package/out/zero-client/src/client/query-manager.d.ts +18 -3
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.js +149 -0
- package/out/zero-client/src/client/query-manager.js.map +1 -0
- package/out/zero-client/src/client/reload-error-handler.js +23 -0
- package/out/zero-client/src/client/reload-error-handler.js.map +1 -0
- package/out/zero-client/src/client/replicache-types.js +2 -0
- package/out/zero-client/src/client/replicache-types.js.map +1 -0
- package/out/zero-client/src/client/server-error.js +22 -0
- package/out/zero-client/src/client/server-error.js.map +1 -0
- package/out/zero-client/src/client/server-option.js +37 -0
- package/out/zero-client/src/client/server-option.js.map +1 -0
- package/out/zero-client/src/client/version.js +5 -0
- package/out/zero-client/src/client/version.js.map +1 -0
- package/out/zero-client/src/client/zero-poke-handler.d.ts +3 -3
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js +240 -0
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -0
- package/out/zero-client/src/client/zero.d.ts +3 -2
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +1212 -0
- package/out/zero-client/src/client/zero.js.map +1 -0
- package/out/zero-client/src/mod.d.ts +1 -0
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-client/src/mod.js +5 -0
- package/out/zero-client/src/mod.js.map +1 -0
- package/out/zero-client/src/util/nanoid.js +34 -0
- package/out/zero-client/src/util/nanoid.js.map +1 -0
- package/out/zero-client/src/util/socket.js +4 -0
- package/out/zero-client/src/util/socket.js.map +1 -0
- package/out/zero-protocol/src/ast.d.ts +87 -1
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +53 -0
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts +6 -6
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/clients-patch.d.ts +1 -1
- package/out/zero-protocol/src/connect.d.ts +15 -8
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js +21 -0
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/data.d.ts +36 -0
- package/out/zero-protocol/src/data.d.ts.map +1 -0
- package/out/zero-protocol/src/data.js +4 -0
- package/out/zero-protocol/src/data.js.map +1 -0
- package/out/zero-protocol/src/delete-clients.d.ts +4 -4
- package/out/zero-protocol/src/delete-clients.d.ts.map +1 -1
- package/out/zero-protocol/src/down.d.ts +18 -16
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/down.js +2 -1
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/mod.d.ts +1 -2
- package/out/zero-protocol/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/mod.js +2 -2
- package/out/zero-protocol/src/mod.js.map +1 -1
- package/out/zero-protocol/src/ping.d.ts +1 -1
- package/out/zero-protocol/src/ping.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.d.ts +26 -26
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +8 -5
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.d.ts +1 -1
- package/out/zero-protocol/src/pong.d.ts.map +1 -1
- package/out/zero-protocol/src/primary-key.d.ts +2 -3
- package/out/zero-protocol/src/primary-key.d.ts.map +1 -1
- package/out/zero-protocol/src/primary-key.js +1 -3
- package/out/zero-protocol/src/primary-key.js.map +1 -1
- package/out/zero-protocol/src/pull.d.ts +4 -4
- package/out/zero-protocol/src/pull.d.ts.map +1 -1
- package/out/zero-protocol/src/push.d.ts +105 -98
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +17 -13
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts +4 -4
- package/out/zero-protocol/src/row-patch.d.ts +38 -0
- package/out/zero-protocol/src/row-patch.d.ts.map +1 -0
- package/out/zero-protocol/src/{entities-patch.js → row-patch.js} +10 -11
- package/out/zero-protocol/src/row-patch.js.map +1 -0
- package/out/zero-protocol/src/up.d.ts +28 -27
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/warm.d.ts +10 -0
- package/out/zero-protocol/src/warm.d.ts.map +1 -0
- package/out/zero-protocol/src/warm.js +6 -0
- package/out/zero-protocol/src/warm.js.map +1 -0
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero.js +522 -217
- package/out/zero.js.map +4 -4
- package/out/zql/src/zql/builder/builder.d.ts +3 -4
- package/out/zql/src/zql/builder/builder.d.ts.map +1 -1
- package/out/zql/src/zql/builder/builder.js +1 -2
- package/out/zql/src/zql/builder/builder.js.map +1 -1
- package/out/zql/src/zql/builder/filter.d.ts +2 -2
- package/out/zql/src/zql/builder/filter.d.ts.map +1 -1
- package/out/zql/src/zql/builder/filter.js.map +1 -1
- package/out/zql/src/zql/ivm/array-view.d.ts +5 -12
- package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/array-view.js +226 -0
- package/out/zql/src/zql/ivm/array-view.js.map +1 -0
- package/out/zql/src/zql/ivm/change.d.ts +2 -1
- package/out/zql/src/zql/ivm/change.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.d.ts +2 -33
- package/out/zql/src/zql/ivm/data.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.js.map +1 -1
- package/out/zql/src/zql/ivm/filter.d.ts +2 -1
- package/out/zql/src/zql/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/filter.js.map +1 -1
- package/out/zql/src/zql/ivm/join.d.ts +1 -1
- package/out/zql/src/zql/ivm/join.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/join.js +68 -24
- package/out/zql/src/zql/ivm/join.js.map +1 -1
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
- package/out/zql/src/zql/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.d.ts +8 -6
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.js +2 -0
- package/out/zql/src/zql/ivm/memory-source.js.map +1 -1
- package/out/zql/src/zql/ivm/memory-storage.js +33 -0
- package/out/zql/src/zql/ivm/memory-storage.js.map +1 -0
- package/out/zql/src/zql/ivm/operator.d.ts +2 -1
- package/out/zql/src/zql/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.d.ts +3 -3
- package/out/zql/src/zql/ivm/schema.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.js.map +1 -1
- package/out/zql/src/zql/ivm/skip.d.ts +2 -1
- package/out/zql/src/zql/ivm/skip.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/skip.js.map +1 -1
- package/out/zql/src/zql/ivm/source.d.ts +2 -2
- package/out/zql/src/zql/ivm/source.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/take.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/take.js.map +1 -1
- package/out/zql/src/zql/query/like.d.ts +2 -0
- package/out/zql/src/zql/query/like.d.ts.map +1 -0
- package/out/zql/src/zql/query/like.js +18 -0
- package/out/zql/src/zql/query/like.js.map +1 -0
- package/out/zql/src/zql/query/normalize-table-schema.d.ts +48 -0
- package/out/zql/src/zql/query/normalize-table-schema.d.ts.map +1 -0
- package/out/zql/src/zql/query/normalize-table-schema.js +116 -0
- package/out/zql/src/zql/query/normalize-table-schema.js.map +1 -0
- package/out/zql/src/zql/query/query-impl.d.ts +6 -5
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/zql/query/query-impl.js +263 -0
- package/out/zql/src/zql/query/query-impl.js.map +1 -0
- package/out/zql/src/zql/query/query.d.ts +1 -1
- package/out/zql/src/zql/query/query.d.ts.map +1 -1
- package/out/zql/src/zql/query/query.js +3 -0
- package/out/zql/src/zql/query/query.js.map +1 -0
- package/out/zql/src/zql/query/schema.d.ts +13 -4
- package/out/zql/src/zql/query/schema.d.ts.map +1 -1
- package/out/zql/src/zql/query/schema.js +7 -0
- package/out/zql/src/zql/query/schema.js.map +1 -0
- package/out/zql/src/zql/query/typed-view.d.ts +5 -2
- package/out/zql/src/zql/query/typed-view.d.ts.map +1 -1
- package/out/zql/src/zql/query/typed-view.js +2 -0
- package/out/zql/src/zql/query/typed-view.js.map +1 -0
- package/out/zqlite/src/db.d.ts +1 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +1 -1
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +2 -2
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +10 -8
- package/deps/sqlite3/sqlite3.c +0 -260574
- package/deps/sqlite3/sqlite3.h +0 -13572
- package/deps/sqlite3/sqlite3ext.h +0 -719
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +0 -29
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +0 -11
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js +0 -86
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.js.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts +0 -4
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js +0 -12
- package/out/zero-cache/src/services/view-syncer/schema/pg-migrations.js.map +0 -1
- package/out/zero-cache/src/types/specs.d.ts +0 -29
- package/out/zero-cache/src/types/specs.d.ts.map +0 -1
- package/out/zero-cache/src/types/specs.js +0 -2
- package/out/zero-cache/src/types/specs.js.map +0 -1
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts +0 -5
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts.map +0 -1
- package/out/zero-protocol/src/entities-patch.d.ts +0 -66
- package/out/zero-protocol/src/entities-patch.d.ts.map +0 -1
- package/out/zero-protocol/src/entities-patch.js.map +0 -1
- package/out/zql/src/zql/ast/ast.d.ts +0 -84
- package/out/zql/src/zql/ast/ast.d.ts.map +0 -1
- package/out/zql/src/zql/ast/ast.js +0 -54
- package/out/zql/src/zql/ast/ast.js.map +0 -1
- package/tool/install-sqlite3.js +0 -37
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ident as id, literal as lit } from 'pg-format';
|
|
2
2
|
import * as v from '../../../../../../shared/src/valita.js';
|
|
3
|
+
import { filteredTableSpec, indexSpec } from '../../../../db/specs.js';
|
|
3
4
|
import { indexDefinitionsQuery, publishedTableQuery } from './published.js';
|
|
4
|
-
// Sent in the 'version' tag of "
|
|
5
|
-
// that the message constructed in the upstream
|
|
6
|
-
// with the code processing it in the zero-cache.
|
|
5
|
+
// Sent in the 'version' tag of "ddlStart" and "ddlUpdate" event messages.
|
|
6
|
+
// This is used to ensure that the message constructed in the upstream
|
|
7
|
+
// Trigger function is compatible with the code processing it in the zero-cache.
|
|
7
8
|
//
|
|
8
9
|
// Increment this when changing the format of the contents of the "ddl" events.
|
|
9
10
|
// This will allow old / incompatible code to detect the change and abort.
|
|
@@ -11,46 +12,124 @@ export const PROTOCOL_VERSION = 1;
|
|
|
11
12
|
const triggerEvent = v.object({
|
|
12
13
|
context: v.object({ query: v.string() }).rest(v.string()),
|
|
13
14
|
});
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
indexes: v.array(jsonObjectSchema.map(t => t)), // TODO: Define IndexSpec schema.
|
|
15
|
+
// The Schema type encapsulates a snapshot of the tables and indexes that
|
|
16
|
+
// are published / relevant to the shard.
|
|
17
|
+
const publishedSchema = v.object({
|
|
18
|
+
tables: v.array(filteredTableSpec),
|
|
19
|
+
indexes: v.array(indexSpec),
|
|
20
20
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
// All DDL events contain a snapshot of the current tables and indexes that
|
|
22
|
+
// are published / relevant to the shard.
|
|
23
|
+
export const ddlEventSchema = triggerEvent.extend({
|
|
24
|
+
version: v.literal(PROTOCOL_VERSION),
|
|
25
|
+
schema: publishedSchema,
|
|
24
26
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
// The `ddlStart` message is computed before every DDL event, regardless of
|
|
28
|
+
// whether the subsequent event affects the shard. Downstream processing should
|
|
29
|
+
// capture the contained schema information in order to determine the schema
|
|
30
|
+
// changes necessary to apply a subsequent `ddlUpdate` message. Note that a
|
|
31
|
+
// `ddlUpdate` message may not follow, as updates determined to be irrelevant
|
|
32
|
+
// to the shard will not result in a message. However, all `ddlUpdate` messages
|
|
33
|
+
// are guaranteed to be preceded by a `ddlStart` message.
|
|
34
|
+
export const ddlStartEventSchema = ddlEventSchema.extend({
|
|
35
|
+
type: v.literal('ddlStart'),
|
|
32
36
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
/**
|
|
38
|
+
* An tableEvent indicates the table that was created or altered. Note that
|
|
39
|
+
* this may result in changes to indexes.
|
|
40
|
+
*
|
|
41
|
+
* Note that a table alteration can only consistent of a single change, whether
|
|
42
|
+
* that be the name of the table, or an aspect of a single column. In particular,
|
|
43
|
+
* if the update contains a new column and removes an old column, that must
|
|
44
|
+
* necessarily mean that the old column was renamed.
|
|
45
|
+
*
|
|
46
|
+
* tableEvents are only emitted for tables published to the shard.
|
|
47
|
+
*/
|
|
48
|
+
const tableEvent = v.object({
|
|
49
|
+
tag: v.union(v.literal('CREATE TABLE'), v.literal('ALTER TABLE')),
|
|
50
|
+
table: v.object({ schema: v.string(), name: v.string() }),
|
|
36
51
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
52
|
+
/**
|
|
53
|
+
* An indexEvent indicates an index that was manually created.
|
|
54
|
+
*
|
|
55
|
+
* indexEvents are only emitted for (indexes of) tables published to the shard.
|
|
56
|
+
*/
|
|
57
|
+
const indexEvent = v.object({
|
|
58
|
+
tag: v.literal('CREATE INDEX'),
|
|
59
|
+
index: v.object({ schema: v.string(), name: v.string() }),
|
|
40
60
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
61
|
+
/**
|
|
62
|
+
* A drop event indicates the dropping of table(s) or index(es). Note
|
|
63
|
+
* that a `DROP TABLE` event can result in the dropping of both tables
|
|
64
|
+
* and their indexes.
|
|
65
|
+
*
|
|
66
|
+
* Drop events are emitted to all shards. It is up to the downstream
|
|
67
|
+
* processor to determine (from the preceding {@link DdlStartEvent})
|
|
68
|
+
* whether the dropped objects are relevant to the shard.
|
|
69
|
+
*/
|
|
70
|
+
const dropEvent = v.object({
|
|
71
|
+
tag: v.union(v.literal('DROP TABLE'), v.literal('DROP INDEX')),
|
|
45
72
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
73
|
+
/**
|
|
74
|
+
* A publication event indicates a change in the visibility of tables
|
|
75
|
+
* and/or columns. This can mean any number of columns added or
|
|
76
|
+
* removed. However, it will never represent table or column renames
|
|
77
|
+
* (as those are only possible with `ALTER TABLE` statements).
|
|
78
|
+
*
|
|
79
|
+
* Publication events are not emitted if the altered publication is
|
|
80
|
+
* known and not included by the shard. However, due to the way
|
|
81
|
+
* Postgres Triggers work, the publication is not always known, and
|
|
82
|
+
* so it is possible for a shard to receive irrelevant publication
|
|
83
|
+
* events.
|
|
84
|
+
*/
|
|
85
|
+
const publicationEvent = v.object({
|
|
86
|
+
tag: v.literal('ALTER PUBLICATION'),
|
|
49
87
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
88
|
+
/**
|
|
89
|
+
* The {@link DdlUpdateEvent} contains an updated schema resulting from
|
|
90
|
+
* a particular ddl event. The event type provides information
|
|
91
|
+
* (i.e. constraints) on the difference from the schema of the preceding
|
|
92
|
+
* {@link DdlStartEvent}.
|
|
93
|
+
*
|
|
94
|
+
* Note that in almost all cases (the exception being `CREATE` events),
|
|
95
|
+
* it is possible that there is no relevant difference between the
|
|
96
|
+
* ddl-start schema and the ddl-update schema, as many aspects of the
|
|
97
|
+
* schema (e.g. column constraints) are not relevant to downstream
|
|
98
|
+
* replication.
|
|
99
|
+
*/
|
|
100
|
+
export const ddlUpdateEventSchema = ddlEventSchema.extend({
|
|
101
|
+
type: v.literal('ddlUpdate'),
|
|
102
|
+
event: v.union(tableEvent, indexEvent, dropEvent, publicationEvent),
|
|
103
|
+
});
|
|
104
|
+
export const replicationEventSchema = v.union(ddlStartEventSchema, ddlUpdateEventSchema);
|
|
105
|
+
// Creates a function that appends `_SHARD_ID` to the input.
|
|
106
|
+
function append(shardID) {
|
|
107
|
+
return (name) => id(name + '_' + shardID);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Event trigger functions contain the core logic that are invoked by triggers.
|
|
111
|
+
*
|
|
112
|
+
* Note that although many of these functions can theoretically be parameterized and
|
|
113
|
+
* shared across shards, it is advantageous to keep the functions in each shard
|
|
114
|
+
* isolated from each other in order to avoid the complexity of shared-function
|
|
115
|
+
* versioning.
|
|
116
|
+
*
|
|
117
|
+
* In a sense, shards (and their triggers and functions) should be thought of as
|
|
118
|
+
* execution environments that can be updated at different schedules. If per-shard
|
|
119
|
+
* triggers called into shared functions, we would have to consider versioning the
|
|
120
|
+
* functions when changing their behavior, backwards compatibility, removal of
|
|
121
|
+
* unused versions, etc. (not unlike versioning of npm packages).
|
|
122
|
+
*
|
|
123
|
+
* Instead, we opt for the simplicity and isolation of having each shard
|
|
124
|
+
* completely own (and maintain) the entirety of its trigger/function stack.
|
|
125
|
+
*/
|
|
126
|
+
function createEventFunctionStatements(shardID, publications) {
|
|
127
|
+
const schema = append(shardID)('zero'); // e.g. "zero_SHARD_ID"
|
|
128
|
+
return `
|
|
129
|
+
CREATE SCHEMA IF NOT EXISTS ${schema};
|
|
130
|
+
|
|
131
|
+
CREATE OR REPLACE FUNCTION ${schema}.get_trigger_context()
|
|
132
|
+
RETURNS record AS $$
|
|
54
133
|
DECLARE
|
|
55
134
|
result record;
|
|
56
135
|
BEGIN
|
|
@@ -59,179 +138,208 @@ BEGIN
|
|
|
59
138
|
END
|
|
60
139
|
$$ LANGUAGE plpgsql;
|
|
61
140
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
AS $$
|
|
65
|
-
DECLARE
|
|
66
|
-
event text;
|
|
141
|
+
|
|
142
|
+
CREATE OR REPLACE FUNCTION ${schema}.notice_ignore(object_id TEXT)
|
|
143
|
+
RETURNS void AS $$
|
|
67
144
|
BEGIN
|
|
68
|
-
|
|
69
|
-
'type', 'error',
|
|
70
|
-
'event', json_build_object(
|
|
71
|
-
'context', zero.get_trigger_context(),
|
|
72
|
-
'message', message
|
|
73
|
-
)
|
|
74
|
-
) into event;
|
|
75
|
-
|
|
76
|
-
PERFORM pg_logical_emit_message(true, 'zero', event);
|
|
145
|
+
RAISE NOTICE 'zero(%) ignoring %', ${lit(shardID)}, object_id;
|
|
77
146
|
END
|
|
78
147
|
$$ LANGUAGE plpgsql;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
RETURNS event_trigger
|
|
84
|
-
AS $$
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
CREATE OR REPLACE FUNCTION ${schema}.schema_specs()
|
|
151
|
+
RETURNS TEXT AS $$
|
|
85
152
|
DECLARE
|
|
86
|
-
tag text;
|
|
87
153
|
tables record;
|
|
88
154
|
indexes record;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
155
|
+
BEGIN
|
|
156
|
+
${publishedTableQuery(publications)} INTO tables;
|
|
157
|
+
${indexDefinitionsQuery(publications)} INTO indexes;
|
|
158
|
+
RETURN json_build_object(
|
|
159
|
+
'tables', tables.tables,
|
|
160
|
+
'indexes', indexes.indexes
|
|
161
|
+
);
|
|
162
|
+
END
|
|
163
|
+
$$ LANGUAGE plpgsql;
|
|
98
164
|
|
|
99
|
-
IF json_array_length(tables.tables) = 0
|
|
100
|
-
THEN RETURN; END IF; -- not a table published by "pubPrefix"
|
|
101
165
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
END IF;
|
|
166
|
+
CREATE OR REPLACE FUNCTION ${schema}.emit_ddl_start()
|
|
167
|
+
RETURNS event_trigger AS $$
|
|
168
|
+
DECLARE
|
|
169
|
+
schema_specs TEXT;
|
|
170
|
+
message TEXT;
|
|
171
|
+
BEGIN
|
|
172
|
+
SELECT ${schema}.schema_specs() INTO schema_specs;
|
|
110
173
|
|
|
111
|
-
${indexDefinitionsQuery(undefined, `JOIN pg_event_trigger_ddl_commands() ddl on ddl.objid = pg_index.indrelid`)} INTO indexes;
|
|
112
|
-
|
|
113
174
|
SELECT json_build_object(
|
|
114
|
-
'type', '
|
|
175
|
+
'type', 'ddlStart',
|
|
115
176
|
'version', ${PROTOCOL_VERSION},
|
|
116
|
-
'
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
) INTO event;
|
|
123
|
-
|
|
124
|
-
PERFORM pg_logical_emit_message(true, 'zero', event);
|
|
125
|
-
END
|
|
177
|
+
'schema', schema_specs::json,
|
|
178
|
+
'context', ${schema}.get_trigger_context()
|
|
179
|
+
) INTO message;
|
|
180
|
+
|
|
181
|
+
PERFORM pg_logical_emit_message(true, ${lit('zero/' + shardID)}, message);
|
|
182
|
+
END
|
|
126
183
|
$$ LANGUAGE plpgsql;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
CREATE OR REPLACE FUNCTION zero.replicate_create_index()
|
|
132
|
-
RETURNS event_trigger
|
|
133
|
-
AS $$
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
CREATE OR REPLACE FUNCTION ${schema}.emit_ddl_end(tag TEXT)
|
|
187
|
+
RETURNS void AS $$
|
|
134
188
|
DECLARE
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
189
|
+
publications TEXT[];
|
|
190
|
+
cmd RECORD;
|
|
191
|
+
target RECORD;
|
|
192
|
+
pub RECORD;
|
|
193
|
+
in_shard RECORD;
|
|
194
|
+
schema_specs TEXT;
|
|
195
|
+
message TEXT;
|
|
196
|
+
event TEXT;
|
|
197
|
+
BEGIN
|
|
198
|
+
publications := ARRAY[${lit(publications)}];
|
|
199
|
+
|
|
200
|
+
SELECT objid, object_type, object_identity FROM pg_event_trigger_ddl_commands() LIMIT 1 INTO cmd;
|
|
201
|
+
|
|
202
|
+
-- Filter DDL updates that are not relevant to the shard (i.e. publications) when possible.
|
|
203
|
+
|
|
204
|
+
IF cmd.object_type = 'table' OR cmd.object_type = 'table column' THEN
|
|
205
|
+
SELECT ns.nspname as "schema", c.relname as "name" FROM pg_class AS c
|
|
206
|
+
JOIN pg_namespace As ns ON c.relnamespace = ns.oid
|
|
207
|
+
JOIN pg_publication_tables AS pb ON pb.schemaname = ns.nspname AND pb.tablename = c.relname
|
|
208
|
+
WHERE c.oid = cmd.objid AND pb.pubname = ANY (publications)
|
|
209
|
+
INTO target;
|
|
210
|
+
IF target IS NULL THEN
|
|
211
|
+
PERFORM ${schema}.notice_ignore(cmd.object_identity);
|
|
212
|
+
RETURN;
|
|
213
|
+
END IF;
|
|
214
|
+
|
|
215
|
+
cmd.object_type := 'table'; -- normalize the 'table column' target to 'table'
|
|
216
|
+
|
|
217
|
+
ELSIF cmd.object_type = 'index' THEN
|
|
218
|
+
SELECT ns.nspname as "schema", c.relname as "name" FROM pg_class AS c
|
|
219
|
+
JOIN pg_namespace As ns ON c.relnamespace = ns.oid
|
|
220
|
+
JOIN pg_indexes as ind ON ind.schemaname = ns.nspname AND ind.indexname = c.relname
|
|
221
|
+
JOIN pg_publication_tables AS pb ON pb.schemaname = ns.nspname AND pb.tablename = ind.tablename
|
|
222
|
+
WHERE c.oid = cmd.objid AND pb.pubname = ANY (publications)
|
|
223
|
+
INTO target;
|
|
224
|
+
IF target IS NULL THEN
|
|
225
|
+
PERFORM ${schema}.notice_ignore(cmd.object_identity);
|
|
226
|
+
RETURN;
|
|
227
|
+
END IF;
|
|
228
|
+
|
|
229
|
+
ELSIF cmd.object_type = 'publication relation' THEN
|
|
230
|
+
SELECT pb.pubname FROM pg_publication_rel AS rel
|
|
231
|
+
JOIN pg_publication AS pb ON pb.oid = rel.prpubid
|
|
232
|
+
WHERE rel.oid = cmd.objid AND pb.pubname = ANY (publications)
|
|
233
|
+
INTO pub;
|
|
234
|
+
IF pub IS NULL THEN
|
|
235
|
+
PERFORM ${schema}.notice_ignore(cmd.object_identity);
|
|
236
|
+
RETURN;
|
|
237
|
+
END IF;
|
|
238
|
+
|
|
239
|
+
ELSIF cmd.object_type = 'publication namespace' THEN
|
|
240
|
+
SELECT pb.pubname FROM pg_publication_namespace AS ns
|
|
241
|
+
JOIN pg_publication AS pb ON pb.oid = ns.pnpubid
|
|
242
|
+
WHERE ns.oid = cmd.objid AND pb.pubname = ANY (publications)
|
|
243
|
+
INTO pub;
|
|
244
|
+
IF pub IS NULL THEN
|
|
245
|
+
PERFORM ${schema}.notice_ignore(cmd.object_identity);
|
|
246
|
+
RETURN;
|
|
247
|
+
END IF;
|
|
248
|
+
END IF;
|
|
139
249
|
|
|
140
|
-
|
|
141
|
-
THEN RETURN; END IF; -- not an index published by "pubPrefix"
|
|
250
|
+
-- Construct and emit the DdlUpdateEvent message.
|
|
142
251
|
|
|
143
|
-
IF
|
|
252
|
+
IF target IS NOT NULL
|
|
144
253
|
THEN
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
);
|
|
149
|
-
RETURN;
|
|
254
|
+
SELECT json_build_object('tag', tag, cmd.object_type, target) INTO event;
|
|
255
|
+
ELSE
|
|
256
|
+
SELECT json_build_object('tag', tag) INTO event;
|
|
150
257
|
END IF;
|
|
151
258
|
|
|
259
|
+
SELECT ${schema}.schema_specs() INTO schema_specs;
|
|
260
|
+
|
|
152
261
|
SELECT json_build_object(
|
|
153
|
-
'type', '
|
|
262
|
+
'type', 'ddlUpdate',
|
|
154
263
|
'version', ${PROTOCOL_VERSION},
|
|
155
|
-
'
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
)
|
|
161
|
-
|
|
162
|
-
PERFORM pg_logical_emit_message(true, 'zero', event);
|
|
264
|
+
'schema', schema_specs::json,
|
|
265
|
+
'event', event::json,
|
|
266
|
+
'context', ${schema}.get_trigger_context()
|
|
267
|
+
) INTO message;
|
|
268
|
+
|
|
269
|
+
PERFORM pg_logical_emit_message(true, ${lit('zero/' + shardID)}, message);
|
|
163
270
|
END
|
|
164
271
|
$$ LANGUAGE plpgsql;
|
|
165
|
-
|
|
272
|
+
`;
|
|
166
273
|
}
|
|
167
|
-
const
|
|
168
|
-
CREATE
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
274
|
+
const TAGS = [
|
|
275
|
+
'CREATE TABLE',
|
|
276
|
+
'ALTER TABLE',
|
|
277
|
+
'CREATE INDEX',
|
|
278
|
+
'DROP TABLE',
|
|
279
|
+
'DROP INDEX',
|
|
280
|
+
'ALTER PUBLICATION',
|
|
281
|
+
];
|
|
282
|
+
export function createEventTriggerStatements(shardID, publications) {
|
|
283
|
+
// Unlike functions, which are namespaced in shard-specific schemas,
|
|
284
|
+
// EVENT TRIGGER names are in the global namespace and instead have the shardID appended.
|
|
285
|
+
const sharded = append(shardID);
|
|
286
|
+
const schema = sharded('zero');
|
|
287
|
+
const triggers = [createEventFunctionStatements(shardID, publications)];
|
|
288
|
+
// A single ddl_command_start trigger covering all relevant tags.
|
|
289
|
+
triggers.push(`
|
|
290
|
+
DROP EVENT TRIGGER IF EXISTS ${sharded('zero_ddl_start')};
|
|
291
|
+
CREATE EVENT TRIGGER ${sharded('zero_ddl_start')}
|
|
292
|
+
ON ddl_command_start
|
|
293
|
+
WHEN TAG IN (${lit(TAGS)})
|
|
294
|
+
EXECUTE PROCEDURE ${schema}.emit_ddl_start();
|
|
295
|
+
`);
|
|
296
|
+
// A per-tag ddl_command_end trigger that dispatches to ${schema}.emit_ddl_end(tag)
|
|
297
|
+
for (const tag of TAGS) {
|
|
298
|
+
const tagID = tag.toLowerCase().replace(' ', '_');
|
|
299
|
+
triggers.push(`
|
|
300
|
+
CREATE OR REPLACE FUNCTION ${schema}.emit_${tagID}()
|
|
301
|
+
RETURNS event_trigger AS $$
|
|
173
302
|
BEGIN
|
|
174
|
-
|
|
175
|
-
'type', 'ddl',
|
|
176
|
-
'version', ${PROTOCOL_VERSION},
|
|
177
|
-
'event', json_build_object(
|
|
178
|
-
'context', zero.get_trigger_context(),
|
|
179
|
-
'tag', tag,
|
|
180
|
-
dropped, json_agg(json_build_object(
|
|
181
|
-
'schema', schema_name,
|
|
182
|
-
'objectIdentity', object_identity
|
|
183
|
-
))
|
|
184
|
-
)
|
|
185
|
-
) FROM pg_event_trigger_dropped_objects()
|
|
186
|
-
WHERE object_type = type
|
|
187
|
-
INTO event;
|
|
188
|
-
|
|
189
|
-
PERFORM pg_logical_emit_message(true, 'zero', event);
|
|
303
|
+
PERFORM ${schema}.emit_ddl_end(${lit(tag)});
|
|
190
304
|
END
|
|
191
305
|
$$ LANGUAGE plpgsql;
|
|
192
306
|
|
|
193
|
-
CREATE OR REPLACE FUNCTION zero.replicate_drop_table()
|
|
194
|
-
RETURNS event_trigger
|
|
195
|
-
AS $$
|
|
196
|
-
BEGIN
|
|
197
|
-
PERFORM zero.replicate_drop_event('DROP TABLE', 'table', 'tables');
|
|
198
|
-
END
|
|
199
|
-
$$ LANGUAGE plpgsql;
|
|
200
307
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
`
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
replicateCreateIndex(),
|
|
219
|
-
`DROP EVENT TRIGGER IF EXISTS zero_replicate_create_index`,
|
|
220
|
-
`CREATE EVENT TRIGGER zero_replicate_create_index
|
|
221
|
-
ON ddl_command_end
|
|
222
|
-
WHEN TAG IN ('CREATE INDEX')
|
|
223
|
-
EXECUTE PROCEDURE zero.replicate_create_index()`,
|
|
224
|
-
DROP_EVENT_TRIGGERS,
|
|
225
|
-
`DROP EVENT TRIGGER IF EXISTS zero_replicate_drop_table`,
|
|
226
|
-
`CREATE EVENT TRIGGER zero_replicate_drop_table
|
|
227
|
-
ON sql_drop
|
|
228
|
-
WHEN TAG IN ('DROP TABLE')
|
|
229
|
-
EXECUTE PROCEDURE zero.replicate_drop_table()`,
|
|
230
|
-
`DROP EVENT TRIGGER IF EXISTS zero_replicate_drop_index`,
|
|
231
|
-
`CREATE EVENT TRIGGER zero_replicate_drop_index
|
|
232
|
-
ON sql_drop
|
|
233
|
-
WHEN TAG IN ('DROP INDEX')
|
|
234
|
-
EXECUTE PROCEDURE zero.replicate_drop_index()`,
|
|
235
|
-
].join(';\n');
|
|
308
|
+
DROP EVENT TRIGGER IF EXISTS ${sharded(`zero_${tagID}`)};
|
|
309
|
+
CREATE EVENT TRIGGER ${sharded(`zero_${tagID}`)}
|
|
310
|
+
ON ddl_command_end
|
|
311
|
+
WHEN TAG IN (${lit(tag)})
|
|
312
|
+
EXECUTE PROCEDURE ${schema}.emit_${tagID}();
|
|
313
|
+
`);
|
|
314
|
+
}
|
|
315
|
+
// Delete legacy triggers/functions. This should be removable once all early
|
|
316
|
+
// testers have updated.
|
|
317
|
+
for (const trigger of LEGACY_TRIGGER_NAMES) {
|
|
318
|
+
triggers.push(`DROP EVENT TRIGGER IF EXISTS ${sharded(trigger)};`);
|
|
319
|
+
}
|
|
320
|
+
for (const fn of LEGACY_FUNCTION_NAMES) {
|
|
321
|
+
triggers.push(`DROP FUNCTION IF EXISTS zero.${fn};`);
|
|
322
|
+
triggers.push(`DROP FUNCTION IF EXISTS zero.${sharded(fn)};`);
|
|
323
|
+
}
|
|
324
|
+
return triggers.join('');
|
|
236
325
|
}
|
|
326
|
+
const LEGACY_TRIGGER_NAMES = [
|
|
327
|
+
'zero_replicate_create_or_alter_table',
|
|
328
|
+
'zero_replicate_create_index',
|
|
329
|
+
'zero_replicate_alter_publication',
|
|
330
|
+
'zero_replicate_alter_publication_drop',
|
|
331
|
+
'zero_replicate_drop_table',
|
|
332
|
+
'zero_replicate_drop_index',
|
|
333
|
+
];
|
|
334
|
+
const LEGACY_FUNCTION_NAMES = [
|
|
335
|
+
'replicate_create_or_alter_table',
|
|
336
|
+
'replicate_create_index',
|
|
337
|
+
'replicate_alter_publication',
|
|
338
|
+
'replicate_alter_publication_drop',
|
|
339
|
+
'replicate_drop_event',
|
|
340
|
+
'replicate_drop_table',
|
|
341
|
+
'replicate_drop_index',
|
|
342
|
+
'get_trigger_context',
|
|
343
|
+
'emit_all_publications',
|
|
344
|
+
];
|
|
237
345
|
//# sourceMappingURL=ddl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/ddl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/ddl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { PostgresDB } from '../../../../types/pg.js';
|
|
3
|
+
import type { ShardConfig } from '../shard-config.js';
|
|
4
|
+
export declare function initShardSchema(lc: LogContext, db: PostgresDB, shardConfig: ShardConfig): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAGpD,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { runSchemaMigrations, } from '../../../../db/migration.js';
|
|
2
|
+
import { setupTablesAndReplication, unescapedSchema } from './shard.js';
|
|
3
|
+
export async function initShardSchema(lc, db, shardConfig) {
|
|
4
|
+
const setupMigration = {
|
|
5
|
+
migrateSchema: (lc, tx) => setupTablesAndReplication(lc, tx, shardConfig),
|
|
6
|
+
minSafeVersion: 1,
|
|
7
|
+
};
|
|
8
|
+
const schemaVersionMigrationMap = {
|
|
9
|
+
1: setupMigration,
|
|
10
|
+
// There are no incremental migrations yet, but if we were to, say introduce
|
|
11
|
+
// another column, setupTablesAndReplication would be updated the table with
|
|
12
|
+
// the new column, and then there would be an incremental migration here at
|
|
13
|
+
// version `2` that adds the column for databases that were initialized to
|
|
14
|
+
// version `1`.
|
|
15
|
+
};
|
|
16
|
+
await runSchemaMigrations(lc, 'upstream-shard', unescapedSchema(shardConfig.id), db, setupMigration, schemaVersionMigrationMap);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/init.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAC,yBAAyB,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAc,EACd,EAAc,EACd,WAAwB;IAExB,MAAM,cAAc,GAAc;QAChC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC;QACzE,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,MAAM,yBAAyB,GAA4B;QACzD,CAAC,EAAE,cAAc;QACjB,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,eAAe;KAChB,CAAC;IAEF,MAAM,mBAAmB,CACvB,EAAE,EACF,gBAAgB,EAChB,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,EAC/B,EAAE,EACF,cAAc,EACd,yBAAyB,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type postgres from 'postgres';
|
|
2
2
|
import * as v from '../../../../../../shared/src/valita.js';
|
|
3
|
-
import type { FilteredTableSpec, IndexSpec } from '../../../../
|
|
4
|
-
export declare function publishedTableQuery(publications: string[]
|
|
5
|
-
export declare function indexDefinitionsQuery(publications: string[]
|
|
3
|
+
import type { FilteredTableSpec, IndexSpec } from '../../../../db/specs.js';
|
|
4
|
+
export declare function publishedTableQuery(publications: string[]): string;
|
|
5
|
+
export declare function indexDefinitionsQuery(publications: string[]): string;
|
|
6
6
|
declare const publicationSchema: v.ObjectType<{
|
|
7
7
|
pubname: v.Type<string>;
|
|
8
8
|
pubinsert: v.Type<boolean>;
|
|
@@ -21,6 +21,6 @@ export type PublicationInfo = {
|
|
|
21
21
|
* publications that start with "zero_" or "_zero_", but this can be
|
|
22
22
|
* overridden by specifying a specific set of `publications`.
|
|
23
23
|
*/
|
|
24
|
-
export declare function getPublicationInfo(sql: postgres.Sql, publications
|
|
24
|
+
export declare function getPublicationInfo(sql: postgres.Sql, publications: string[]): Promise<PublicationInfo>;
|
|
25
25
|
export {};
|
|
26
26
|
//# sourceMappingURL=published.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/published.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,KAAK,EAAC,iBAAiB,EAAE,SAAS,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-streamer/pg/schema/published.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,KAAK,EAAC,iBAAiB,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAM1E,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAgEzD;AAMD,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,UAwD3D;AAED,QAAA,MAAM,iBAAiB;;;;;;aAMrB,CAAC;AAIH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,eAAe,CAAC,CAiD1B"}
|