@rocicorp/zero 0.24.2025102200 → 0.25.0-canary.1
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/{chunk-PIXC6O7W.js → chunk-55BOUNXO.js} +3 -3
- package/out/chunk-55BOUNXO.js.map +7 -0
- package/out/{chunk-JS2ABYXG.js → chunk-AIPM77UE.js} +2762 -674
- package/out/chunk-AIPM77UE.js.map +7 -0
- package/out/{chunk-VHLCXJ6Q.js → chunk-TJFNGO7E.js} +4 -2
- package/out/{chunk-VHLCXJ6Q.js.map → chunk-TJFNGO7E.js.map} +2 -2
- package/out/{lazy-inspector-NCBESZMS.js → lazy-inspector-OXIFYSSQ.js} +2 -2
- package/out/react.js +16 -4
- package/out/react.js.map +4 -4
- package/out/replicache/src/dag/lazy-store.d.ts +1 -1
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
- package/out/replicache/src/log-options.d.ts +1 -1
- package/out/replicache/src/log-options.d.ts.map +1 -1
- package/out/replicache/src/persist/collect-idb-databases.d.ts +3 -3
- package/out/replicache/src/persist/collect-idb-databases.d.ts.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +1 -1
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/shared/src/options.d.ts +1 -1
- package/out/shared/src/options.d.ts.map +1 -1
- package/out/shared/src/promise-race.d.ts +17 -0
- package/out/shared/src/promise-race.d.ts.map +1 -0
- package/out/solid.js +19 -6
- package/out/solid.js.map +4 -4
- package/out/z2s/src/compiler.d.ts +1 -1
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +1 -1
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +1 -1
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/package.json +5 -4
- package/out/zero-cache/src/config/zero-config.d.ts +12 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +36 -0
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.d.ts +3 -1
- package/out/zero-cache/src/custom/fetch.d.ts.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +101 -24
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +2 -6
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +1 -1
- package/out/zero-cache/src/custom-queries/transform-query.js +42 -41
- package/out/zero-cache/src/custom-queries/transform-query.js.map +1 -1
- package/out/zero-cache/src/db/create.d.ts +4 -0
- package/out/zero-cache/src/db/create.d.ts.map +1 -1
- package/out/zero-cache/src/db/create.js +7 -9
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +38 -17
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +7 -6
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +24 -19
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.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 +1 -1
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +1 -1
- package/out/zero-cache/src/server/inspector-delegate.js +5 -1
- package/out/zero-cache/src/server/inspector-delegate.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 -1
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/column-metadata.d.ts +65 -0
- package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/column-metadata.js +198 -0
- package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/change-source.js +1 -0
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +25 -25
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +10 -10
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +16 -16
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +24 -24
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +2 -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 +18 -2
- 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 +8 -8
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +9 -7
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +4 -4
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +74 -56
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -1
- 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 +10 -6
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +7 -4
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +4 -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 +15 -6
- 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.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +4 -2
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/key-columns.js +4 -2
- package/out/zero-cache/src/services/view-syncer/key-columns.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -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 +57 -27
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +11 -6
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +34 -22
- 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 +4 -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 +111 -51
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/error-with-level.d.ts +9 -0
- package/out/zero-cache/src/types/error-with-level.d.ts.map +1 -0
- package/out/zero-cache/src/types/error-with-level.js +24 -0
- package/out/zero-cache/src/types/error-with-level.js.map +1 -0
- package/out/zero-cache/src/types/lite.d.ts +15 -13
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +17 -5
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg-data-type.d.ts +73 -0
- package/out/zero-cache/src/types/pg-data-type.d.ts.map +1 -0
- package/out/zero-cache/src/types/pg-data-type.js +76 -0
- package/out/zero-cache/src/types/pg-data-type.js.map +1 -0
- package/out/zero-cache/src/types/pg.d.ts +1 -73
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +0 -77
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +1 -1
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/schema-versions.d.ts +7 -3
- package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -1
- package/out/zero-cache/src/types/schema-versions.js +7 -5
- package/out/zero-cache/src/types/schema-versions.js.map +1 -1
- package/out/zero-cache/src/types/subscription.d.ts +1 -1
- package/out/zero-cache/src/types/subscription.js +1 -1
- package/out/zero-cache/src/types/websocket-handoff.d.ts +3 -3
- package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -1
- package/out/zero-cache/src/types/websocket-handoff.js +6 -4
- package/out/zero-cache/src/types/websocket-handoff.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +6 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +26 -9
- package/out/zero-cache/src/workers/connection.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 +7 -1
- 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 +21 -1
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/client-error-kind-enum.d.ts +27 -0
- package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -0
- package/out/zero-client/src/client/client-error-kind.d.ts +5 -0
- package/out/zero-client/src/client/client-error-kind.d.ts.map +1 -0
- package/out/zero-client/src/client/connection-manager.d.ts +138 -0
- package/out/zero-client/src/client/connection-manager.d.ts.map +1 -0
- package/out/zero-client/src/client/connection-status-enum.d.ts +11 -0
- package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -0
- package/out/zero-client/src/client/connection-status.d.ts +5 -0
- package/out/zero-client/src/client/connection-status.d.ts.map +1 -0
- package/out/zero-client/src/client/connection.d.ts +45 -0
- package/out/zero-client/src/client/connection.d.ts.map +1 -0
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/error.d.ts +192 -0
- package/out/zero-client/src/client/error.d.ts.map +1 -0
- package/out/zero-client/src/client/ivm-branch.d.ts +2 -2
- package/out/zero-client/src/client/ivm-branch.d.ts.map +1 -1
- package/out/zero-client/src/client/metric-name.d.ts +5 -0
- package/out/zero-client/src/client/metric-name.d.ts.map +1 -0
- package/out/zero-client/src/client/metrics.d.ts +12 -9
- package/out/zero-client/src/client/metrics.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts +5 -4
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/options.d.ts +6 -2
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts +5 -4
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +55 -11
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +9 -1
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +2 -0
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +1 -0
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/custom-queries.d.ts +75 -4
- package/out/zero-protocol/src/custom-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/custom-queries.js +18 -1
- package/out/zero-protocol/src/custom-queries.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +1 -1
- package/out/zero-protocol/src/error-kind-enum.d.ts +65 -0
- package/out/zero-protocol/src/error-kind-enum.d.ts.map +1 -1
- package/out/zero-protocol/src/error-kind-enum.js +2 -0
- package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
- package/out/zero-protocol/src/error-origin-enum.d.ts +7 -0
- package/out/zero-protocol/src/error-origin-enum.d.ts.map +1 -0
- package/out/zero-protocol/src/error-origin-enum.js +4 -0
- package/out/zero-protocol/src/error-origin-enum.js.map +1 -0
- package/out/zero-protocol/src/error-origin.d.ts +5 -0
- package/out/zero-protocol/src/error-origin.d.ts.map +1 -0
- package/out/zero-protocol/src/error-origin.js +3 -0
- package/out/zero-protocol/src/error-origin.js.map +1 -0
- package/out/zero-protocol/src/error-reason-enum.d.ts +15 -0
- package/out/zero-protocol/src/error-reason-enum.d.ts.map +1 -0
- package/out/zero-protocol/src/error-reason-enum.js +8 -0
- package/out/zero-protocol/src/error-reason-enum.js.map +1 -0
- package/out/zero-protocol/src/error-reason.d.ts +5 -0
- package/out/zero-protocol/src/error-reason.d.ts.map +1 -0
- package/out/zero-protocol/src/error-reason.js +3 -0
- package/out/zero-protocol/src/error-reason.js.map +1 -0
- package/out/zero-protocol/src/error.d.ts +139 -1
- package/out/zero-protocol/src/error.d.ts.map +1 -1
- package/out/zero-protocol/src/error.js +64 -2
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/mutation-id.d.ts +7 -0
- package/out/zero-protocol/src/mutation-id.d.ts.map +1 -0
- package/out/zero-protocol/src/mutation-id.js +6 -0
- package/out/zero-protocol/src/mutation-id.js.map +1 -0
- package/out/zero-protocol/src/mutations-patch.d.ts +3 -3
- package/out/zero-protocol/src/mutations-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/mutations-patch.js +2 -1
- package/out/zero-protocol/src/mutations-patch.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +2 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +138 -13
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +34 -13
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-react/src/mod.d.ts +2 -1
- package/out/zero-react/src/mod.d.ts.map +1 -1
- package/out/zero-react/src/use-zero-connection-state.d.ts +9 -0
- package/out/zero-react/src/use-zero-connection-state.d.ts.map +1 -0
- package/out/zero-react/src/use-zero-online.d.ts +2 -0
- package/out/zero-react/src/use-zero-online.d.ts.map +1 -1
- package/out/zero-schema/src/builder/relationship-builder.d.ts +20 -18
- package/out/zero-schema/src/builder/relationship-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
- package/out/zero-server/src/adapters/drizzle.d.ts +2 -3
- package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
- package/out/zero-server/src/adapters/drizzle.js.map +1 -1
- package/out/zero-server/src/adapters/pg.d.ts +1 -0
- package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
- package/out/zero-server/src/adapters/pg.js.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.d.ts +1 -0
- package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
- package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
- package/out/zero-server/src/process-mutations.d.ts +3 -3
- package/out/zero-server/src/process-mutations.d.ts.map +1 -1
- package/out/zero-server/src/process-mutations.js.map +1 -1
- package/out/zero-server/src/schema.js +1 -1
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-server/src/zql-database.d.ts +1 -1
- package/out/zero-server/src/zql-database.d.ts.map +1 -1
- package/out/zero-server/src/zql-database.js.map +1 -1
- package/out/zero-solid/src/mod.d.ts +3 -2
- package/out/zero-solid/src/mod.d.ts.map +1 -1
- package/out/zero-solid/src/use-zero-connection-state.d.ts +10 -0
- package/out/zero-solid/src/use-zero-connection-state.d.ts.map +1 -0
- package/out/zero-solid/src/use-zero-online.d.ts +1 -7
- package/out/zero-solid/src/use-zero-online.d.ts.map +1 -1
- package/out/zero.js +13 -3
- package/out/zql/src/builder/builder.d.ts +14 -1
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +33 -2
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts +1 -1
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/filter-push.d.ts +1 -1
- package/out/zql/src/ivm/filter-push.d.ts.map +1 -1
- package/out/zql/src/ivm/filter-push.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +5 -5
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +0 -16
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/source.d.ts +2 -6
- package/out/zql/src/ivm/source.d.ts.map +1 -1
- package/out/zql/src/ivm/take.d.ts +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/planner/planner-builder.d.ts +14 -0
- package/out/zql/src/planner/planner-builder.d.ts.map +1 -0
- package/out/zql/src/planner/planner-builder.js +180 -0
- package/out/zql/src/planner/planner-builder.js.map +1 -0
- package/out/zql/src/planner/planner-connection.d.ts +119 -0
- package/out/zql/src/planner/planner-connection.d.ts.map +1 -0
- package/out/zql/src/planner/planner-connection.js +301 -0
- package/out/zql/src/planner/planner-connection.js.map +1 -0
- package/out/zql/src/planner/planner-constraint.d.ts +14 -0
- package/out/zql/src/planner/planner-constraint.d.ts.map +1 -0
- package/out/zql/src/planner/planner-constraint.js +12 -0
- package/out/zql/src/planner/planner-constraint.js.map +1 -0
- package/out/zql/src/planner/planner-debug.d.ts +118 -0
- package/out/zql/src/planner/planner-debug.d.ts.map +1 -0
- package/out/zql/src/planner/planner-debug.js +125 -0
- package/out/zql/src/planner/planner-debug.js.map +1 -0
- package/out/zql/src/planner/planner-fan-in.d.ts +37 -0
- package/out/zql/src/planner/planner-fan-in.d.ts.map +1 -0
- package/out/zql/src/planner/planner-fan-in.js +149 -0
- package/out/zql/src/planner/planner-fan-in.js.map +1 -0
- package/out/zql/src/planner/planner-fan-out.d.ts +21 -0
- package/out/zql/src/planner/planner-fan-out.d.ts.map +1 -0
- package/out/zql/src/planner/planner-fan-out.js +45 -0
- package/out/zql/src/planner/planner-fan-out.js.map +1 -0
- package/out/zql/src/planner/planner-graph.d.ts +103 -0
- package/out/zql/src/planner/planner-graph.d.ts.map +1 -0
- package/out/zql/src/planner/planner-graph.js +411 -0
- package/out/zql/src/planner/planner-graph.js.map +1 -0
- package/out/zql/src/planner/planner-join.d.ts +81 -0
- package/out/zql/src/planner/planner-join.d.ts.map +1 -0
- package/out/zql/src/planner/planner-join.js +246 -0
- package/out/zql/src/planner/planner-join.js.map +1 -0
- package/out/zql/src/planner/planner-node.d.ts +21 -0
- package/out/zql/src/planner/planner-node.d.ts.map +1 -0
- package/out/zql/src/planner/planner-node.js +2 -0
- package/out/zql/src/planner/planner-node.js.map +1 -0
- package/out/zql/src/planner/planner-source.d.ts +11 -0
- package/out/zql/src/planner/planner-source.d.ts.map +1 -0
- package/out/zql/src/planner/planner-source.js +13 -0
- package/out/zql/src/planner/planner-source.js.map +1 -0
- package/out/zql/src/planner/planner-terminus.d.ts +16 -0
- package/out/zql/src/planner/planner-terminus.d.ts.map +1 -0
- package/out/zql/src/planner/planner-terminus.js +28 -0
- package/out/zql/src/planner/planner-terminus.js.map +1 -0
- package/out/zql/src/query/expression.d.ts +2 -2
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/query-delegate.d.ts +3 -3
- package/out/zql/src/query/query-delegate.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +8 -8
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +0 -6
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +3 -3
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.d.ts +1 -1
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.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/query-delegate.d.ts +1 -1
- package/out/zqlite/src/query-delegate.d.ts.map +1 -1
- package/out/zqlite/src/query-delegate.js.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts +17 -0
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +1 -0
- package/out/zqlite/src/sqlite-cost-model.js +134 -0
- package/out/zqlite/src/sqlite-cost-model.js.map +1 -0
- package/out/zqlite/src/table-source.d.ts +4 -4
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +0 -16
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +5 -4
- package/out/chunk-JS2ABYXG.js.map +0 -7
- package/out/chunk-PIXC6O7W.js.map +0 -7
- package/out/zero-cache/src/types/error-for-client.d.ts +0 -23
- package/out/zero-cache/src/types/error-for-client.d.ts.map +0 -1
- package/out/zero-cache/src/types/error-for-client.js +0 -28
- package/out/zero-cache/src/types/error-for-client.js.map +0 -1
- package/out/zero-client/src/client/connection-state-enum.d.ts +0 -7
- package/out/zero-client/src/client/connection-state-enum.d.ts.map +0 -1
- package/out/zero-client/src/client/ping-result-enum.d.ts +0 -5
- package/out/zero-client/src/client/ping-result-enum.d.ts.map +0 -1
- package/out/zero-client/src/client/server-error.d.ts +0 -15
- package/out/zero-client/src/client/server-error.d.ts.map +0 -1
- package/out/zql/src/query/assert-no-not-exists.d.ts +0 -17
- package/out/zql/src/query/assert-no-not-exists.d.ts.map +0 -1
- package/out/zql/src/query/assert-no-not-exists.js +0 -40
- package/out/zql/src/query/assert-no-not-exists.js.map +0 -1
- /package/out/{lazy-inspector-NCBESZMS.js.map → lazy-inspector-OXIFYSSQ.js.map} +0 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { assert } from "../../../shared/src/asserts.js";
|
|
2
|
+
import { mergeConstraints, } from "./planner-constraint.js";
|
|
3
|
+
/**
|
|
4
|
+
* Semi-join overhead multiplier.
|
|
5
|
+
*
|
|
6
|
+
* Semi-joins represent correlated subqueries (EXISTS checks) which have
|
|
7
|
+
* execution overhead compared to flipped joins, even when logical row counts
|
|
8
|
+
* are identical. This overhead comes from:
|
|
9
|
+
* - Need to execute a separate correlation check for each parent row
|
|
10
|
+
* - Cannot leverage combined constraint checking as effectively as flipped joins
|
|
11
|
+
*
|
|
12
|
+
* A multiplier of 1.5 means semi-joins are estimated to be ~50% more expensive
|
|
13
|
+
* than equivalent flipped joins, which empirically matches observed performance
|
|
14
|
+
* differences in production workloads (e.g., 1.7x in zbugs benchmarks).
|
|
15
|
+
*
|
|
16
|
+
* Flipped joins have a different overhead in that they become unlimited. This
|
|
17
|
+
* is accounted for when propagating unlimits rather than here.
|
|
18
|
+
*/
|
|
19
|
+
const SEMI_JOIN_OVERHEAD_MULTIPLIER = 1.5;
|
|
20
|
+
/**
|
|
21
|
+
* Represents a join between two data streams (parent and child).
|
|
22
|
+
*
|
|
23
|
+
* # Dual-State Pattern
|
|
24
|
+
* Like all planner nodes, PlannerJoin separates:
|
|
25
|
+
* 1. IMMUTABLE STRUCTURE: Parent/child nodes, constraints, flippability
|
|
26
|
+
* 2. MUTABLE STATE: Join type (semi/flipped), pinned status
|
|
27
|
+
*
|
|
28
|
+
* # Join Flipping
|
|
29
|
+
* A join can be in two states:
|
|
30
|
+
* - 'semi': Parent is outer loop, child is inner (semi-join for EXISTS)
|
|
31
|
+
* - 'flipped': Child is outer loop, parent is inner
|
|
32
|
+
*
|
|
33
|
+
* Flipping is the key optimization: choosing which table scans first.
|
|
34
|
+
* NOT EXISTS joins cannot be flipped (#flippable = false).
|
|
35
|
+
*
|
|
36
|
+
* # Constraint Propagation
|
|
37
|
+
* - Semi-join: Sends childConstraint to child, forwards received constraints to parent
|
|
38
|
+
* - Flipped join: Sends undefined to child, merges parentConstraint with received to parent
|
|
39
|
+
* - Unpinned join: Only forwards constraints to parent (doesn't constrain child yet)
|
|
40
|
+
*
|
|
41
|
+
* # Lifecycle
|
|
42
|
+
* 1. Construct with immutable structure (parent, child, constraints, flippability)
|
|
43
|
+
* 2. Wire to output node during graph construction
|
|
44
|
+
* 3. Planning calls flipIfNeeded() based on connection selection order
|
|
45
|
+
* 4. pin() locks the join type once chosen
|
|
46
|
+
* 5. reset() clears mutable state (type → 'semi', pinned → false)
|
|
47
|
+
*/
|
|
48
|
+
export class PlannerJoin {
|
|
49
|
+
kind = 'join';
|
|
50
|
+
#parent;
|
|
51
|
+
#child;
|
|
52
|
+
#parentConstraint;
|
|
53
|
+
#childConstraint;
|
|
54
|
+
#flippable;
|
|
55
|
+
planId;
|
|
56
|
+
#output; // Set once during graph construction
|
|
57
|
+
// Reset between planning attempts
|
|
58
|
+
#type;
|
|
59
|
+
constructor(parent, child, parentConstraint, childConstraint, flippable, planId) {
|
|
60
|
+
this.#type = 'semi';
|
|
61
|
+
this.#parent = parent;
|
|
62
|
+
this.#child = child;
|
|
63
|
+
this.#childConstraint = childConstraint;
|
|
64
|
+
this.#parentConstraint = parentConstraint;
|
|
65
|
+
this.#flippable = flippable;
|
|
66
|
+
this.planId = planId;
|
|
67
|
+
}
|
|
68
|
+
setOutput(node) {
|
|
69
|
+
this.#output = node;
|
|
70
|
+
}
|
|
71
|
+
get output() {
|
|
72
|
+
assert(this.#output !== undefined, 'Output not set');
|
|
73
|
+
return this.#output;
|
|
74
|
+
}
|
|
75
|
+
closestJoinOrSource() {
|
|
76
|
+
return 'join';
|
|
77
|
+
}
|
|
78
|
+
flipIfNeeded(input) {
|
|
79
|
+
if (input === this.#child) {
|
|
80
|
+
this.flip();
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
assert(input === this.#parent, 'Can only flip a join from one of its inputs');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
flip() {
|
|
87
|
+
assert(this.#type === 'semi', 'Can only flip a semi-join');
|
|
88
|
+
if (!this.#flippable) {
|
|
89
|
+
throw new UnflippableJoinError('Cannot flip a non-flippable join (e.g., NOT EXISTS)');
|
|
90
|
+
}
|
|
91
|
+
this.#type = 'flipped';
|
|
92
|
+
}
|
|
93
|
+
get type() {
|
|
94
|
+
return this.#type;
|
|
95
|
+
}
|
|
96
|
+
isFlippable() {
|
|
97
|
+
return this.#flippable;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Propagate unlimiting through the child subgraph when this join is flipped.
|
|
101
|
+
* When a join is flipped, the child becomes the outer loop and should produce
|
|
102
|
+
* all rows rather than stopping at an EXISTS limit.
|
|
103
|
+
*
|
|
104
|
+
* Propagation rules:
|
|
105
|
+
* - Connection: call unlimit()
|
|
106
|
+
* - Semi-join: continue to parent (outer loop)
|
|
107
|
+
* - Flipped join: stop (already unlimited when it was flipped)
|
|
108
|
+
* - Fan-out/Fan-in: propagate to all inputs
|
|
109
|
+
*/
|
|
110
|
+
propagateUnlimit() {
|
|
111
|
+
assert(this.#type === 'flipped', 'Can only unlimit a flipped join');
|
|
112
|
+
propagateUnlimitToNode(this.#child);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Called when a parent join is flipped and this join is part of its child subgraph.
|
|
116
|
+
* - Semi-join: continue propagation to parent (the outer loop)
|
|
117
|
+
* - Flipped join: stop propagation (already unlimited when it was flipped)
|
|
118
|
+
*/
|
|
119
|
+
propagateUnlimitFromFlippedJoin() {
|
|
120
|
+
if (this.#type === 'semi') {
|
|
121
|
+
propagateUnlimitToNode(this.#parent);
|
|
122
|
+
}
|
|
123
|
+
// For flipped joins, stop propagation
|
|
124
|
+
}
|
|
125
|
+
propagateConstraints(branchPattern, constraint) {
|
|
126
|
+
if (this.#type === 'semi') {
|
|
127
|
+
// A semi-join always has constraints for its child.
|
|
128
|
+
// They are defined by the correlation between parent and child.
|
|
129
|
+
this.#child.propagateConstraints(branchPattern, this.#childConstraint, this);
|
|
130
|
+
// A semi-join forwards constraints to its parent.
|
|
131
|
+
this.#parent.propagateConstraints(branchPattern, constraint, this);
|
|
132
|
+
}
|
|
133
|
+
else if (this.#type === 'flipped') {
|
|
134
|
+
// A flipped join has no constraints to pass to its child.
|
|
135
|
+
// It is a standalone fetch that is relying on the filters of the child
|
|
136
|
+
// connection to do the heavy work.
|
|
137
|
+
this.#child.propagateConstraints(branchPattern, undefined, this);
|
|
138
|
+
// A flipped join will have constraints to send to its parent.
|
|
139
|
+
// - The constraints its output sent
|
|
140
|
+
// - The constraints its child creates
|
|
141
|
+
this.#parent.propagateConstraints(branchPattern, mergeConstraints(constraint, this.#parentConstraint), this);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
reset() {
|
|
145
|
+
this.#type = 'semi';
|
|
146
|
+
}
|
|
147
|
+
estimateCost(branchPattern) {
|
|
148
|
+
const parentCost = this.#parent.estimateCost(branchPattern);
|
|
149
|
+
const childCost = this.#child.estimateCost(branchPattern);
|
|
150
|
+
let scanEst = parentCost.rows;
|
|
151
|
+
if (this.#type === 'semi' && parentCost.limit !== undefined) {
|
|
152
|
+
if (childCost.selectivity !== 0) {
|
|
153
|
+
scanEst = Math.min(scanEst, parentCost.limit / childCost.selectivity);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (this.#parent.closestJoinOrSource() === 'join') {
|
|
157
|
+
// if the parent is a join, we're in a pipeline rather than nesting of joins.
|
|
158
|
+
const pipelineCost = this.#type === 'flipped'
|
|
159
|
+
? childCost.startupCost +
|
|
160
|
+
childCost.runningCost *
|
|
161
|
+
(parentCost.startupCost + parentCost.runningCost)
|
|
162
|
+
: parentCost.runningCost +
|
|
163
|
+
SEMI_JOIN_OVERHEAD_MULTIPLIER *
|
|
164
|
+
scanEst *
|
|
165
|
+
(childCost.startupCost + childCost.runningCost);
|
|
166
|
+
return {
|
|
167
|
+
rows: parentCost.rows,
|
|
168
|
+
runningCost: pipelineCost,
|
|
169
|
+
startupCost: parentCost.startupCost,
|
|
170
|
+
selectivity: parentCost.selectivity,
|
|
171
|
+
limit: parentCost.limit,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
// if the parent is a source, we're in a nested loop join
|
|
175
|
+
const nestedLoopCost = this.#type === 'flipped'
|
|
176
|
+
? childCost.runningCost *
|
|
177
|
+
(parentCost.startupCost + parentCost.runningCost)
|
|
178
|
+
: SEMI_JOIN_OVERHEAD_MULTIPLIER *
|
|
179
|
+
scanEst *
|
|
180
|
+
(childCost.startupCost + childCost.runningCost);
|
|
181
|
+
return {
|
|
182
|
+
rows: parentCost.rows,
|
|
183
|
+
runningCost: nestedLoopCost,
|
|
184
|
+
startupCost: parentCost.startupCost,
|
|
185
|
+
selectivity: parentCost.selectivity,
|
|
186
|
+
limit: parentCost.limit,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get a human-readable name for this join for debugging.
|
|
191
|
+
* Format: "parentName ⋈ childName"
|
|
192
|
+
*/
|
|
193
|
+
getName() {
|
|
194
|
+
const parentName = getNodeName(this.#parent);
|
|
195
|
+
const childName = getNodeName(this.#child);
|
|
196
|
+
return `${parentName} ⋈ ${childName}`;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get debug information about this join's state.
|
|
200
|
+
*/
|
|
201
|
+
getDebugInfo() {
|
|
202
|
+
return {
|
|
203
|
+
name: this.getName(),
|
|
204
|
+
type: this.#type,
|
|
205
|
+
planId: this.planId,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
export class UnflippableJoinError extends Error {
|
|
210
|
+
constructor(message) {
|
|
211
|
+
super(message);
|
|
212
|
+
this.name = 'UnflippableJoinError';
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get a human-readable name for any planner node.
|
|
217
|
+
* Used for debugging and tracing.
|
|
218
|
+
*/
|
|
219
|
+
function getNodeName(node) {
|
|
220
|
+
switch (node.kind) {
|
|
221
|
+
case 'connection':
|
|
222
|
+
return node.name;
|
|
223
|
+
case 'join':
|
|
224
|
+
return node.getName();
|
|
225
|
+
case 'fan-out':
|
|
226
|
+
return 'FO';
|
|
227
|
+
case 'fan-in':
|
|
228
|
+
return 'FI';
|
|
229
|
+
case 'terminus':
|
|
230
|
+
return 'terminus';
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Propagate unlimiting through a node in the planner graph.
|
|
235
|
+
* Called recursively to unlimit all nodes in a subgraph when a join is flipped.
|
|
236
|
+
*
|
|
237
|
+
* This calls the propagateUnlimitFromFlippedJoin() method on each node,
|
|
238
|
+
* which implements the type-specific logic.
|
|
239
|
+
*/
|
|
240
|
+
function propagateUnlimitToNode(node) {
|
|
241
|
+
if ('propagateUnlimitFromFlippedJoin' in node &&
|
|
242
|
+
typeof node.propagateUnlimitFromFlippedJoin === 'function') {
|
|
243
|
+
node.propagateUnlimitFromFlippedJoin();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=planner-join.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-join.js","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-join.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACtD,OAAO,EACL,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAOjC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAW;IACb,IAAI,GAAG,MAAe,CAAC;IAEvB,OAAO,CAAc;IACrB,MAAM,CAAc;IACpB,iBAAiB,CAAoB;IACrC,gBAAgB,CAAoB;IACpC,UAAU,CAAU;IACpB,MAAM,CAAS;IACxB,OAAO,CAA2B,CAAC,qCAAqC;IAExE,kCAAkC;IAClC,KAAK,CAAqB;IAE1B,YACE,MAAmB,EACnB,KAAkB,EAClB,gBAAmC,EACnC,eAAkC,EAClC,SAAkB,EAClB,MAAc;QAEd,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,IAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,mBAAmB;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,KAAkB;QAC7B,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,CACJ,KAAK,KAAK,IAAI,CAAC,OAAO,EACtB,6CAA6C,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,oBAAoB,CAC5B,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;;;OAUG;IACH,gBAAgB;QACd,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,iCAAiC,CAAC,CAAC;QACpE,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,+BAA+B;QAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,sCAAsC;IACxC,CAAC;IAED,oBAAoB,CAClB,aAAuB,EACvB,UAAyC;QAEzC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,oDAAoD;YACpD,gEAAgE;YAChE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAC9B,aAAa,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CACL,CAAC;YACF,kDAAkD;YAClD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACpC,0DAA0D;YAC1D,uEAAuE;YACvE,mCAAmC;YACnC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACjE,8DAA8D;YAC9D,oCAAoC;YACpC,sCAAsC;YACtC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAC/B,aAAa,EACb,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,EACpD,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,aAAwB;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAE1D,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,SAAS,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,MAAM,EAAE,CAAC;YAClD,6EAA6E;YAC7E,MAAM,YAAY,GAChB,IAAI,CAAC,KAAK,KAAK,SAAS;gBACtB,CAAC,CAAC,SAAS,CAAC,WAAW;oBACrB,SAAS,CAAC,WAAW;wBACnB,CAAC,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBACrD,CAAC,CAAC,UAAU,CAAC,WAAW;oBACtB,6BAA6B;wBAC3B,OAAO;wBACP,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YAExD,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,KAAK,SAAS;YACtB,CAAC,CAAC,SAAS,CAAC,WAAW;gBACrB,CAAC,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;YACnD,CAAC,CAAC,6BAA6B;gBAC7B,OAAO;gBACP,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAEtD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,GAAG,UAAU,MAAM,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,YAAY;QAKV,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAiB;IACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,IAAiB;IAC/C,IACE,iCAAiC,IAAI,IAAI;QACzC,OAAO,IAAI,CAAC,+BAA+B,KAAK,UAAU,EAC1D,CAAC;QAEC,IACD,CAAC,+BAA+B,EAAE,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PlannerConnection } from './planner-connection.ts';
|
|
2
|
+
import type { PlannerFanIn } from './planner-fan-in.ts';
|
|
3
|
+
import type { PlannerFanOut } from './planner-fan-out.ts';
|
|
4
|
+
import type { PlannerJoin } from './planner-join.ts';
|
|
5
|
+
import type { PlannerTerminus } from './planner-terminus.ts';
|
|
6
|
+
/**
|
|
7
|
+
* Union of all node types that can appear in the planner graph.
|
|
8
|
+
* All nodes follow the dual-state pattern described above.
|
|
9
|
+
*/
|
|
10
|
+
export type PlannerNode = PlannerJoin | PlannerConnection | PlannerFanOut | PlannerFanIn | PlannerTerminus;
|
|
11
|
+
export type CostEstimate = {
|
|
12
|
+
rows: number;
|
|
13
|
+
runningCost: number;
|
|
14
|
+
startupCost: number;
|
|
15
|
+
selectivity: number;
|
|
16
|
+
limit: number | undefined;
|
|
17
|
+
};
|
|
18
|
+
export type NodeType = PlannerNode['kind'];
|
|
19
|
+
export type JoinOrConnection = 'join' | 'connection';
|
|
20
|
+
export type JoinType = PlannerJoin['type'];
|
|
21
|
+
//# sourceMappingURL=planner-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-node.d.ts","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,YAAY,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-node.js","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-node.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Condition, Ordering } from '../../../zero-protocol/src/ast.ts';
|
|
2
|
+
import { PlannerConnection, type ConnectionCostModel } from './planner-connection.ts';
|
|
3
|
+
import type { PlannerConstraint } from './planner-constraint.ts';
|
|
4
|
+
export type { ConnectionCostModel };
|
|
5
|
+
export declare class PlannerSource {
|
|
6
|
+
#private;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
constructor(name: string, model: ConnectionCostModel);
|
|
9
|
+
connect(sort: Ordering, filters: Condition | undefined, baseConstraints?: PlannerConstraint, limit?: number): PlannerConnection;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=planner-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-source.d.ts","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE/D,YAAY,EAAC,mBAAmB,EAAC,CAAC;AAElC,qBAAa,aAAa;;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGV,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;IAKpD,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,eAAe,CAAC,EAAE,iBAAiB,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,iBAAiB;CAUrB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PlannerConnection, } from "./planner-connection.js";
|
|
2
|
+
export class PlannerSource {
|
|
3
|
+
name;
|
|
4
|
+
#model;
|
|
5
|
+
constructor(name, model) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.#model = model;
|
|
8
|
+
}
|
|
9
|
+
connect(sort, filters, baseConstraints, limit) {
|
|
10
|
+
return new PlannerConnection(this.name, this.#model, sort, filters, baseConstraints, limit);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=planner-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-source.js","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-source.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,GAElB,MAAM,yBAAyB,CAAC;AAKjC,MAAM,OAAO,aAAa;IACf,IAAI,CAAS;IACb,MAAM,CAAsB;IAErC,YAAY,IAAY,EAAE,KAA0B;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,CACL,IAAc,EACd,OAA8B,EAC9B,eAAmC,EACnC,KAAc;QAEd,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,OAAO,EACP,eAAe,EACf,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CostEstimate, JoinOrConnection, PlannerNode } from './planner-node.ts';
|
|
2
|
+
export declare class PlannerTerminus {
|
|
3
|
+
#private;
|
|
4
|
+
readonly kind: "terminus";
|
|
5
|
+
constructor(input: PlannerNode);
|
|
6
|
+
get pinned(): boolean;
|
|
7
|
+
closestJoinOrSource(): JoinOrConnection;
|
|
8
|
+
propagateConstraints(): void;
|
|
9
|
+
estimateCost(): CostEstimate;
|
|
10
|
+
/**
|
|
11
|
+
* Propagate unlimiting when a parent join is flipped.
|
|
12
|
+
* Terminus doesn't participate in unlimiting.
|
|
13
|
+
*/
|
|
14
|
+
propagateUnlimitFromFlippedJoin(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=planner-terminus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-terminus.d.ts","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-terminus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,eAAe;;IAC1B,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;gBAGxB,KAAK,EAAE,WAAW;IAI9B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,mBAAmB,IAAI,gBAAgB;IAIvC,oBAAoB,IAAI,IAAI;IAI5B,YAAY,IAAI,YAAY;IAK5B;;;OAGG;IACH,+BAA+B,IAAI,IAAI;CAGxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class PlannerTerminus {
|
|
2
|
+
kind = 'terminus';
|
|
3
|
+
#input;
|
|
4
|
+
constructor(input) {
|
|
5
|
+
this.#input = input;
|
|
6
|
+
}
|
|
7
|
+
get pinned() {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
closestJoinOrSource() {
|
|
11
|
+
return this.#input.closestJoinOrSource();
|
|
12
|
+
}
|
|
13
|
+
propagateConstraints() {
|
|
14
|
+
this.#input.propagateConstraints([], undefined, this);
|
|
15
|
+
}
|
|
16
|
+
estimateCost() {
|
|
17
|
+
// Terminus starts the cost estimation flow with empty branch pattern
|
|
18
|
+
return this.#input.estimateCost([]);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Propagate unlimiting when a parent join is flipped.
|
|
22
|
+
* Terminus doesn't participate in unlimiting.
|
|
23
|
+
*/
|
|
24
|
+
propagateUnlimitFromFlippedJoin() {
|
|
25
|
+
// No-op: terminus doesn't need to unlimit anything
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=planner-terminus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner-terminus.js","sourceRoot":"","sources":["../../../../../zql/src/planner/planner-terminus.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,eAAe;IACjB,IAAI,GAAG,UAAmB,CAAC;IAC3B,MAAM,CAAc;IAE7B,YAAY,KAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC3C,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,YAAY;QACV,qEAAqE;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,+BAA+B;QAC7B,mDAAmD;IACrD,CAAC;CACF"}
|
|
@@ -25,7 +25,7 @@ export interface ExpressionFactory<TSchema extends Schema, TTable extends keyof
|
|
|
25
25
|
}
|
|
26
26
|
export declare class ExpressionBuilder<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string> {
|
|
27
27
|
#private;
|
|
28
|
-
constructor(exists: (relationship: string, cb?: (
|
|
28
|
+
constructor(exists: (relationship: string, cb?: (query: Query<TSchema, TTable>) => Query<TSchema, any>, options?: ExistsOptions) => Condition);
|
|
29
29
|
get eb(): this;
|
|
30
30
|
cmp<TSelector extends NoCompoundTypeSelector<PullTableSchema<TTable, TSchema>>, TOperator extends SimpleOperator>(field: TSelector, op: TOperator, value: GetFilterType<PullTableSchema<TTable, TSchema>, TSelector, TOperator> | ParameterReference): Condition;
|
|
31
31
|
cmp<TSelector extends NoCompoundTypeSelector<PullTableSchema<TTable, TSchema>>>(field: TSelector, value: GetFilterType<PullTableSchema<TTable, TSchema>, TSelector, '='> | ParameterReference): Condition;
|
|
@@ -33,7 +33,7 @@ export declare class ExpressionBuilder<TSchema extends Schema, TTable extends ke
|
|
|
33
33
|
and: typeof and;
|
|
34
34
|
or: typeof or;
|
|
35
35
|
not: typeof not;
|
|
36
|
-
exists: <TRelationship extends AvailableRelationships<TTable, TSchema>>(relationship: TRelationship, cb?: (
|
|
36
|
+
exists: <TRelationship extends AvailableRelationships<TTable, TSchema>>(relationship: TRelationship, cb?: (query: Query<TSchema, DestTableName<TTable, TSchema, TRelationship>>) => Query<TSchema, any>, options?: ExistsOptions) => Condition;
|
|
37
37
|
}
|
|
38
38
|
export declare function and(...conditions: (Condition | undefined)[]): Condition;
|
|
39
39
|
export declare function or(...conditions: (Condition | undefined)[]): Condition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/expression.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,KAAK,EACN,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB,CAChC,OAAO,SAAS,MAAM,EACtB,MAAM,SAAS,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM;IAE/C,CAAC,EAAE,EAAE,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACrD;AAED,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,MAAM,EACtB,MAAM,SAAS,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM;;gBAS7C,MAAM,EAAE,CACN,YAAY,EAAE,MAAM,EACpB,EAAE,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../../../zql/src/query/expression.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;AACjD,OAAO,EACL,aAAa,GAKd,MAAM,mCAAmC,CAAC;AAuC3C,MAAM,OAAO,iBAAiB;IAInB,OAAO,CAID;IAEf,YACE,MAIc;QAEd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAoBD,GAAG,CACD,KAAa,EACb,SAA6D,EAC7D,KAAyC;QAEzC,OAAO,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CACJ,IAAuC,EACvC,EAAkB,EAClB,KAAwC;QAExC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;gBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACvB,CAAC,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAC;YAClC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;gBACxB,CAAC,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAC;YACnC,EAAE;SACH,CAAC;IACJ,CAAC;IAED,GAAG,GAAG,GAAG,CAAC;IACV,EAAE,GAAG,EAAE,CAAC;IACR,GAAG,GAAG,GAAG,CAAC;IAEV,MAAM,GAAG,CACP,YAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../../../zql/src/query/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,13 @@ import type { Query, RunOptions } from './query.ts';
|
|
|
8
8
|
import type { TTL } from './ttl.ts';
|
|
9
9
|
import type { ErroredQuery } from '../../../zero-protocol/src/custom-queries.ts';
|
|
10
10
|
export type CommitListener = () => void;
|
|
11
|
-
export type GotCallback = (got: boolean, error?: ErroredQuery
|
|
11
|
+
export type GotCallback = (got: boolean, error?: ErroredQuery) => void;
|
|
12
12
|
export interface NewQueryDelegate {
|
|
13
13
|
newQuery<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn>(schema: TSchema, table: TTable, ast: AST, format: Format): Query<TSchema, TTable, TReturn>;
|
|
14
14
|
}
|
|
15
15
|
export interface QueryDelegate extends BuilderDelegate, MetricsDelegate {
|
|
16
|
-
addServerQuery(ast: AST, ttl: TTL, gotCallback?: GotCallback
|
|
17
|
-
addCustomQuery(ast: AST, customQueryID: CustomQueryID, ttl: TTL, gotCallback?: GotCallback
|
|
16
|
+
addServerQuery(ast: AST, ttl: TTL, gotCallback?: GotCallback): () => void;
|
|
17
|
+
addCustomQuery(ast: AST, customQueryID: CustomQueryID, ttl: TTL, gotCallback?: GotCallback): () => void;
|
|
18
18
|
updateServerQuery(ast: AST, ttl: TTL): void;
|
|
19
19
|
updateCustomQuery(customQueryID: CustomQueryID, ttl: TTL): void;
|
|
20
20
|
flushQueryChanges(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-delegate.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query-delegate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8CAA8C,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"query-delegate.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query-delegate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8CAA8C,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CACN,OAAO,SAAS,MAAM,EACtB,MAAM,SAAS,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC/C,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,GACb,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,eAAe;IACrE,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,IAAI,CAAC;IAC1E,cAAc,CACZ,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,IAAI,CAAC;IACd,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAC5C,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAChE,iBAAiB,IAAI,IAAI,CAAC;IAC1B,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,IAAI,CAAC;IACpD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAElD;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAElD;;;;;;OAMG;IACH,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC"}
|
|
@@ -9,7 +9,7 @@ import { delegateSymbol, type ExistsOptions, type GetFilterType, type HumanReada
|
|
|
9
9
|
import { type TTL } from './ttl.ts';
|
|
10
10
|
import type { TypedView } from './typed-view.ts';
|
|
11
11
|
export type AnyQuery = Query<Schema, string, any>;
|
|
12
|
-
export declare function materialize<S extends Schema, T, Q>(query: Q, delegate: QueryDelegate, factoryOrOptions?: ViewFactory<S, QueryTable<Q>, QueryRowType<Q>, T> | MaterializeOptions
|
|
12
|
+
export declare function materialize<S extends Schema, T, Q>(query: Q, delegate: QueryDelegate, factoryOrOptions?: ViewFactory<S, QueryTable<Q>, QueryRowType<Q>, T> | MaterializeOptions, maybeOptions?: MaterializeOptions): T | TypedView<{
|
|
13
13
|
[x: string]: any;
|
|
14
14
|
}>;
|
|
15
15
|
declare const astSymbol: unique symbol;
|
|
@@ -22,7 +22,7 @@ export declare abstract class AbstractQuery<TSchema extends Schema, TTable exten
|
|
|
22
22
|
readonly _ast: AST;
|
|
23
23
|
readonly format: Format;
|
|
24
24
|
readonly customQueryID: CustomQueryID | undefined;
|
|
25
|
-
constructor(delegate: QueryDelegate | undefined, schema: TSchema, tableName: TTable, ast: AST, format: Format, system: System, customQueryID: CustomQueryID | undefined, currentJunction?: string
|
|
25
|
+
constructor(delegate: QueryDelegate | undefined, schema: TSchema, tableName: TTable, ast: AST, format: Format, system: System, customQueryID: CustomQueryID | undefined, currentJunction?: string);
|
|
26
26
|
[delegateSymbol](delegate: QueryDelegate): Query<TSchema, TTable, TReturn>;
|
|
27
27
|
nameAndArgs(name: string, args: ReadonlyArray<ReadonlyJSONValue>): Query<TSchema, TTable, TReturn>;
|
|
28
28
|
get [astSymbol](): AST;
|
|
@@ -30,18 +30,18 @@ export declare abstract class AbstractQuery<TSchema extends Schema, TTable exten
|
|
|
30
30
|
hash(): string;
|
|
31
31
|
protected abstract [newQuerySymbol]<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn>(delegate: QueryDelegate | undefined, schema: TSchema, table: TTable, ast: AST, format: Format, customQueryID: CustomQueryID | undefined, currentJunction: string | undefined): AbstractQuery<TSchema, TTable, TReturn>;
|
|
32
32
|
one: () => Query<TSchema, TTable, TReturn | undefined>;
|
|
33
|
-
whereExists: (relationship: string, cbOrOptions?: ((q: AnyQuery) => AnyQuery) | ExistsOptions
|
|
33
|
+
whereExists: (relationship: string, cbOrOptions?: ((q: AnyQuery) => AnyQuery) | ExistsOptions, options?: ExistsOptions) => Query<TSchema, TTable, TReturn>;
|
|
34
34
|
related: (relationship: string, cb?: (q: AnyQuery) => AnyQuery) => AnyQuery;
|
|
35
35
|
where: (fieldOrExpressionFactory: string | ExpressionFactory<TSchema, TTable>, opOrValue?: SimpleOperator | GetFilterType<any, any, any> | Parameter, value?: GetFilterType<any, any, any> | Parameter) => Query<TSchema, TTable, TReturn>;
|
|
36
36
|
start: (row: Partial<PullRow<TTable, TSchema>>, opts?: {
|
|
37
37
|
inclusive: boolean;
|
|
38
|
-
}
|
|
38
|
+
}) => Query<TSchema, TTable, TReturn>;
|
|
39
39
|
limit: (limit: number) => Query<TSchema, TTable, TReturn>;
|
|
40
40
|
orderBy: <TSelector extends keyof TSchema["tables"][TTable]["columns"]>(field: TSelector, direction: "asc" | "desc") => Query<TSchema, TTable, TReturn>;
|
|
41
|
-
protected _exists: (relationship: string, cb: ((query: AnyQuery) => AnyQuery) | undefined, options?: ExistsOptions
|
|
41
|
+
protected _exists: (relationship: string, cb: ((query: AnyQuery) => AnyQuery) | undefined, options?: ExistsOptions) => Condition;
|
|
42
42
|
protected _completeAst(): AST;
|
|
43
|
-
abstract materialize(ttl?: TTL
|
|
44
|
-
abstract materialize<T>(factory: ViewFactory<TSchema, TTable, TReturn, T>, ttl?: TTL
|
|
43
|
+
abstract materialize(ttl?: TTL): TypedView<HumanReadable<TReturn>>;
|
|
44
|
+
abstract materialize<T>(factory: ViewFactory<TSchema, TTable, TReturn, T>, ttl?: TTL): T;
|
|
45
45
|
abstract run(options?: RunOptions): Promise<HumanReadable<TReturn>>;
|
|
46
46
|
abstract preload(): {
|
|
47
47
|
cleanup: () => void;
|
|
@@ -52,7 +52,7 @@ declare const completedAstSymbol: unique symbol;
|
|
|
52
52
|
export declare function completedAST(q: Query<Schema, string, any>): AST;
|
|
53
53
|
export declare class QueryImpl<TSchema extends Schema, TTable extends keyof TSchema['tables'] & string, TReturn = PullRow<TTable, TSchema>> extends AbstractQuery<TSchema, TTable, TReturn> {
|
|
54
54
|
#private;
|
|
55
|
-
constructor(delegate: QueryDelegate | undefined, schema: TSchema, tableName: TTable, ast?: AST, format?: Format, system?: System, customQueryID?: CustomQueryID
|
|
55
|
+
constructor(delegate: QueryDelegate | undefined, schema: TSchema, tableName: TTable, ast?: AST, format?: Format, system?: System, customQueryID?: CustomQueryID, currentJunction?: string);
|
|
56
56
|
get [completedAstSymbol](): AST;
|
|
57
57
|
protected [newQuerySymbol]<TSchema extends Schema, TTable extends string, TReturn>(delegate: QueryDelegate | undefined, schema: TSchema, tableName: TTable, ast: AST, format: Format, customQueryID: CustomQueryID | undefined, currentJunction: string | undefined): QueryImpl<TSchema, TTable, TReturn>;
|
|
58
58
|
materialize<T>(factoryOrTTL?: ViewFactory<TSchema, TTable, TReturn, T> | TTL, ttl?: TTL): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-impl.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query-impl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAEL,KAAK,GAAG,EAER,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,MAAM,EACZ,MAAM,mCAAmC,CAAC;AAO3C,OAAO,KAAK,EAAC,MAAM,EAAc,MAAM,mCAAmC,CAAC;AAM3E,OAAO,KAAK,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-impl.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/query-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ import { buildPipeline } from "../builder/builder.js";
|
|
|
8
8
|
import { NotImplementedError } from "../error.js";
|
|
9
9
|
import { ArrayView } from "../ivm/array-view.js";
|
|
10
10
|
import { defaultFormat } from "../ivm/default-format.js";
|
|
11
|
-
import { assertNoNotExists } from "./assert-no-not-exists.js";
|
|
12
11
|
import { and, cmp, ExpressionBuilder, simplifyCondition, } from "./expression.js";
|
|
13
12
|
import { delegateSymbol, } from "./query.js";
|
|
14
13
|
import { DEFAULT_PRELOAD_TTL_MS, DEFAULT_TTL_MS } from "./ttl.js";
|
|
@@ -196,11 +195,6 @@ export class AbstractQuery {
|
|
|
196
195
|
cond = and(existingWhere, cond);
|
|
197
196
|
}
|
|
198
197
|
const where = simplifyCondition(cond);
|
|
199
|
-
if (this.#system === 'client') {
|
|
200
|
-
// We need to do this after the DNF since the DNF conversion might change
|
|
201
|
-
// an EXISTS to a NOT EXISTS condition (and vice versa).
|
|
202
|
-
assertNoNotExists(where);
|
|
203
|
-
}
|
|
204
198
|
return this[newQuerySymbol](this._delegate, this.#schema, this.#tableName, {
|
|
205
199
|
...this._ast,
|
|
206
200
|
where,
|