@rocicorp/zero 1.10.0-canary.24 → 1.10.0-canary.26
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/analyze-query/src/bin-analyze.js +8 -9
- package/out/analyze-query/src/bin-analyze.js.map +1 -1
- package/out/replicache/src/btree/node.d.ts.map +1 -1
- package/out/replicache/src/btree/node.js +6 -3
- package/out/replicache/src/btree/node.js.map +1 -1
- package/out/replicache/src/btree/read.d.ts +1 -12
- package/out/replicache/src/btree/read.d.ts.map +1 -1
- package/out/replicache/src/btree/read.js +12 -24
- package/out/replicache/src/btree/read.js.map +1 -1
- package/out/replicache/src/dag/gc.d.ts.map +1 -1
- package/out/replicache/src/dag/gc.js +11 -8
- package/out/replicache/src/dag/gc.js.map +1 -1
- package/out/replicache/src/dag/store-impl.d.ts +2 -12
- package/out/replicache/src/dag/store-impl.d.ts.map +1 -1
- package/out/replicache/src/dag/store-impl.js +8 -22
- package/out/replicache/src/dag/store-impl.js.map +1 -1
- package/out/replicache/src/db/rebase.d.ts +2 -14
- package/out/replicache/src/db/rebase.d.ts.map +1 -1
- package/out/replicache/src/db/rebase.js +5 -27
- package/out/replicache/src/db/rebase.js.map +1 -1
- package/out/replicache/src/db/write.js.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.d.ts.map +1 -1
- package/out/replicache/src/kv/expo-sqlite/store.js +5 -28
- package/out/replicache/src/kv/expo-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts +5 -15
- package/out/replicache/src/kv/idb-store-with-mem-fallback.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js +25 -25
- package/out/replicache/src/kv/idb-store-with-mem-fallback.js.map +1 -1
- package/out/replicache/src/kv/idb-store.d.ts +0 -9
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store.js +2 -14
- package/out/replicache/src/kv/idb-store.js.map +1 -1
- package/out/replicache/src/kv/mem-store.d.ts +0 -1
- package/out/replicache/src/kv/mem-store.d.ts.map +1 -1
- package/out/replicache/src/kv/mem-store.js +0 -3
- package/out/replicache/src/kv/mem-store.js.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.d.ts.map +1 -1
- package/out/replicache/src/kv/op-sqlite/store.js +1 -1
- package/out/replicache/src/kv/op-sqlite/store.js.map +1 -1
- package/out/replicache/src/kv/sqlite-store.d.ts +1 -13
- package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
- package/out/replicache/src/kv/sqlite-store.js +6 -73
- package/out/replicache/src/kv/sqlite-store.js.map +1 -1
- package/out/replicache/src/kv/store.d.ts +0 -6
- package/out/replicache/src/kv/store.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.d.ts +5 -10
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.js +9 -16
- package/out/replicache/src/persist/collect-idb-databases.js.map +1 -1
- package/out/replicache/src/persist/persist.d.ts.map +1 -1
- package/out/replicache/src/persist/persist.js +6 -13
- package/out/replicache/src/persist/persist.js.map +1 -1
- package/out/replicache/src/persist/refresh.js +2 -6
- package/out/replicache/src/persist/refresh.js.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts +3 -14
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js +11 -118
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +0 -9
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/replicache/src/transactions.d.ts.map +1 -1
- package/out/replicache/src/transactions.js +1 -1
- package/out/replicache/src/transactions.js.map +1 -1
- package/out/shared/src/arrays.d.ts +0 -5
- package/out/shared/src/arrays.d.ts.map +1 -1
- package/out/shared/src/arrays.js +24 -8
- package/out/shared/src/arrays.js.map +1 -1
- package/out/shared/src/base64.d.ts +19 -0
- package/out/shared/src/base64.d.ts.map +1 -0
- package/out/shared/src/base64.js +40 -0
- package/out/shared/src/base64.js.map +1 -0
- package/out/shared/src/error.d.ts +0 -11
- package/out/shared/src/error.d.ts.map +1 -1
- package/out/shared/src/error.js +1 -35
- package/out/shared/src/error.js.map +1 -1
- package/out/shared/src/hash.d.ts +0 -1
- package/out/shared/src/hash.d.ts.map +1 -1
- package/out/shared/src/hash.js +10 -87
- package/out/shared/src/hash.js.map +1 -1
- package/out/shared/src/iterables.d.ts +0 -2
- package/out/shared/src/iterables.d.ts.map +1 -1
- package/out/shared/src/iterables.js +1 -18
- package/out/shared/src/iterables.js.map +1 -1
- package/out/shared/src/json.d.ts.map +1 -1
- package/out/shared/src/json.js +2 -2
- package/out/shared/src/json.js.map +1 -1
- package/out/shared/src/map.d.ts +2 -24
- package/out/shared/src/map.d.ts.map +1 -1
- package/out/shared/src/map.js +4 -18
- package/out/shared/src/map.js.map +1 -1
- package/out/shared/src/ring-buffer.d.ts +0 -8
- package/out/shared/src/ring-buffer.d.ts.map +1 -1
- package/out/shared/src/ring-buffer.js +1 -22
- package/out/shared/src/ring-buffer.js.map +1 -1
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +2 -2
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/package.js +3 -2
- package/out/zero/package.js.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +0 -1
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +2 -42
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +28 -149
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js +1 -1
- package/out/zero-cache/src/db/create.d.ts.map +1 -1
- package/out/zero-cache/src/db/create.js +1 -4
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts +2 -10
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +6 -10
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +0 -41
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.js +3 -30
- package/out/zero-cache/src/db/specs.js.map +1 -1
- package/out/zero-cache/src/observability/metrics.d.ts.map +1 -1
- package/out/zero-cache/src/observability/metrics.js +7 -2
- package/out/zero-cache/src/observability/metrics.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +4 -13
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +2 -18
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js +17 -25
- package/out/zero-cache/src/server/inspector-delegate.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +1 -8
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/mutator.js +0 -2
- package/out/zero-cache/src/server/mutator.js.map +1 -1
- package/out/zero-cache/src/server/reaper.d.ts.map +1 -1
- package/out/zero-cache/src/server/reaper.js +0 -2
- package/out/zero-cache/src/server/reaper.js.map +1 -1
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/server/replicator.js +2 -8
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/server/runner/zero-dispatcher.js +0 -3
- package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +1 -5
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/analyze.d.ts.map +1 -1
- package/out/zero-cache/src/services/analyze.js +9 -11
- package/out/zero-cache/src/services/analyze.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js +1 -14
- package/out/zero-cache/src/services/change-source/common/backfill-manager.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js +3 -15
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -11
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +2 -21
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +7 -8
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +229 -1513
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +6 -15
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +20 -137
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js +13 -82
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +21 -128
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +0 -2
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +0 -3
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -3
- 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 -3
- 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 +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +3 -8
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/litestream/config-v5.yml +1 -15
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -5
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +1 -7
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +119 -119
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +6 -5
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +16 -16
- package/out/zero-cache/src/services/replicator/change-processor.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 +0 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +2 -27
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.js +2 -3
- package/out/zero-cache/src/services/replicator/write-worker-client.js.map +1 -1
- package/out/zero-cache/src/services/replicator/write-worker.js +5 -24
- package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts +0 -12
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +15 -27
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/runner.d.ts.map +1 -1
- package/out/zero-cache/src/services/runner.js +1 -1
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -45
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +1 -133
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +1 -14
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +4 -30
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js +2 -2
- package/out/zero-cache/src/services/view-syncer/inspect-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +1 -2
- 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 -48
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.js +6 -2
- package/out/zero-cache/src/services/view-syncer/query-covering.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +4 -42
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +28 -117
- 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 +1 -11
- 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 +95 -466
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +0 -32
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +4 -43
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/profiler.d.ts +0 -12
- package/out/zero-cache/src/types/profiler.d.ts.map +1 -1
- package/out/zero-cache/src/types/profiler.js +1 -46
- package/out/zero-cache/src/types/profiler.js.map +1 -1
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
- package/out/zero-cache/src/types/row-key.js +5 -5
- package/out/zero-cache/src/types/row-key.js.map +1 -1
- package/out/zero-cache/src/workers/connect-params.d.ts +7 -0
- package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connect-params.js +20 -1
- package/out/zero-cache/src/workers/connect-params.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +4 -4
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +8 -8
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +0 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +2 -4
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +16 -21
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +1 -10
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/connection-manager.d.ts +0 -20
- package/out/zero-client/src/client/connection-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-manager.js +13 -77
- package/out/zero-client/src/client/connection-manager.js.map +1 -1
- package/out/zero-client/src/client/connection-status-enum.d.ts +0 -2
- package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -1
- package/out/zero-client/src/client/connection-status-enum.js +1 -3
- package/out/zero-client/src/client/connection-status-enum.js.map +1 -1
- package/out/zero-client/src/client/connection.d.ts +0 -6
- package/out/zero-client/src/client/connection.d.ts.map +1 -1
- package/out/zero-client/src/client/connection.js +1 -2
- package/out/zero-client/src/client/connection.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +2 -27
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/context.js +1 -112
- package/out/zero-client/src/client/context.js.map +1 -1
- package/out/zero-client/src/client/custom.js +2 -2
- package/out/zero-client/src/client/custom.js.map +1 -1
- package/out/zero-client/src/client/error.js +1 -1
- package/out/zero-client/src/client/inspector/lazy-inspector.js +2 -2
- package/out/zero-client/src/client/inspector/lazy-inspector.js.map +1 -1
- package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
- package/out/zero-client/src/client/ivm-branch.js +3 -20
- package/out/zero-client/src/client/ivm-branch.js.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.js +1 -1
- package/out/zero-client/src/client/mutation-tracker.js.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -1
- package/out/zero-client/src/client/mutator-proxy.js +1 -2
- package/out/zero-client/src/client/mutator-proxy.js.map +1 -1
- package/out/zero-client/src/client/options.d.ts +0 -3
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/options.js.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts +0 -2
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.js +14 -50
- package/out/zero-client/src/client/query-manager.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +0 -1
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.js +6 -9
- package/out/zero-client/src/client/zero-rep.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +3 -18
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +36 -123
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-client/src/types/query-result.d.ts +0 -2
- package/out/zero-client/src/types/query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.d.ts +5 -5
- package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
- package/out/zero-protocol/src/analyze-query-result.js +1 -1
- package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +1 -64
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +54 -225
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts +13 -0
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js +30 -1
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +2 -2
- package/out/zero-protocol/src/error.d.ts +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +6 -6
- package/out/zero-protocol/src/poke.d.ts +11 -4
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +3 -2
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/protocol-flag-enum.d.ts +7 -0
- package/out/zero-protocol/src/protocol-flag-enum.d.ts.map +1 -0
- package/out/zero-protocol/src/protocol-flag-enum.js +7 -0
- package/out/zero-protocol/src/protocol-flag-enum.js.map +1 -0
- package/out/zero-protocol/src/protocol-flag.d.ts +14 -0
- package/out/zero-protocol/src/protocol-flag.d.ts.map +1 -0
- package/out/zero-protocol/src/protocol-flag.js +8 -0
- package/out/zero-protocol/src/protocol-flag.js.map +1 -0
- package/out/zero-protocol/src/protocol-version.d.ts +30 -6
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +1 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/query-hash.d.ts +2 -7
- package/out/zero-protocol/src/query-hash.d.ts.map +1 -1
- package/out/zero-protocol/src/query-hash.js +10 -10
- package/out/zero-protocol/src/query-hash.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts +4 -5
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-query.js +9 -86
- package/out/zero-react/src/use-query.js.map +1 -1
- package/out/zero-solid/src/solid-view.d.ts +0 -17
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/zero-solid/src/solid-view.js +1 -39
- package/out/zero-solid/src/solid-view.js.map +1 -1
- package/out/zero-solid/src/use-query.js +3 -5
- package/out/zero-solid/src/use-query.js.map +1 -1
- package/out/zql/src/builder/builder.d.ts +0 -19
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +11 -28
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/debug-delegate.d.ts +1 -6
- package/out/zql/src/builder/debug-delegate.d.ts.map +1 -1
- package/out/zql/src/builder/debug-delegate.js +2 -14
- package/out/zql/src/builder/debug-delegate.js.map +1 -1
- package/out/zql/src/ivm/array-view.d.ts +0 -29
- package/out/zql/src/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/ivm/array-view.js +12 -63
- package/out/zql/src/ivm/array-view.js.map +1 -1
- package/out/zql/src/ivm/cap.d.ts.map +1 -1
- package/out/zql/src/ivm/cap.js +3 -5
- package/out/zql/src/ivm/cap.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +3 -8
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/exists.d.ts +1 -1
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/fan-in.d.ts +2 -2
- package/out/zql/src/ivm/fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-in.js +5 -6
- package/out/zql/src/ivm/fan-in.js.map +1 -1
- package/out/zql/src/ivm/fan-out.d.ts +2 -2
- package/out/zql/src/ivm/fan-out.d.ts.map +1 -1
- package/out/zql/src/ivm/fan-out.js.map +1 -1
- package/out/zql/src/ivm/filter-operators.d.ts +6 -7
- package/out/zql/src/ivm/filter-operators.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-operators.js +12 -29
- package/out/zql/src/ivm/filter-operators.js.map +1 -1
- package/out/zql/src/ivm/filter.d.ts +2 -2
- package/out/zql/src/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/ivm/filter.js +4 -7
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/flipped-join.js +2 -2
- package/out/zql/src/ivm/flipped-join.js.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.d.ts.map +1 -1
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js +4 -6
- package/out/zql/src/ivm/maybe-split-and-push-edit-change.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +3 -15
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +23 -57
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/operator.d.ts +0 -40
- package/out/zql/src/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/ivm/operator.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +4 -3
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js +7 -9
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js +4 -9
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zql/src/ivm/view.d.ts +0 -15
- package/out/zql/src/ivm/view.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator-registry.d.ts.map +1 -1
- package/out/zql/src/mutate/mutator-registry.js +2 -2
- package/out/zql/src/mutate/mutator-registry.js.map +1 -1
- package/out/zql/src/planner/planner-builder.d.ts +3 -12
- package/out/zql/src/planner/planner-builder.d.ts.map +1 -1
- package/out/zql/src/planner/planner-builder.js +20 -40
- package/out/zql/src/planner/planner-builder.js.map +1 -1
- package/out/zql/src/planner/planner-connection.d.ts +2 -28
- package/out/zql/src/planner/planner-connection.d.ts.map +1 -1
- package/out/zql/src/planner/planner-connection.js +8 -108
- package/out/zql/src/planner/planner-connection.js.map +1 -1
- package/out/zql/src/planner/planner-debug.d.ts +1 -1
- package/out/zql/src/planner/planner-debug.d.ts.map +1 -1
- package/out/zql/src/planner/planner-debug.js +8 -3
- package/out/zql/src/planner/planner-debug.js.map +1 -1
- package/out/zql/src/planner/planner-fan-out.d.ts +0 -1
- package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -1
- package/out/zql/src/planner/planner-fan-out.js +0 -3
- package/out/zql/src/planner/planner-fan-out.js.map +1 -1
- package/out/zql/src/planner/planner-graph.d.ts +0 -2
- package/out/zql/src/planner/planner-graph.d.ts.map +1 -1
- package/out/zql/src/planner/planner-graph.js +0 -2
- package/out/zql/src/planner/planner-graph.js.map +1 -1
- package/out/zql/src/planner/planner-join.d.ts +0 -2
- package/out/zql/src/planner/planner-join.d.ts.map +1 -1
- package/out/zql/src/planner/planner-join.js +0 -7
- package/out/zql/src/planner/planner-join.js.map +1 -1
- package/out/zql/src/planner/planner-node.d.ts +1 -2
- package/out/zql/src/planner/planner-node.d.ts.map +1 -1
- package/out/zql/src/planner/planner-node.js.map +1 -1
- package/out/zql/src/planner/planner-source.d.ts +2 -2
- package/out/zql/src/planner/planner-source.d.ts.map +1 -1
- package/out/zql/src/planner/planner-source.js +2 -2
- package/out/zql/src/planner/planner-source.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts +1 -9
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
- package/out/zql/src/query/query-delegate-base.js +36 -132
- package/out/zql/src/query/query-delegate-base.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +1 -50
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +14 -25
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +94 -397
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internals.d.ts +11 -21
- package/out/zql/src/query/query-internals.d.ts.map +1 -1
- package/out/zql/src/query/query-internals.js.map +1 -1
- package/out/zql/src/query/query.d.ts +2 -11
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.d.ts +2 -3
- package/out/zql/src/query/runnable-query-impl.d.ts.map +1 -1
- package/out/zql/src/query/runnable-query-impl.js +2 -15
- package/out/zql/src/query/runnable-query-impl.js.map +1 -1
- package/out/zql/src/query/typed-view.d.ts +1 -1
- package/out/zql/src/query/typed-view.d.ts.map +1 -1
- package/out/zqlite/src/db.d.ts +1 -9
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +2 -8
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/query-builder.d.ts +1 -1
- package/out/zqlite/src/query-builder.d.ts.map +1 -1
- package/out/zqlite/src/query-builder.js +2 -4
- package/out/zqlite/src/query-builder.js.map +1 -1
- package/out/zqlite/src/query-delegate.d.ts.map +1 -1
- package/out/zqlite/src/query-delegate.js +6 -5
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.js +30 -2
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +1 -1
- package/out/zqlite/src/sqlite-stat-fanout.js +5 -4
- package/out/zqlite/src/sqlite-stat-fanout.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +3 -16
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +14 -33
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +3 -2
- package/out/replicache/src/dag/invalid-ref-count-error.d.ts +0 -12
- package/out/replicache/src/dag/invalid-ref-count-error.d.ts.map +0 -1
- package/out/replicache/src/dag/invalid-ref-count-error.js +0 -19
- package/out/replicache/src/dag/invalid-ref-count-error.js.map +0 -1
- package/out/shared/src/xxhash32.d.ts +0 -36
- package/out/shared/src/xxhash32.d.ts.map +0 -1
- package/out/shared/src/xxhash32.js +0 -51
- package/out/shared/src/xxhash32.js.map +0 -1
- package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
- package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
- package/out/zero-cache/src/db/index-predicate.js +0 -46
- package/out/zero-cache/src/db/index-predicate.js.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts +0 -19
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js +0 -581
- package/out/zero-cache/src/services/change-source/pg/schema/index-predicate.js.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js +0 -131
- package/out/zero-cache/src/services/litestream/litestream-checkpointer.js.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -70
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.js +0 -101
- package/out/zero-cache/src/services/litestream/litestream-controller.js.map +0 -1
- package/out/zero-cache/src/services/profz.d.ts +0 -7
- package/out/zero-cache/src/services/profz.d.ts.map +0 -1
- package/out/zero-cache/src/services/profz.js +0 -103
- package/out/zero-cache/src/services/profz.js.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.js +0 -62
- package/out/zero-cache/src/services/view-syncer/hydration-budget.js.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js +0 -78
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.js.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts +0 -95
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js +0 -155
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.js.map +0 -1
- package/out/zero-protocol/src/query-hash-visitor.d.ts +0 -81
- package/out/zero-protocol/src/query-hash-visitor.d.ts.map +0 -1
- package/out/zero-protocol/src/query-hash-visitor.js +0 -324
- package/out/zero-protocol/src/query-hash-visitor.js.map +0 -1
- package/out/zql/src/builder/correlated-predicate-pushdown.d.ts +0 -43
- package/out/zql/src/builder/correlated-predicate-pushdown.d.ts.map +0 -1
- package/out/zql/src/builder/correlated-predicate-pushdown.js +0 -161
- package/out/zql/src/builder/correlated-predicate-pushdown.js.map +0 -1
- package/out/zql/src/ivm/connection-index.d.ts +0 -68
- package/out/zql/src/ivm/connection-index.d.ts.map +0 -1
- package/out/zql/src/ivm/connection-index.js +0 -149
- package/out/zql/src/ivm/connection-index.js.map +0 -1
- package/out/zql/src/ivm/deferred-input.d.ts +0 -44
- package/out/zql/src/ivm/deferred-input.d.ts.map +0 -1
- package/out/zql/src/ivm/deferred-input.js +0 -89
- package/out/zql/src/ivm/deferred-input.js.map +0 -1
- package/out/zql/src/planner/planner-filter.d.ts +0 -59
- package/out/zql/src/planner/planner-filter.d.ts.map +0 -1
- package/out/zql/src/planner/planner-filter.js +0 -116
- package/out/zql/src/planner/planner-filter.js.map +0 -1
- package/out/zql/src/query/query-transitions.d.ts +0 -171
- package/out/zql/src/query/query-transitions.d.ts.map +0 -1
- package/out/zql/src/query/query-transitions.js +0 -204
- package/out/zql/src/query/query-transitions.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-result.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/types/query-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"query-result.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/types/query-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EACV;QACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;KACtC,GACD;QACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;KACtC,CAAC;CACP,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC"}
|
|
@@ -37,7 +37,7 @@ declare const bestPlanSelectedEventJSONSchema: v.ObjectType<{
|
|
|
37
37
|
declare const nodeConstraintEventJSONSchema: v.ObjectType<{
|
|
38
38
|
type: v.Type<"node-constraint">;
|
|
39
39
|
attemptNumber: v.Optional<number>;
|
|
40
|
-
nodeType: v.UnionType<[v.Type<"connection">, v.Type<"join">, v.Type<"fan-out">, v.Type<"fan-in">, v.Type<"
|
|
40
|
+
nodeType: v.UnionType<[v.Type<"connection">, v.Type<"join">, v.Type<"fan-out">, v.Type<"fan-in">, v.Type<"terminus">]>;
|
|
41
41
|
node: v.Type<string>;
|
|
42
42
|
branchPattern: v.ArrayType<v.Type<number>>;
|
|
43
43
|
constraint: v.Optional<Record<string, unknown> | null>;
|
|
@@ -118,7 +118,7 @@ declare const planDebugEventJSONSchema: v.UnionType<[v.ObjectType<{
|
|
|
118
118
|
}, undefined>, v.ObjectType<{
|
|
119
119
|
type: v.Type<"node-cost">;
|
|
120
120
|
attemptNumber: v.Optional<number>;
|
|
121
|
-
nodeType: v.UnionType<[v.Type<"connection">, v.Type<"join">, v.Type<"fan-out">, v.Type<"fan-in">, v.Type<"
|
|
121
|
+
nodeType: v.UnionType<[v.Type<"connection">, v.Type<"join">, v.Type<"fan-out">, v.Type<"fan-in">, v.Type<"terminus">]>;
|
|
122
122
|
node: v.Type<string>;
|
|
123
123
|
branchPattern: v.ArrayType<v.Type<number>>;
|
|
124
124
|
downstreamChildSelectivity: v.Type<number>;
|
|
@@ -136,7 +136,7 @@ declare const planDebugEventJSONSchema: v.UnionType<[v.ObjectType<{
|
|
|
136
136
|
}, undefined>, v.ObjectType<{
|
|
137
137
|
type: v.Type<"node-constraint">;
|
|
138
138
|
attemptNumber: v.Optional<number>;
|
|
139
|
-
nodeType: v.UnionType<[v.Type<"connection">, v.Type<"join">, v.Type<"fan-out">, v.Type<"fan-in">, v.Type<"
|
|
139
|
+
nodeType: v.UnionType<[v.Type<"connection">, v.Type<"join">, v.Type<"fan-out">, v.Type<"fan-in">, v.Type<"terminus">]>;
|
|
140
140
|
node: v.Type<string>;
|
|
141
141
|
branchPattern: v.ArrayType<v.Type<number>>;
|
|
142
142
|
constraint: v.Optional<Record<string, unknown> | null>;
|
|
@@ -240,7 +240,7 @@ export declare const analyzeQueryResultSchema: v.ObjectType<{
|
|
|
240
240
|
ordering?: readonly (readonly [string, "desc" | "asc"])[] | undefined;
|
|
241
241
|
joinType?: "semi" | "flipped" | "unflippable" | undefined;
|
|
242
242
|
type: "node-cost";
|
|
243
|
-
nodeType: "join" | "
|
|
243
|
+
nodeType: "join" | "connection" | "fan-out" | "fan-in" | "terminus";
|
|
244
244
|
node: string;
|
|
245
245
|
branchPattern: number[];
|
|
246
246
|
downstreamChildSelectivity: number;
|
|
@@ -256,7 +256,7 @@ export declare const analyzeQueryResultSchema: v.ObjectType<{
|
|
|
256
256
|
attemptNumber?: number | undefined;
|
|
257
257
|
constraint?: Record<string, unknown> | null | undefined;
|
|
258
258
|
type: "node-constraint";
|
|
259
|
-
nodeType: "join" | "
|
|
259
|
+
nodeType: "join" | "connection" | "fan-out" | "fan-in" | "terminus";
|
|
260
260
|
node: string;
|
|
261
261
|
branchPattern: number[];
|
|
262
262
|
from: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-query-result.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/analyze-query-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAKhD,eAAO,MAAM,sBAAsB,gCAAuB,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB,gDAAmC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,iBAAiB,sHAA+B,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB,sIAA8B,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAe9D,QAAA,MAAM,2BAA2B;;;;aAI/B,CAAC;AAiBH,QAAA,MAAM,iCAAiC;;;;;;aAMrC,CAAC;AAiCH,QAAA,MAAM,yBAAyB;;;;aAI7B,CAAC;AAEH,QAAA,MAAM,+BAA+B;;;;;;;;;aAWnC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze-query-result.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/analyze-query-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAKhD,eAAO,MAAM,sBAAsB,gCAAuB,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB,gDAAmC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,iBAAiB,sHAA+B,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB,sIAA8B,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAe9D,QAAA,MAAM,2BAA2B;;;;aAI/B,CAAC;AAiBH,QAAA,MAAM,iCAAiC;;;;;;aAMrC,CAAC;AAiCH,QAAA,MAAM,yBAAyB;;;;aAI7B,CAAC;AAEH,QAAA,MAAM,+BAA+B;;;;;;;;;aAWnC,CAAC;AAuBH,QAAA,MAAM,6BAA6B;;;;;;;;aAQjC,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAU7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,GAC9B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;IAKnC,8CAA8C;;;;IAI9C,2CAA2C;;IAE3C,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQ/B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -74,7 +74,7 @@ var bestPlanSelectedEventJSONSchema = valita_exports.object({
|
|
|
74
74
|
type: joinTypeSchema
|
|
75
75
|
}))
|
|
76
76
|
});
|
|
77
|
-
var nodeTypeSchema = valita_exports.union(valita_exports.literal("connection"), valita_exports.literal("join"), valita_exports.literal("fan-out"), valita_exports.literal("fan-in"), valita_exports.literal("
|
|
77
|
+
var nodeTypeSchema = valita_exports.union(valita_exports.literal("connection"), valita_exports.literal("join"), valita_exports.literal("fan-out"), valita_exports.literal("fan-in"), valita_exports.literal("terminus"));
|
|
78
78
|
var nodeCostEventJSONSchema = valita_exports.object({
|
|
79
79
|
type: valita_exports.literal("node-cost"),
|
|
80
80
|
attemptNumber: valita_exports.number().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-query-result.js","names":[],"sources":["../../../../zero-protocol/src/analyze-query-result.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\n\nimport {conditionSchema, orderingSchema} from './ast.ts';\nimport {rowSchema} from './data.ts';\n\nexport const rowCountsByQuerySchema = v.record(v.number());\nexport type RowCountsByQuery = v.Infer<typeof rowCountsByQuerySchema>;\n\nexport const rowCountsBySourceSchema = v.record(rowCountsByQuerySchema);\nexport type RowCountsBySource = v.Infer<typeof rowCountsBySourceSchema>;\n\nexport const rowsByQuerySchema = v.record(v.array(rowSchema));\nexport type RowsByQuery = v.Infer<typeof rowsByQuerySchema>;\n\nexport const rowsBySourceSchema = v.record(rowsByQuerySchema);\nexport type RowsBySource = v.Infer<typeof rowsBySourceSchema>;\n\n// Planner debug event schemas\n\nconst costEstimateJSONSchema = v.object({\n startupCost: v.number(),\n scanEst: v.number(),\n cost: v.number(),\n returnedRows: v.number(),\n selectivity: v.number(),\n limit: v.number().optional(),\n});\n\nconst plannerConstraintSchema = v.record(v.union(v.unknown(), v.null()));\n\nconst attemptStartEventJSONSchema = v.object({\n type: v.literal('attempt-start'),\n attemptNumber: v.number(),\n totalAttempts: v.number(),\n});\n\nconst connectionCostsEventJSONSchema = v.object({\n type: v.literal('connection-costs'),\n attemptNumber: v.number(),\n costs: v.array(\n v.object({\n connection: v.string(),\n cost: v.number(),\n costEstimate: costEstimateJSONSchema,\n pinned: v.boolean(),\n constraints: v.record(v.union(plannerConstraintSchema, v.null())),\n constraintCosts: v.record(costEstimateJSONSchema),\n }),\n ),\n});\n\nconst connectionSelectedEventJSONSchema = v.object({\n type: v.literal('connection-selected'),\n attemptNumber: v.number(),\n connection: v.string(),\n cost: v.number(),\n isRoot: v.boolean(),\n});\n\nconst constraintsPropagatedEventJSONSchema = v.object({\n type: v.literal('constraints-propagated'),\n attemptNumber: v.number(),\n connectionConstraints: v.array(\n v.object({\n connection: v.string(),\n constraints: v.record(v.union(plannerConstraintSchema, v.null())),\n constraintCosts: v.record(costEstimateJSONSchema),\n }),\n ),\n});\n\nconst joinTypeSchema = v.union(\n v.literal('semi'),\n v.literal('flipped'),\n v.literal('unflippable'),\n);\n\nconst planCompleteEventJSONSchema = v.object({\n type: v.literal('plan-complete'),\n attemptNumber: v.number(),\n totalCost: v.number(),\n flipPattern: v.number(),\n joinStates: v.array(\n v.object({\n join: v.string(),\n type: joinTypeSchema,\n }),\n ),\n});\n\nconst planFailedEventJSONSchema = v.object({\n type: v.literal('plan-failed'),\n attemptNumber: v.number(),\n reason: v.string(),\n});\n\nconst bestPlanSelectedEventJSONSchema = v.object({\n type: v.literal('best-plan-selected'),\n bestAttemptNumber: v.number(),\n totalCost: v.number(),\n flipPattern: v.number(),\n joinStates: v.array(\n v.object({\n join: v.string(),\n type: joinTypeSchema,\n }),\n ),\n});\n\nconst nodeTypeSchema = v.union(\n v.literal('connection'),\n v.literal('join'),\n v.literal('fan-out'),\n v.literal('fan-in'),\n v.literal('
|
|
1
|
+
{"version":3,"file":"analyze-query-result.js","names":[],"sources":["../../../../zero-protocol/src/analyze-query-result.ts"],"sourcesContent":["import * as v from '../../shared/src/valita.ts';\n\nimport {conditionSchema, orderingSchema} from './ast.ts';\nimport {rowSchema} from './data.ts';\n\nexport const rowCountsByQuerySchema = v.record(v.number());\nexport type RowCountsByQuery = v.Infer<typeof rowCountsByQuerySchema>;\n\nexport const rowCountsBySourceSchema = v.record(rowCountsByQuerySchema);\nexport type RowCountsBySource = v.Infer<typeof rowCountsBySourceSchema>;\n\nexport const rowsByQuerySchema = v.record(v.array(rowSchema));\nexport type RowsByQuery = v.Infer<typeof rowsByQuerySchema>;\n\nexport const rowsBySourceSchema = v.record(rowsByQuerySchema);\nexport type RowsBySource = v.Infer<typeof rowsBySourceSchema>;\n\n// Planner debug event schemas\n\nconst costEstimateJSONSchema = v.object({\n startupCost: v.number(),\n scanEst: v.number(),\n cost: v.number(),\n returnedRows: v.number(),\n selectivity: v.number(),\n limit: v.number().optional(),\n});\n\nconst plannerConstraintSchema = v.record(v.union(v.unknown(), v.null()));\n\nconst attemptStartEventJSONSchema = v.object({\n type: v.literal('attempt-start'),\n attemptNumber: v.number(),\n totalAttempts: v.number(),\n});\n\nconst connectionCostsEventJSONSchema = v.object({\n type: v.literal('connection-costs'),\n attemptNumber: v.number(),\n costs: v.array(\n v.object({\n connection: v.string(),\n cost: v.number(),\n costEstimate: costEstimateJSONSchema,\n pinned: v.boolean(),\n constraints: v.record(v.union(plannerConstraintSchema, v.null())),\n constraintCosts: v.record(costEstimateJSONSchema),\n }),\n ),\n});\n\nconst connectionSelectedEventJSONSchema = v.object({\n type: v.literal('connection-selected'),\n attemptNumber: v.number(),\n connection: v.string(),\n cost: v.number(),\n isRoot: v.boolean(),\n});\n\nconst constraintsPropagatedEventJSONSchema = v.object({\n type: v.literal('constraints-propagated'),\n attemptNumber: v.number(),\n connectionConstraints: v.array(\n v.object({\n connection: v.string(),\n constraints: v.record(v.union(plannerConstraintSchema, v.null())),\n constraintCosts: v.record(costEstimateJSONSchema),\n }),\n ),\n});\n\nconst joinTypeSchema = v.union(\n v.literal('semi'),\n v.literal('flipped'),\n v.literal('unflippable'),\n);\n\nconst planCompleteEventJSONSchema = v.object({\n type: v.literal('plan-complete'),\n attemptNumber: v.number(),\n totalCost: v.number(),\n flipPattern: v.number(),\n joinStates: v.array(\n v.object({\n join: v.string(),\n type: joinTypeSchema,\n }),\n ),\n});\n\nconst planFailedEventJSONSchema = v.object({\n type: v.literal('plan-failed'),\n attemptNumber: v.number(),\n reason: v.string(),\n});\n\nconst bestPlanSelectedEventJSONSchema = v.object({\n type: v.literal('best-plan-selected'),\n bestAttemptNumber: v.number(),\n totalCost: v.number(),\n flipPattern: v.number(),\n joinStates: v.array(\n v.object({\n join: v.string(),\n type: joinTypeSchema,\n }),\n ),\n});\n\nconst nodeTypeSchema = v.union(\n v.literal('connection'),\n v.literal('join'),\n v.literal('fan-out'),\n v.literal('fan-in'),\n v.literal('terminus'),\n);\n\nconst nodeCostEventJSONSchema = v.object({\n type: v.literal('node-cost'),\n attemptNumber: v.number().optional(),\n nodeType: nodeTypeSchema,\n node: v.string(),\n branchPattern: v.array(v.number()),\n downstreamChildSelectivity: v.number(),\n costEstimate: costEstimateJSONSchema,\n filters: conditionSchema.optional(),\n ordering: orderingSchema.optional(),\n joinType: joinTypeSchema.optional(),\n});\n\nconst nodeConstraintEventJSONSchema = v.object({\n type: v.literal('node-constraint'),\n attemptNumber: v.number().optional(),\n nodeType: nodeTypeSchema,\n node: v.string(),\n branchPattern: v.array(v.number()),\n constraint: v.union(plannerConstraintSchema, v.null()).optional(),\n from: v.string(),\n});\n\nconst planDebugEventJSONSchema = v.union(\n attemptStartEventJSONSchema,\n connectionCostsEventJSONSchema,\n connectionSelectedEventJSONSchema,\n constraintsPropagatedEventJSONSchema,\n planCompleteEventJSONSchema,\n planFailedEventJSONSchema,\n bestPlanSelectedEventJSONSchema,\n nodeCostEventJSONSchema,\n nodeConstraintEventJSONSchema,\n);\n\nexport type PlanDebugEventJSON = v.Infer<typeof planDebugEventJSONSchema>;\n\nexport {\n attemptStartEventJSONSchema,\n connectionSelectedEventJSONSchema,\n planFailedEventJSONSchema,\n bestPlanSelectedEventJSONSchema,\n nodeConstraintEventJSONSchema,\n};\n\nexport const analyzeQueryResultSchema = v.object({\n warnings: v.array(v.string()),\n syncedRows: v.record(v.array(rowSchema)).optional(),\n syncedRowCount: v.number(),\n start: v.number(),\n /** @deprecated Use start + elapsed instead */\n end: v.number(),\n elapsed: v.number().optional(),\n afterPermissions: v.string().optional(),\n /** @deprecated Use readRowCountsByQuery */\n vendedRowCounts: rowCountsBySourceSchema.optional(),\n /** @deprecated Use readRows */\n vendedRows: rowsBySourceSchema.optional(),\n sqlitePlans: v.record(v.array(v.string())).optional(),\n readRows: rowsBySourceSchema.optional(),\n readRowCountsByQuery: rowCountsBySourceSchema.optional(),\n readRowCount: v.number().optional(),\n dbScansByQuery: rowCountsBySourceSchema.optional(),\n joinPlans: v.array(planDebugEventJSONSchema).optional(),\n});\n\nexport type AnalyzeQueryResult = v.Infer<typeof analyzeQueryResultSchema>;\n"],"mappings":"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"}
|
|
@@ -146,70 +146,7 @@ export type CorrelatedSubqueryCondition = {
|
|
|
146
146
|
[planIdSymbol]?: number | undefined;
|
|
147
147
|
};
|
|
148
148
|
export type CorrelatedSubqueryConditionOperator = 'EXISTS' | 'NOT EXISTS';
|
|
149
|
-
declare
|
|
150
|
-
/**
|
|
151
|
-
* An {@link AST} in its normalized form: `related` is sorted, `where` is
|
|
152
|
-
* flattened and sorted, and every field is present, in a fixed order. Two ASTs
|
|
153
|
-
* that describe the same query have the same JSON encoding, and thus the same
|
|
154
|
-
* hash, once normalized.
|
|
155
|
-
*
|
|
156
|
-
* The tag only exists in the type, so the only way to get one is from
|
|
157
|
-
* {@link normalizeAST}, {@link normalizedAST} or {@link tableAST}. Spreading
|
|
158
|
-
* one keeps the tag, which is what lets a query builder derive a normalized
|
|
159
|
-
* AST from another one by replacing a field it knows to be safe.
|
|
160
|
-
*/
|
|
161
|
-
export type NormalizedAST = Required<AST> & {
|
|
162
|
-
readonly [normalizedTag]: true;
|
|
163
|
-
};
|
|
164
|
-
export declare function normalizeAST(ast: AST): NormalizedAST;
|
|
165
|
-
/**
|
|
166
|
-
* Normalizes a single level of an AST, assuming that the ASTs of its
|
|
167
|
-
* subqueries (i.e. those in `related` and in correlated subquery conditions)
|
|
168
|
-
* are already normalized and that the `related` entries have the shape that
|
|
169
|
-
* {@link normalizedRelated} gives them.
|
|
170
|
-
*
|
|
171
|
-
* This lets a query builder keep its AST normalized as it builds it up
|
|
172
|
-
* instead of normalizing the whole tree afterwards. A builder that knows
|
|
173
|
-
* which of the rules a step can break at all is better off applying just
|
|
174
|
-
* those (see {@link tableAST}, {@link insertRelated} and
|
|
175
|
-
* {@link normalizeCondition}).
|
|
176
|
-
*/
|
|
177
|
-
export declare function normalizedAST(ast: AST): NormalizedAST;
|
|
178
|
-
/**
|
|
179
|
-
* The normalized AST that selects a whole table. Spreading it (or any other
|
|
180
|
-
* normalized AST) and replacing a field keeps the field order, since a
|
|
181
|
-
* normalized AST has every field.
|
|
182
|
-
*/
|
|
183
|
-
export declare function tableAST(table: string, alias?: string | undefined): NormalizedAST;
|
|
184
|
-
/**
|
|
185
|
-
* Adds `subquery` to the `related` of a normalized AST, at the position that
|
|
186
|
-
* keeps it sorted.
|
|
187
|
-
*/
|
|
188
|
-
export declare function insertRelated(related: readonly CorrelatedSubquery[] | undefined, subquery: CorrelatedSubquery): readonly CorrelatedSubquery[];
|
|
189
|
-
/**
|
|
190
|
-
* Gives a correlated subquery the shape that a normalized AST has: every
|
|
191
|
-
* field, in a fixed order (see {@link normalizedAST}). Its `subquery` must
|
|
192
|
-
* already be normalized.
|
|
193
|
-
*/
|
|
194
|
-
export declare function normalizedRelated(related: CorrelatedSubquery): Required<CorrelatedSubquery>;
|
|
195
|
-
/**
|
|
196
|
-
* Normalizes a condition, assuming that the ASTs of any correlated subqueries
|
|
197
|
-
* it contains are already normalized.
|
|
198
|
-
*
|
|
199
|
-
* Like {@link normalizedAST}, this rebuilds every node with its fields in a
|
|
200
|
-
* fixed order, so that structurally equal conditions have the same JSON
|
|
201
|
-
* encoding (and thus the same hash) no matter how they were put together.
|
|
202
|
-
* That includes a round trip through Postgres, whose jsonb type reorders
|
|
203
|
-
* object keys: without the rebuild, every query record reloaded from the CVR
|
|
204
|
-
* re-hashed to a different transformationHash than was stored, making it look
|
|
205
|
-
* changed and re-execute on every view-syncer restart.
|
|
206
|
-
*/
|
|
207
|
-
export declare function normalizeCondition(cond: Condition): Condition;
|
|
208
|
-
/**
|
|
209
|
-
* Maps the table and column names of `ast`. The result is not a
|
|
210
|
-
* {@link NormalizedAST} even if `ast` was normalized: the names it sorts by
|
|
211
|
-
* are the ones that changed.
|
|
212
|
-
*/
|
|
149
|
+
export declare function normalizeAST(ast: AST): Required<AST>;
|
|
213
150
|
export declare function mapAST(ast: AST, mapper: NameMapper): Required<AST>;
|
|
214
151
|
export declare function mapCondition(cond: Condition, table: string, mapper: NameMapper): Condition;
|
|
215
152
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/ast.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAY,KAAK,GAAG,EAAC,MAAM,WAAW,CAAC;AAE9C,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,eAAO,MAAM,cAAc,gBAAa,CAAC;AACzC,eAAO,MAAM,aAAa,eAAW,CAAC;AACtC,eAAO,MAAM,YAAY,eAAmB,CAAC;AAM7C,eAAO,MAAM,cAAc,wDAAyC,CAAC;AACrE,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,eAAO,MAAM,eAAe,8EAK3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,sCAA4C,CAAC;AAE3E,eAAO,MAAM,cAAc,iCAAuC,CAAC;AAEnE,eAAO,MAAM,aAAa,qDAKzB,CAAC;AAEF,eAAO,MAAM,WAAW,yBAAiC,CAAC;AAE1D,eAAO,MAAM,oBAAoB,oKAKhC,CAAC;AAiBF;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,wBAAwB;;;;cAS5B,CAAC;AAQH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEjE,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAKxD,CAAC;AAIH,eAAO,MAAM,yCAAyC,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAC1D,CAAC;AAEzC,eAAO,MAAM,iCAAiC,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAO9E,CAAC;AAEL,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAK7C,CAAC;AAYF,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAUzD,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAGjD,CAAC;AAaF,eAAO,MAAM,oCAAoC;;;;;;;cAI/C,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAG5D,CAAC;AAEL,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAchC,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,SAAS,SAAS,EAAE,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAClE,MAAM,MAAM,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEpC,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IASvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IASpC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEvC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAOrC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,SAAS,GAAG,eAAe,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,WAAW,GACX,WAAW,GACX,2BAA2B,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,EAAE,EAAE,mCAAmC,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG,QAAQ,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assert } from "../../shared/src/asserts.js";
|
|
2
2
|
import { literalUnion, readonly, readonlyArray, readonlyObject, valita_exports } from "../../shared/src/valita.js";
|
|
3
|
-
import {
|
|
3
|
+
import { defined } from "../../shared/src/arrays.js";
|
|
4
4
|
import { must } from "../../shared/src/must.js";
|
|
5
5
|
import { rowSchema } from "./data.js";
|
|
6
6
|
import { compareUTF8 } from "compare-utf8";
|
|
@@ -109,12 +109,13 @@ function transformAST(ast, transform) {
|
|
|
109
109
|
const key = (table, k) => {
|
|
110
110
|
return mustCompoundKey(k.map((col) => columnName(table, col)));
|
|
111
111
|
};
|
|
112
|
+
const where = ast.where ? transform.where(ast.where) : void 0;
|
|
112
113
|
return {
|
|
113
114
|
schema: ast.schema,
|
|
114
115
|
table: tableName(ast.table),
|
|
115
116
|
alias: ast.alias,
|
|
116
|
-
where:
|
|
117
|
-
related: ast.related
|
|
117
|
+
where: where ? transformWhere(where, ast.table, transform) : void 0,
|
|
118
|
+
related: ast.related ? transform.related(ast.related.map((r) => ({
|
|
118
119
|
correlation: {
|
|
119
120
|
parentField: key(ast.table, r.correlation.parentField),
|
|
120
121
|
childField: key(r.subquery.table, r.correlation.childField)
|
|
@@ -122,7 +123,7 @@ function transformAST(ast, transform) {
|
|
|
122
123
|
hidden: r.hidden,
|
|
123
124
|
subquery: transformAST(r.subquery, transform),
|
|
124
125
|
system: r.system
|
|
125
|
-
})),
|
|
126
|
+
}))) : void 0,
|
|
126
127
|
start: ast.start ? {
|
|
127
128
|
...ast.start,
|
|
128
129
|
row: Object.fromEntries(Object.entries(ast.start.row).map(([col, val]) => [colName(col), val]))
|
|
@@ -160,206 +161,46 @@ function transformWhere(where, table, transform) {
|
|
|
160
161
|
}
|
|
161
162
|
return {
|
|
162
163
|
type: where.type,
|
|
163
|
-
conditions: where.conditions.map((c) => transformWhere(c, table, transform))
|
|
164
|
+
conditions: transform.conditions(where.conditions.map((c) => transformWhere(c, table, transform)))
|
|
164
165
|
};
|
|
165
166
|
}
|
|
166
|
-
function asNormalized(ast) {
|
|
167
|
-
return ast;
|
|
168
|
-
}
|
|
169
167
|
var normalizeCache = /* @__PURE__ */ new WeakMap();
|
|
168
|
+
var NORMALIZE_TRANSFORM = {
|
|
169
|
+
tableName: (t) => t,
|
|
170
|
+
columnName: (_, c) => c,
|
|
171
|
+
related: sortedRelated,
|
|
172
|
+
where: flattened,
|
|
173
|
+
conditions: (c) => c.sort(cmpCondition)
|
|
174
|
+
};
|
|
170
175
|
function normalizeAST(ast) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
return normalizedAST({
|
|
176
|
-
...ast,
|
|
177
|
-
where: where && normalizeSubqueries(where),
|
|
178
|
-
related: related?.map((r) => normalizedRelated({
|
|
179
|
-
...r,
|
|
180
|
-
subquery: normalizeAST(r.subquery)
|
|
181
|
-
}))
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Normalizes the ASTs of the correlated subqueries of `cond`. The condition
|
|
186
|
-
* itself is normalized by {@link normalizeCondition}.
|
|
187
|
-
*/
|
|
188
|
-
function normalizeSubqueries(cond) {
|
|
189
|
-
switch (cond.type) {
|
|
190
|
-
case "simple": return cond;
|
|
191
|
-
case "correlatedSubquery": return {
|
|
192
|
-
...cond,
|
|
193
|
-
related: {
|
|
194
|
-
...cond.related,
|
|
195
|
-
subquery: normalizeAST(cond.related.subquery)
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
default: return {
|
|
199
|
-
type: cond.type,
|
|
200
|
-
conditions: cond.conditions.map(normalizeSubqueries)
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Normalizes a single level of an AST, assuming that the ASTs of its
|
|
206
|
-
* subqueries (i.e. those in `related` and in correlated subquery conditions)
|
|
207
|
-
* are already normalized and that the `related` entries have the shape that
|
|
208
|
-
* {@link normalizedRelated} gives them.
|
|
209
|
-
*
|
|
210
|
-
* This lets a query builder keep its AST normalized as it builds it up
|
|
211
|
-
* instead of normalizing the whole tree afterwards. A builder that knows
|
|
212
|
-
* which of the rules a step can break at all is better off applying just
|
|
213
|
-
* those (see {@link tableAST}, {@link insertRelated} and
|
|
214
|
-
* {@link normalizeCondition}).
|
|
215
|
-
*/
|
|
216
|
-
function normalizedAST(ast) {
|
|
217
|
-
const { schema, table, alias, where, related, start, limit, orderBy } = ast;
|
|
218
|
-
return asNormalized({
|
|
219
|
-
schema,
|
|
220
|
-
table,
|
|
221
|
-
alias,
|
|
222
|
-
where: where === void 0 ? void 0 : normalizeCondition(where),
|
|
223
|
-
related: related === void 0 ? void 0 : normalizeRelated(related),
|
|
224
|
-
start,
|
|
225
|
-
limit,
|
|
226
|
-
orderBy
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* The normalized AST that selects a whole table. Spreading it (or any other
|
|
231
|
-
* normalized AST) and replacing a field keeps the field order, since a
|
|
232
|
-
* normalized AST has every field.
|
|
233
|
-
*/
|
|
234
|
-
function tableAST(table, alias) {
|
|
235
|
-
return asNormalized({
|
|
236
|
-
schema: void 0,
|
|
237
|
-
table,
|
|
238
|
-
alias,
|
|
239
|
-
where: void 0,
|
|
240
|
-
related: void 0,
|
|
241
|
-
start: void 0,
|
|
242
|
-
limit: void 0,
|
|
243
|
-
orderBy: void 0
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Adds `subquery` to the `related` of a normalized AST, at the position that
|
|
248
|
-
* keeps it sorted.
|
|
249
|
-
*/
|
|
250
|
-
function insertRelated(related, subquery) {
|
|
251
|
-
const normalized = normalizedRelated(subquery);
|
|
252
|
-
if (related === void 0) return [normalized];
|
|
253
|
-
let i = related.length;
|
|
254
|
-
while (i > 0 && cmpRelated(related[i - 1], normalized) > 0) i--;
|
|
255
|
-
return related.toSpliced(i, 0, normalized);
|
|
256
|
-
}
|
|
257
|
-
var normalizedConditions = /* @__PURE__ */ new WeakSet();
|
|
258
|
-
function normalizeRelated(related) {
|
|
259
|
-
for (let i = 1; i < related.length; i++) if (cmpRelated(related[i - 1], related[i]) > 0) return related.toSorted(cmpRelated);
|
|
260
|
-
return related;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Gives a correlated subquery the shape that a normalized AST has: every
|
|
264
|
-
* field, in a fixed order (see {@link normalizedAST}). Its `subquery` must
|
|
265
|
-
* already be normalized.
|
|
266
|
-
*/
|
|
267
|
-
function normalizedRelated(related) {
|
|
268
|
-
const { correlation, hidden, subquery, system } = related;
|
|
269
|
-
return {
|
|
270
|
-
correlation: {
|
|
271
|
-
parentField: correlation.parentField,
|
|
272
|
-
childField: correlation.childField
|
|
273
|
-
},
|
|
274
|
-
hidden,
|
|
275
|
-
subquery,
|
|
276
|
-
system
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
function normalizeValuePosition(v) {
|
|
280
|
-
switch (v.type) {
|
|
281
|
-
case "literal": return {
|
|
282
|
-
type: "literal",
|
|
283
|
-
value: v.value
|
|
284
|
-
};
|
|
285
|
-
case "column": return {
|
|
286
|
-
type: "column",
|
|
287
|
-
name: v.name
|
|
288
|
-
};
|
|
289
|
-
default: return {
|
|
290
|
-
type: "static",
|
|
291
|
-
anchor: v.anchor,
|
|
292
|
-
field: v.field
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Normalizes a condition, assuming that the ASTs of any correlated subqueries
|
|
298
|
-
* it contains are already normalized.
|
|
299
|
-
*
|
|
300
|
-
* Like {@link normalizedAST}, this rebuilds every node with its fields in a
|
|
301
|
-
* fixed order, so that structurally equal conditions have the same JSON
|
|
302
|
-
* encoding (and thus the same hash) no matter how they were put together.
|
|
303
|
-
* That includes a round trip through Postgres, whose jsonb type reorders
|
|
304
|
-
* object keys: without the rebuild, every query record reloaded from the CVR
|
|
305
|
-
* re-hashed to a different transformationHash than was stored, making it look
|
|
306
|
-
* changed and re-execute on every view-syncer restart.
|
|
307
|
-
*/
|
|
308
|
-
function normalizeCondition(cond) {
|
|
309
|
-
if (normalizedConditions.has(cond)) return cond;
|
|
310
|
-
if (cond.type === "simple") {
|
|
311
|
-
const normalized = {
|
|
312
|
-
type: "simple",
|
|
313
|
-
op: cond.op,
|
|
314
|
-
left: normalizeValuePosition(cond.left),
|
|
315
|
-
right: normalizeValuePosition(cond.right)
|
|
316
|
-
};
|
|
317
|
-
normalizedConditions.add(normalized);
|
|
318
|
-
return normalized;
|
|
319
|
-
}
|
|
320
|
-
if (cond.type === "correlatedSubquery") {
|
|
321
|
-
const normalized = {
|
|
322
|
-
type: "correlatedSubquery",
|
|
323
|
-
related: normalizedRelated(cond.related),
|
|
324
|
-
op: cond.op,
|
|
325
|
-
flip: cond.flip,
|
|
326
|
-
scalar: cond.scalar
|
|
327
|
-
};
|
|
328
|
-
normalizedConditions.add(normalized);
|
|
329
|
-
return normalized;
|
|
330
|
-
}
|
|
331
|
-
const conditions = [];
|
|
332
|
-
for (const c of cond.conditions) {
|
|
333
|
-
const n = normalizeCondition(c);
|
|
334
|
-
if (n.type === cond.type) conditions.push(...n.conditions);
|
|
335
|
-
else conditions.push(n);
|
|
176
|
+
let normalized = normalizeCache.get(ast);
|
|
177
|
+
if (!normalized) {
|
|
178
|
+
normalized = transformAST(ast, NORMALIZE_TRANSFORM);
|
|
179
|
+
normalizeCache.set(ast, normalized);
|
|
336
180
|
}
|
|
337
|
-
if (conditions.length === 1) return conditions[0];
|
|
338
|
-
conditions.sort(cmpCondition);
|
|
339
|
-
const normalized = {
|
|
340
|
-
type: cond.type,
|
|
341
|
-
conditions
|
|
342
|
-
};
|
|
343
|
-
normalizedConditions.add(normalized);
|
|
344
181
|
return normalized;
|
|
345
182
|
}
|
|
346
|
-
/**
|
|
347
|
-
* Maps the table and column names of `ast`. The result is not a
|
|
348
|
-
* {@link NormalizedAST} even if `ast` was normalized: the names it sorts by
|
|
349
|
-
* are the ones that changed.
|
|
350
|
-
*/
|
|
351
183
|
function mapAST(ast, mapper) {
|
|
352
184
|
return transformAST(ast, {
|
|
353
185
|
tableName: (table) => mapper.tableName(table),
|
|
354
|
-
columnName: (table, col) => mapper.columnName(table, col)
|
|
186
|
+
columnName: (table, col) => mapper.columnName(table, col),
|
|
187
|
+
related: (r) => r,
|
|
188
|
+
where: (w) => w,
|
|
189
|
+
conditions: (c) => c
|
|
355
190
|
});
|
|
356
191
|
}
|
|
357
192
|
function mapCondition(cond, table, mapper) {
|
|
358
193
|
return transformWhere(cond, table, {
|
|
359
194
|
tableName: (table) => mapper.tableName(table),
|
|
360
|
-
columnName: (table, col) => mapper.columnName(table, col)
|
|
195
|
+
columnName: (table, col) => mapper.columnName(table, col),
|
|
196
|
+
related: (r) => r,
|
|
197
|
+
where: (w) => w,
|
|
198
|
+
conditions: (c) => c
|
|
361
199
|
});
|
|
362
200
|
}
|
|
201
|
+
function sortedRelated(related) {
|
|
202
|
+
return related.sort(cmpRelated);
|
|
203
|
+
}
|
|
363
204
|
function cmpCondition(a, b) {
|
|
364
205
|
if (a.type === "simple") {
|
|
365
206
|
if (b.type !== "simple") return -1;
|
|
@@ -384,51 +225,39 @@ function compareValuePosition(a, b) {
|
|
|
384
225
|
switch (a.type) {
|
|
385
226
|
case "literal":
|
|
386
227
|
assert(b.type === "literal", "Expected literal type for comparison");
|
|
387
|
-
return
|
|
228
|
+
return compareUTF8(String(a.value), String(b.value));
|
|
388
229
|
case "column":
|
|
389
230
|
assert(b.type === "column", "Expected column type for comparison");
|
|
390
231
|
return compareUTF8(a.name, b.name);
|
|
391
|
-
case "static":
|
|
392
|
-
assert(b.type === "static", "Expected static type for comparison");
|
|
393
|
-
return compareUTF8(a.anchor, b.anchor) || cmpLiteralValue(a.field, b.field);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
var LITERAL_VALUE_TYPES = [
|
|
397
|
-
"object",
|
|
398
|
-
"boolean",
|
|
399
|
-
"number",
|
|
400
|
-
"string"
|
|
401
|
-
];
|
|
402
|
-
function literalValueType(value) {
|
|
403
|
-
return Array.isArray(value) ? LITERAL_VALUE_TYPES.length : LITERAL_VALUE_TYPES.indexOf(typeof value);
|
|
404
|
-
}
|
|
405
|
-
function cmpLiteralValue(a, b) {
|
|
406
|
-
const type = literalValueType(a) - literalValueType(b);
|
|
407
|
-
if (type !== 0) return type;
|
|
408
|
-
if (Array.isArray(a)) {
|
|
409
|
-
assert(Array.isArray(b), "Expected array for comparison");
|
|
410
|
-
for (let i = 0; i < a.length && i < b.length; i++) {
|
|
411
|
-
const val = cmpLiteralValue(a[i], b[i]);
|
|
412
|
-
if (val !== 0) return val;
|
|
413
|
-
}
|
|
414
|
-
return a.length - b.length;
|
|
415
|
-
}
|
|
416
|
-
switch (typeof a) {
|
|
417
|
-
case "string":
|
|
418
|
-
assert(typeof b === "string", "Expected string for comparison");
|
|
419
|
-
return compareUTF8(a, b);
|
|
420
|
-
case "number":
|
|
421
|
-
assert(typeof b === "number", "Expected number for comparison");
|
|
422
|
-
return a < b ? -1 : a > b ? 1 : 0;
|
|
423
|
-
case "boolean":
|
|
424
|
-
assert(typeof b === "boolean", "Expected boolean for comparison");
|
|
425
|
-
return Number(a) - Number(b);
|
|
426
|
-
default: return 0;
|
|
232
|
+
case "static": throw new Error("Static parameters should be resolved before normalization");
|
|
427
233
|
}
|
|
428
234
|
}
|
|
429
235
|
function cmpRelated(a, b) {
|
|
430
236
|
return compareUTF8(must(a.subquery.alias), must(b.subquery.alias));
|
|
431
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Returns a flattened version of the Conditions in which nested Conjunctions with
|
|
240
|
+
* the same operation ('AND' or 'OR') are flattened to the same level. e.g.
|
|
241
|
+
*
|
|
242
|
+
* ```
|
|
243
|
+
* ((a AND b) AND (c AND (d OR (e OR f)))) -> (a AND b AND c AND (d OR e OR f))
|
|
244
|
+
* ```
|
|
245
|
+
*
|
|
246
|
+
* Also flattens singleton Conjunctions regardless of operator, and removes
|
|
247
|
+
* empty Conjunctions.
|
|
248
|
+
*/
|
|
249
|
+
function flattened(cond) {
|
|
250
|
+
if (cond.type === "simple" || cond.type === "correlatedSubquery") return cond;
|
|
251
|
+
const conditions = defined(cond.conditions.flatMap((c) => c.type === cond.type ? c.conditions.map((c) => flattened(c)) : flattened(c)));
|
|
252
|
+
switch (conditions.length) {
|
|
253
|
+
case 0: return;
|
|
254
|
+
case 1: return conditions[0];
|
|
255
|
+
default: return {
|
|
256
|
+
type: cond.type,
|
|
257
|
+
conditions
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
}
|
|
432
261
|
function compareUTF8MaybeNull(a, b) {
|
|
433
262
|
if (a !== null && b !== null) return compareUTF8(a, b);
|
|
434
263
|
if (b !== null) return -1;
|
|
@@ -440,6 +269,6 @@ function cmpOptionalBool(a, b) {
|
|
|
440
269
|
return toNum(a) - toNum(b);
|
|
441
270
|
}
|
|
442
271
|
//#endregion
|
|
443
|
-
export { SUBQ_PREFIX, astSchema, compoundKeySchema, conditionSchema,
|
|
272
|
+
export { SUBQ_PREFIX, astSchema, compoundKeySchema, conditionSchema, mapAST, mapCondition, normalizeAST, orderingSchema, planIdSymbol, toStaticParam };
|
|
444
273
|
|
|
445
274
|
//# sourceMappingURL=ast.js.map
|