@antelopejs/postgres 0.0.1-stage → 0.2.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/LICENSE +190 -0
- package/README.md +152 -0
- package/dist/config.d.ts +38 -0
- package/dist/config.js +91 -0
- package/dist/config.js.map +1 -0
- package/dist/connection.d.ts +14 -0
- package/dist/connection.js +128 -0
- package/dist/connection.js.map +1 -0
- package/dist/implementations/catalog/index.d.ts +7 -0
- package/dist/implementations/catalog/index.js +60 -0
- package/dist/implementations/catalog/index.js.map +1 -0
- package/dist/implementations/database/changes.d.ts +19 -0
- package/dist/implementations/database/changes.js +100 -0
- package/dist/implementations/database/changes.js.map +1 -0
- package/dist/implementations/database/coerce.d.ts +15 -0
- package/dist/implementations/database/coerce.js +195 -0
- package/dist/implementations/database/coerce.js.map +1 -0
- package/dist/implementations/database/context.d.ts +32 -0
- package/dist/implementations/database/context.js +50 -0
- package/dist/implementations/database/context.js.map +1 -0
- package/dist/implementations/database/cursors.d.ts +16 -0
- package/dist/implementations/database/cursors.js +269 -0
- package/dist/implementations/database/cursors.js.map +1 -0
- package/dist/implementations/database/ddl.d.ts +62 -0
- package/dist/implementations/database/ddl.js +355 -0
- package/dist/implementations/database/ddl.js.map +1 -0
- package/dist/implementations/database/expression.d.ts +7 -0
- package/dist/implementations/database/expression.js +30 -0
- package/dist/implementations/database/expression.js.map +1 -0
- package/dist/implementations/database/external-catalog.d.ts +37 -0
- package/dist/implementations/database/external-catalog.js +96 -0
- package/dist/implementations/database/external-catalog.js.map +1 -0
- package/dist/implementations/database/external-column-profile.d.ts +18 -0
- package/dist/implementations/database/external-column-profile.js +223 -0
- package/dist/implementations/database/external-column-profile.js.map +1 -0
- package/dist/implementations/database/external-declarations.d.ts +9 -0
- package/dist/implementations/database/external-declarations.js +67 -0
- package/dist/implementations/database/external-declarations.js.map +1 -0
- package/dist/implementations/database/external-discovery.d.ts +39 -0
- package/dist/implementations/database/external-discovery.js +219 -0
- package/dist/implementations/database/external-discovery.js.map +1 -0
- package/dist/implementations/database/external-errors.d.ts +20 -0
- package/dist/implementations/database/external-errors.js +67 -0
- package/dist/implementations/database/external-errors.js.map +1 -0
- package/dist/implementations/database/external-measures.d.ts +11 -0
- package/dist/implementations/database/external-measures.js +82 -0
- package/dist/implementations/database/external-measures.js.map +1 -0
- package/dist/implementations/database/external-payload.d.ts +32 -0
- package/dist/implementations/database/external-payload.js +206 -0
- package/dist/implementations/database/external-payload.js.map +1 -0
- package/dist/implementations/database/external-profile.d.ts +4 -0
- package/dist/implementations/database/external-profile.js +129 -0
- package/dist/implementations/database/external-profile.js.map +1 -0
- package/dist/implementations/database/external-reference.d.ts +2 -0
- package/dist/implementations/database/external-reference.js +49 -0
- package/dist/implementations/database/external-reference.js.map +1 -0
- package/dist/implementations/database/external-refusals.d.ts +5 -0
- package/dist/implementations/database/external-refusals.js +23 -0
- package/dist/implementations/database/external-refusals.js.map +1 -0
- package/dist/implementations/database/external-rows.d.ts +2 -0
- package/dist/implementations/database/external-rows.js +81 -0
- package/dist/implementations/database/external-rows.js.map +1 -0
- package/dist/implementations/database/external-sample.d.ts +9 -0
- package/dist/implementations/database/external-sample.js +29 -0
- package/dist/implementations/database/external-sample.js.map +1 -0
- package/dist/implementations/database/external-schema.d.ts +3 -0
- package/dist/implementations/database/external-schema.js +111 -0
- package/dist/implementations/database/external-schema.js.map +1 -0
- package/dist/implementations/database/external-types.d.ts +37 -0
- package/dist/implementations/database/external-types.js +387 -0
- package/dist/implementations/database/external-types.js.map +1 -0
- package/dist/implementations/database/external-writes.d.ts +3 -0
- package/dist/implementations/database/external-writes.js +298 -0
- package/dist/implementations/database/external-writes.js.map +1 -0
- package/dist/implementations/database/feed-pipeline.d.ts +12 -0
- package/dist/implementations/database/feed-pipeline.js +92 -0
- package/dist/implementations/database/feed-pipeline.js.map +1 -0
- package/dist/implementations/database/feeds.d.ts +34 -0
- package/dist/implementations/database/feeds.js +338 -0
- package/dist/implementations/database/feeds.js.map +1 -0
- package/dist/implementations/database/fields.d.ts +37 -0
- package/dist/implementations/database/fields.js +114 -0
- package/dist/implementations/database/fields.js.map +1 -0
- package/dist/implementations/database/identifier.d.ts +8 -0
- package/dist/implementations/database/identifier.js +62 -0
- package/dist/implementations/database/identifier.js.map +1 -0
- package/dist/implementations/database/instances.d.ts +4 -0
- package/dist/implementations/database/instances.js +57 -0
- package/dist/implementations/database/instances.js.map +1 -0
- package/dist/implementations/database/introspect.d.ts +3 -0
- package/dist/implementations/database/introspect.js +36 -0
- package/dist/implementations/database/introspect.js.map +1 -0
- package/dist/implementations/database/jsonb.d.ts +29 -0
- package/dist/implementations/database/jsonb.js +54 -0
- package/dist/implementations/database/jsonb.js.map +1 -0
- package/dist/implementations/database/listener.d.ts +3 -0
- package/dist/implementations/database/listener.js +93 -0
- package/dist/implementations/database/listener.js.map +1 -0
- package/dist/implementations/database/migrate.d.ts +6 -0
- package/dist/implementations/database/migrate.js +282 -0
- package/dist/implementations/database/migrate.js.map +1 -0
- package/dist/implementations/database/payload.d.ts +24 -0
- package/dist/implementations/database/payload.js +113 -0
- package/dist/implementations/database/payload.js.map +1 -0
- package/dist/implementations/database/pipeline.d.ts +10 -0
- package/dist/implementations/database/pipeline.js +56 -0
- package/dist/implementations/database/pipeline.js.map +1 -0
- package/dist/implementations/database/query.d.ts +11 -0
- package/dist/implementations/database/query.js +189 -0
- package/dist/implementations/database/query.js.map +1 -0
- package/dist/implementations/database/readings.d.ts +17 -0
- package/dist/implementations/database/readings.js +133 -0
- package/dist/implementations/database/readings.js.map +1 -0
- package/dist/implementations/database/reaper.d.ts +6 -0
- package/dist/implementations/database/reaper.js +121 -0
- package/dist/implementations/database/reaper.js.map +1 -0
- package/dist/implementations/database/relation.d.ts +65 -0
- package/dist/implementations/database/relation.js +237 -0
- package/dist/implementations/database/relation.js.map +1 -0
- package/dist/implementations/database/result.d.ts +4 -0
- package/dist/implementations/database/result.js +70 -0
- package/dist/implementations/database/result.js.map +1 -0
- package/dist/implementations/database/row-source.d.ts +64 -0
- package/dist/implementations/database/row-source.js +279 -0
- package/dist/implementations/database/row-source.js.map +1 -0
- package/dist/implementations/database/schema.d.ts +15 -0
- package/dist/implementations/database/schema.js +143 -0
- package/dist/implementations/database/schema.js.map +1 -0
- package/dist/implementations/database/selection.d.ts +18 -0
- package/dist/implementations/database/selection.js +129 -0
- package/dist/implementations/database/selection.js.map +1 -0
- package/dist/implementations/database/sql.d.ts +24 -0
- package/dist/implementations/database/sql.js +48 -0
- package/dist/implementations/database/sql.js.map +1 -0
- package/dist/implementations/database/stage.d.ts +22 -0
- package/dist/implementations/database/stage.js +76 -0
- package/dist/implementations/database/stage.js.map +1 -0
- package/dist/implementations/database/stages-aggregate.d.ts +11 -0
- package/dist/implementations/database/stages-aggregate.js +112 -0
- package/dist/implementations/database/stages-aggregate.js.map +1 -0
- package/dist/implementations/database/stages-array.d.ts +2 -0
- package/dist/implementations/database/stages-array.js +162 -0
- package/dist/implementations/database/stages-array.js.map +1 -0
- package/dist/implementations/database/stages-core.d.ts +2 -0
- package/dist/implementations/database/stages-core.js +107 -0
- package/dist/implementations/database/stages-core.js.map +1 -0
- package/dist/implementations/database/stages-date.d.ts +2 -0
- package/dist/implementations/database/stages-date.js +65 -0
- package/dist/implementations/database/stages-date.js.map +1 -0
- package/dist/implementations/database/stages-group.d.ts +5 -0
- package/dist/implementations/database/stages-group.js +151 -0
- package/dist/implementations/database/stages-group.js.map +1 -0
- package/dist/implementations/database/stages-join.d.ts +2 -0
- package/dist/implementations/database/stages-join.js +162 -0
- package/dist/implementations/database/stages-join.js.map +1 -0
- package/dist/implementations/database/stages-numeric.d.ts +2 -0
- package/dist/implementations/database/stages-numeric.js +152 -0
- package/dist/implementations/database/stages-numeric.js.map +1 -0
- package/dist/implementations/database/stages-object.d.ts +2 -0
- package/dist/implementations/database/stages-object.js +81 -0
- package/dist/implementations/database/stages-object.js.map +1 -0
- package/dist/implementations/database/stages-projection.d.ts +2 -0
- package/dist/implementations/database/stages-projection.js +75 -0
- package/dist/implementations/database/stages-projection.js.map +1 -0
- package/dist/implementations/database/stages-rows.d.ts +2 -0
- package/dist/implementations/database/stages-rows.js +101 -0
- package/dist/implementations/database/stages-rows.js.map +1 -0
- package/dist/implementations/database/stages-selection.d.ts +2 -0
- package/dist/implementations/database/stages-selection.js +146 -0
- package/dist/implementations/database/stages-selection.js.map +1 -0
- package/dist/implementations/database/stages-string.d.ts +2 -0
- package/dist/implementations/database/stages-string.js +101 -0
- package/dist/implementations/database/stages-string.js.map +1 -0
- package/dist/implementations/database/subquery.d.ts +4 -0
- package/dist/implementations/database/subquery.js +49 -0
- package/dist/implementations/database/subquery.js.map +1 -0
- package/dist/implementations/database/types.d.ts +37 -0
- package/dist/implementations/database/types.js +57 -0
- package/dist/implementations/database/types.js.map +1 -0
- package/dist/implementations/database/utils.d.ts +16 -0
- package/dist/implementations/database/utils.js +38 -0
- package/dist/implementations/database/utils.js.map +1 -0
- package/dist/implementations/database/value.d.ts +10 -0
- package/dist/implementations/database/value.js +153 -0
- package/dist/implementations/database/value.js.map +1 -0
- package/dist/implementations/database/writes-atomic.d.ts +6 -0
- package/dist/implementations/database/writes-atomic.js +93 -0
- package/dist/implementations/database/writes-atomic.js.map +1 -0
- package/dist/implementations/database/writes-identity.d.ts +4 -0
- package/dist/implementations/database/writes-identity.js +181 -0
- package/dist/implementations/database/writes-identity.js.map +1 -0
- package/dist/implementations/database/writes-insert.d.ts +2 -0
- package/dist/implementations/database/writes-insert.js +136 -0
- package/dist/implementations/database/writes-insert.js.map +1 -0
- package/dist/implementations/database/writes-shared.d.ts +36 -0
- package/dist/implementations/database/writes-shared.js +64 -0
- package/dist/implementations/database/writes-shared.js.map +1 -0
- package/dist/implementations/database/writes.d.ts +16 -0
- package/dist/implementations/database/writes.js +52 -0
- package/dist/implementations/database/writes.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +6 -0
- package/dist/logger.js.map +1 -0
- package/dist/test/antelope.test.d.ts +2 -0
- package/dist/test/antelope.test.js +89 -0
- package/dist/test/antelope.test.js.map +1 -0
- package/dist/test/atomic.test.d.ts +1 -0
- package/dist/test/atomic.test.js +132 -0
- package/dist/test/atomic.test.js.map +1 -0
- package/dist/test/catalog-owned.test.d.ts +1 -0
- package/dist/test/catalog-owned.test.js +17 -0
- package/dist/test/catalog-owned.test.js.map +1 -0
- package/dist/test/contention.test.d.ts +1 -0
- package/dist/test/contention.test.js +183 -0
- package/dist/test/contention.test.js.map +1 -0
- package/dist/test/indexes.test.d.ts +1 -0
- package/dist/test/indexes.test.js +311 -0
- package/dist/test/indexes.test.js.map +1 -0
- package/dist/test/unit/changes.spec.d.ts +1 -0
- package/dist/test/unit/changes.spec.js +103 -0
- package/dist/test/unit/changes.spec.js.map +1 -0
- package/dist/test/unit/coerce.spec.d.ts +1 -0
- package/dist/test/unit/coerce.spec.js +162 -0
- package/dist/test/unit/coerce.spec.js.map +1 -0
- package/dist/test/unit/config.spec.d.ts +1 -0
- package/dist/test/unit/config.spec.js +123 -0
- package/dist/test/unit/config.spec.js.map +1 -0
- package/dist/test/unit/connection.spec.d.ts +1 -0
- package/dist/test/unit/connection.spec.js +171 -0
- package/dist/test/unit/connection.spec.js.map +1 -0
- package/dist/test/unit/cursors.spec.d.ts +1 -0
- package/dist/test/unit/cursors.spec.js +823 -0
- package/dist/test/unit/cursors.spec.js.map +1 -0
- package/dist/test/unit/ddl.spec.d.ts +1 -0
- package/dist/test/unit/ddl.spec.js +571 -0
- package/dist/test/unit/ddl.spec.js.map +1 -0
- package/dist/test/unit/expression-array.spec.d.ts +1 -0
- package/dist/test/unit/expression-array.spec.js +488 -0
- package/dist/test/unit/expression-array.spec.js.map +1 -0
- package/dist/test/unit/expression-date.spec.d.ts +1 -0
- package/dist/test/unit/expression-date.spec.js +329 -0
- package/dist/test/unit/expression-date.spec.js.map +1 -0
- package/dist/test/unit/expression-numeric.spec.d.ts +1 -0
- package/dist/test/unit/expression-numeric.spec.js +362 -0
- package/dist/test/unit/expression-numeric.spec.js.map +1 -0
- package/dist/test/unit/expression-object.spec.d.ts +1 -0
- package/dist/test/unit/expression-object.spec.js +230 -0
- package/dist/test/unit/expression-object.spec.js.map +1 -0
- package/dist/test/unit/expression-stages.spec.d.ts +1 -0
- package/dist/test/unit/expression-stages.spec.js +82 -0
- package/dist/test/unit/expression-stages.spec.js.map +1 -0
- package/dist/test/unit/expression-string.spec.d.ts +1 -0
- package/dist/test/unit/expression-string.spec.js +249 -0
- package/dist/test/unit/expression-string.spec.js.map +1 -0
- package/dist/test/unit/expression.spec.d.ts +1 -0
- package/dist/test/unit/expression.spec.js +449 -0
- package/dist/test/unit/expression.spec.js.map +1 -0
- package/dist/test/unit/external-comparisons.spec.d.ts +1 -0
- package/dist/test/unit/external-comparisons.spec.js +147 -0
- package/dist/test/unit/external-comparisons.spec.js.map +1 -0
- package/dist/test/unit/external-types.spec.d.ts +1 -0
- package/dist/test/unit/external-types.spec.js +228 -0
- package/dist/test/unit/external-types.spec.js.map +1 -0
- package/dist/test/unit/feeds.spec.d.ts +1 -0
- package/dist/test/unit/feeds.spec.js +374 -0
- package/dist/test/unit/feeds.spec.js.map +1 -0
- package/dist/test/unit/fields.spec.d.ts +1 -0
- package/dist/test/unit/fields.spec.js +79 -0
- package/dist/test/unit/fields.spec.js.map +1 -0
- package/dist/test/unit/identifier.spec.d.ts +1 -0
- package/dist/test/unit/identifier.spec.js +50 -0
- package/dist/test/unit/identifier.spec.js.map +1 -0
- package/dist/test/unit/payload.spec.d.ts +1 -0
- package/dist/test/unit/payload.spec.js +278 -0
- package/dist/test/unit/payload.spec.js.map +1 -0
- package/dist/test/unit/pipeline-aggregate.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-aggregate.spec.js +199 -0
- package/dist/test/unit/pipeline-aggregate.spec.js.map +1 -0
- package/dist/test/unit/pipeline-fixture.d.ts +79 -0
- package/dist/test/unit/pipeline-fixture.js +277 -0
- package/dist/test/unit/pipeline-fixture.js.map +1 -0
- package/dist/test/unit/pipeline-group.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-group.spec.js +390 -0
- package/dist/test/unit/pipeline-group.spec.js.map +1 -0
- package/dist/test/unit/pipeline-join.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-join.spec.js +165 -0
- package/dist/test/unit/pipeline-join.spec.js.map +1 -0
- package/dist/test/unit/pipeline-lookup.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-lookup.spec.js +268 -0
- package/dist/test/unit/pipeline-lookup.spec.js.map +1 -0
- package/dist/test/unit/pipeline-projection.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-projection.spec.js +183 -0
- package/dist/test/unit/pipeline-projection.spec.js.map +1 -0
- package/dist/test/unit/pipeline-rows.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-rows.spec.js +321 -0
- package/dist/test/unit/pipeline-rows.spec.js.map +1 -0
- package/dist/test/unit/pipeline-selection.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-selection.spec.js +257 -0
- package/dist/test/unit/pipeline-selection.spec.js.map +1 -0
- package/dist/test/unit/pipeline-stages.spec.d.ts +1 -0
- package/dist/test/unit/pipeline-stages.spec.js +226 -0
- package/dist/test/unit/pipeline-stages.spec.js.map +1 -0
- package/dist/test/unit/pipeline.spec.d.ts +1 -0
- package/dist/test/unit/pipeline.spec.js +72 -0
- package/dist/test/unit/pipeline.spec.js.map +1 -0
- package/dist/test/unit/query.spec.d.ts +1 -0
- package/dist/test/unit/query.spec.js +212 -0
- package/dist/test/unit/query.spec.js.map +1 -0
- package/dist/test/unit/reaper.spec.d.ts +1 -0
- package/dist/test/unit/reaper.spec.js +122 -0
- package/dist/test/unit/reaper.spec.js.map +1 -0
- package/dist/test/unit/relation.spec.d.ts +1 -0
- package/dist/test/unit/relation.spec.js +348 -0
- package/dist/test/unit/relation.spec.js.map +1 -0
- package/dist/test/unit/result.spec.d.ts +1 -0
- package/dist/test/unit/result.spec.js +128 -0
- package/dist/test/unit/result.spec.js.map +1 -0
- package/dist/test/unit/row-source.spec.d.ts +1 -0
- package/dist/test/unit/row-source.spec.js +141 -0
- package/dist/test/unit/row-source.spec.js.map +1 -0
- package/dist/test/unit/schema.spec.d.ts +1 -0
- package/dist/test/unit/schema.spec.js +44 -0
- package/dist/test/unit/schema.spec.js.map +1 -0
- package/dist/test/unit/selection.spec.d.ts +1 -0
- package/dist/test/unit/selection.spec.js +182 -0
- package/dist/test/unit/selection.spec.js.map +1 -0
- package/dist/test/unit/spec-fixture.d.ts +11 -0
- package/dist/test/unit/spec-fixture.js +71 -0
- package/dist/test/unit/spec-fixture.js.map +1 -0
- package/dist/test/unit/sql.spec.d.ts +1 -0
- package/dist/test/unit/sql.spec.js +38 -0
- package/dist/test/unit/sql.spec.js.map +1 -0
- package/dist/test/unit/subquery.spec.d.ts +1 -0
- package/dist/test/unit/subquery.spec.js +154 -0
- package/dist/test/unit/subquery.spec.js.map +1 -0
- package/dist/test/unit/types.spec.d.ts +1 -0
- package/dist/test/unit/types.spec.js +39 -0
- package/dist/test/unit/types.spec.js.map +1 -0
- package/dist/test/unit/utils.spec.d.ts +1 -0
- package/dist/test/unit/utils.spec.js +22 -0
- package/dist/test/unit/utils.spec.js.map +1 -0
- package/dist/test/unit/value.spec.d.ts +1 -0
- package/dist/test/unit/value.spec.js +195 -0
- package/dist/test/unit/value.spec.js.map +1 -0
- package/dist/test/unit/writes-atomic.spec.d.ts +1 -0
- package/dist/test/unit/writes-atomic.spec.js +66 -0
- package/dist/test/unit/writes-atomic.spec.js.map +1 -0
- package/dist/test/unit/writes-insert.spec.d.ts +1 -0
- package/dist/test/unit/writes-insert.spec.js +270 -0
- package/dist/test/unit/writes-insert.spec.js.map +1 -0
- package/dist/test/unit/writes-replace.spec.d.ts +1 -0
- package/dist/test/unit/writes-replace.spec.js +100 -0
- package/dist/test/unit/writes-replace.spec.js.map +1 -0
- package/dist/test/unit/writes-target.spec.d.ts +1 -0
- package/dist/test/unit/writes-target.spec.js +118 -0
- package/dist/test/unit/writes-target.spec.js.map +1 -0
- package/dist/test/unit/writes-update.spec.d.ts +1 -0
- package/dist/test/unit/writes-update.spec.js +297 -0
- package/dist/test/unit/writes-update.spec.js.map +1 -0
- package/dist/test-external/catalog.test.d.ts +1 -0
- package/dist/test-external/catalog.test.js +348 -0
- package/dist/test-external/catalog.test.js.map +1 -0
- package/dist/test-external/fixture.d.ts +7 -0
- package/dist/test-external/fixture.js +163 -0
- package/dist/test-external/fixture.js.map +1 -0
- package/dist/test-external/native.test.d.ts +1 -0
- package/dist/test-external/native.test.js +132 -0
- package/dist/test-external/native.test.js.map +1 -0
- package/dist/test-external/reads.test.d.ts +1 -0
- package/dist/test-external/reads.test.js +232 -0
- package/dist/test-external/reads.test.js.map +1 -0
- package/dist/test-external/refusals.test.d.ts +1 -0
- package/dist/test-external/refusals.test.js +93 -0
- package/dist/test-external/refusals.test.js.map +1 -0
- package/dist/test-external/registration.test.d.ts +1 -0
- package/dist/test-external/registration.test.js +127 -0
- package/dist/test-external/registration.test.js.map +1 -0
- package/dist/test-external/sales.d.ts +5 -0
- package/dist/test-external/sales.js +126 -0
- package/dist/test-external/sales.js.map +1 -0
- package/dist/test-external/startup.test.d.ts +1 -0
- package/dist/test-external/startup.test.js +15 -0
- package/dist/test-external/startup.test.js.map +1 -0
- package/dist/test-external/writes.test.d.ts +1 -0
- package/dist/test-external/writes.test.js +315 -0
- package/dist/test-external/writes.test.js.map +1 -0
- package/package.json +77 -7
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ID_AS_ASSERTION = exports.ID_AS_KEY = void 0;
|
|
7
|
+
exports.MembersByColumn = MembersByColumn;
|
|
8
|
+
exports.NoIdSupplied = NoIdSupplied;
|
|
9
|
+
exports.SplitPayload = SplitPayload;
|
|
10
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
11
|
+
const value_1 = require("./value");
|
|
12
|
+
const readings_1 = require("./readings");
|
|
13
|
+
const types_1 = require("./types");
|
|
14
|
+
const writes_shared_1 = require("./writes-shared");
|
|
15
|
+
const utils_1 = require("./utils");
|
|
16
|
+
function MembersByColumn(split) {
|
|
17
|
+
return new Map(split.members.map((member) => [member.column, member.value]));
|
|
18
|
+
}
|
|
19
|
+
const ID_AS_KEY = (split, value) => {
|
|
20
|
+
split.members.push({ column: utils_1.ID_COLUMN, value });
|
|
21
|
+
};
|
|
22
|
+
exports.ID_AS_KEY = ID_AS_KEY;
|
|
23
|
+
const ID_AS_ASSERTION = (split, value) => {
|
|
24
|
+
split.identity = value;
|
|
25
|
+
};
|
|
26
|
+
exports.ID_AS_ASSERTION = ID_AS_ASSERTION;
|
|
27
|
+
const ADAPTER_OWNED = "is a column this adapter owns and no payload may write it";
|
|
28
|
+
function Refusal(name) {
|
|
29
|
+
return new Error(`Payload key '${name}' ${ADAPTER_OWNED}`);
|
|
30
|
+
}
|
|
31
|
+
function Decoded(walk, value) {
|
|
32
|
+
const compiled = (0, value_1.DecodeValue)(value, walk.context);
|
|
33
|
+
(0, node_assert_1.default)(compiled, "A supplied payload value always decodes");
|
|
34
|
+
return compiled;
|
|
35
|
+
}
|
|
36
|
+
function Collect(walk, name, value) {
|
|
37
|
+
Object.defineProperty(walk.added, name, {
|
|
38
|
+
value,
|
|
39
|
+
enumerable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function NoIdSupplied(value) {
|
|
45
|
+
return value === undefined || value === null;
|
|
46
|
+
}
|
|
47
|
+
function KeySubject(name) {
|
|
48
|
+
return `Payload key '${name}'`;
|
|
49
|
+
}
|
|
50
|
+
function TakeReserved(walk, name, value) {
|
|
51
|
+
if (name === utils_1.INSTANCE_COLUMN) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (name !== utils_1.ID_COLUMN) {
|
|
55
|
+
throw Refusal(name);
|
|
56
|
+
}
|
|
57
|
+
if (NoIdSupplied(value)) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
walk.options.id(walk.split, (0, readings_1.WrittenAs)(Decoded(walk, value), types_1.TEXT, KeySubject(name)));
|
|
61
|
+
}
|
|
62
|
+
function TakeDeclared(walk, name, spec, value) {
|
|
63
|
+
if (value === undefined) {
|
|
64
|
+
walk.split.cleared.push(spec.column);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (value === null && (0, types_1.IsJsonBacked)(spec.type)) {
|
|
68
|
+
walk.split.members.push({
|
|
69
|
+
column: spec.column,
|
|
70
|
+
value: { sql: writes_shared_1.NULL_VALUE, type: spec.type },
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
walk.split.members.push({
|
|
75
|
+
column: spec.column,
|
|
76
|
+
value: (0, readings_1.WrittenAs)(Decoded(walk, value), spec.type, KeySubject(name)),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function TakeUndeclared(walk, name, value) {
|
|
80
|
+
if (value === undefined) {
|
|
81
|
+
walk.split.removed.push(name);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
Collect(walk, name, value);
|
|
85
|
+
}
|
|
86
|
+
function TakeKey(walk, name, value) {
|
|
87
|
+
if (utils_1.RESERVED_COLUMNS.includes(name)) {
|
|
88
|
+
TakeReserved(walk, name, value);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (Object.hasOwn(walk.shape.fields, name)) {
|
|
92
|
+
TakeDeclared(walk, name, walk.shape.fields[name], value);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
TakeUndeclared(walk, name, value);
|
|
96
|
+
}
|
|
97
|
+
function SplitPayload(document, shape, context, options) {
|
|
98
|
+
const walk = {
|
|
99
|
+
split: { members: [], cleared: [], removed: [] },
|
|
100
|
+
added: {},
|
|
101
|
+
shape,
|
|
102
|
+
context,
|
|
103
|
+
options,
|
|
104
|
+
};
|
|
105
|
+
for (const [name, value] of Object.entries(document)) {
|
|
106
|
+
TakeKey(walk, name, value);
|
|
107
|
+
}
|
|
108
|
+
if (Object.keys(walk.added).length > 0) {
|
|
109
|
+
walk.split.extra = (0, value_1.DecodeValue)(walk.added, context);
|
|
110
|
+
}
|
|
111
|
+
return walk.split;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/implementations/database/payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QueryStage } from "./utils";
|
|
2
|
+
import type { Relation } from "./relation";
|
|
3
|
+
import type { DecodingContext } from "./context";
|
|
4
|
+
export type PipelineStage = (relation: Relation, stage: QueryStage, context: DecodingContext) => Relation;
|
|
5
|
+
export type PipelineStageMap = Record<string, PipelineStage>;
|
|
6
|
+
export declare const PIPELINE_STAGES: PipelineStageMap;
|
|
7
|
+
export declare const DEFERRED_STAGES: Record<string, string>;
|
|
8
|
+
export declare const REJECTED_STAGES: Record<string, string>;
|
|
9
|
+
export declare function ApplyStages(relation: Relation, stages: QueryStage[], context: DecodingContext): Relation;
|
|
10
|
+
export declare function CompileRelation(stages: QueryStage[], context: DecodingContext): Relation;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.REJECTED_STAGES = exports.DEFERRED_STAGES = exports.PIPELINE_STAGES = void 0;
|
|
4
|
+
exports.ApplyStages = ApplyStages;
|
|
5
|
+
exports.CompileRelation = CompileRelation;
|
|
6
|
+
const writes_1 = require("./writes");
|
|
7
|
+
const selection_1 = require("./selection");
|
|
8
|
+
const changes_1 = require("./changes");
|
|
9
|
+
const stages_rows_1 = require("./stages-rows");
|
|
10
|
+
const stages_join_1 = require("./stages-join");
|
|
11
|
+
const stages_group_1 = require("./stages-group");
|
|
12
|
+
const stages_aggregate_1 = require("./stages-aggregate");
|
|
13
|
+
const stages_selection_1 = require("./stages-selection");
|
|
14
|
+
const stages_projection_1 = require("./stages-projection");
|
|
15
|
+
exports.PIPELINE_STAGES = {
|
|
16
|
+
...stages_rows_1.ROW_STAGES,
|
|
17
|
+
...stages_selection_1.SELECTION_STAGES,
|
|
18
|
+
...stages_projection_1.PROJECTION_STAGES,
|
|
19
|
+
...stages_aggregate_1.AGGREGATE_STAGES,
|
|
20
|
+
...stages_join_1.JOIN_STAGES,
|
|
21
|
+
...stages_group_1.GROUP_STAGES,
|
|
22
|
+
};
|
|
23
|
+
exports.DEFERRED_STAGES = {};
|
|
24
|
+
exports.REJECTED_STAGES = {
|
|
25
|
+
[changes_1.CHANGES_STAGE]: "A 'changes' feed must be the last stage of a query and must be iterated rather than awaited",
|
|
26
|
+
};
|
|
27
|
+
function StageError(name) {
|
|
28
|
+
if (Object.hasOwn(exports.REJECTED_STAGES, name)) {
|
|
29
|
+
return new Error(exports.REJECTED_STAGES[name]);
|
|
30
|
+
}
|
|
31
|
+
if (Object.hasOwn(exports.DEFERRED_STAGES, name)) {
|
|
32
|
+
return new Error(`${exports.DEFERRED_STAGES[name]} (stage '${name}')`);
|
|
33
|
+
}
|
|
34
|
+
return new Error(`Unsupported query stage '${name}'`);
|
|
35
|
+
}
|
|
36
|
+
function ApplyStage(relation, stage, context) {
|
|
37
|
+
if (!Object.hasOwn(exports.PIPELINE_STAGES, stage.stage)) {
|
|
38
|
+
throw StageError(stage.stage);
|
|
39
|
+
}
|
|
40
|
+
return exports.PIPELINE_STAGES[stage.stage](relation, stage, context);
|
|
41
|
+
}
|
|
42
|
+
function ApplyStages(relation, stages, context) {
|
|
43
|
+
return stages.reduce((current, stage) => ApplyStage(current, stage, context), relation);
|
|
44
|
+
}
|
|
45
|
+
function RefuseNestedWrite(write) {
|
|
46
|
+
throw new Error(`The '${write.stage}' stage writes, so it cannot be nested inside another query`);
|
|
47
|
+
}
|
|
48
|
+
function CompileRelation(stages, context) {
|
|
49
|
+
const root = (0, selection_1.BuildRoot)(stages, context);
|
|
50
|
+
const split = (0, writes_1.SplitWrite)(root.rest);
|
|
51
|
+
if (split.write) {
|
|
52
|
+
RefuseNestedWrite(split.write);
|
|
53
|
+
}
|
|
54
|
+
return ApplyStages(root.relation, split.pipeline, context);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/implementations/database/pipeline.ts"],"names":[],"mappings":";;;AA8FA,kCASC;AA4BD,0CAUC;AA7ID,qCAAsC;AACtC,2CAAwC;AACxC,uCAA0C;AAG1C,+CAA2C;AAC3C,+CAA4C;AAC5C,iDAA8C;AAE9C,yDAAsD;AACtD,yDAAsD;AACtD,2DAAwD;AA2B3C,QAAA,eAAe,GAAqB;IAC/C,GAAG,wBAAU;IACb,GAAG,mCAAgB;IACnB,GAAG,qCAAiB;IACpB,GAAG,mCAAgB;IACnB,GAAG,yBAAW;IACd,GAAG,2BAAY;CAChB,CAAC;AAWW,QAAA,eAAe,GAA2B,EAAE,CAAC;AAW7C,QAAA,eAAe,GAA2B;IACrD,CAAC,uBAAa,CAAC,EACb,6FAA6F;CAChG,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,uBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,GAAG,uBAAe,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CACjB,QAAkB,EAClB,KAAiB,EACjB,OAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,uBAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAGD,SAAgB,WAAW,CACzB,QAAkB,EAClB,MAAoB,EACpB,OAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EACvD,QAAQ,CACT,CAAC;AACJ,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,CAAC,KAAK,6DAA6D,CACjF,CAAC;AACJ,CAAC;AAkBD,SAAgB,eAAe,CAC7B,MAAoB,EACpB,OAAwB;IAExB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DecodingContext } from "./context";
|
|
2
|
+
import { type QueryStage } from "./utils";
|
|
3
|
+
import { type CursorRequest } from "./cursors";
|
|
4
|
+
import { type Relation } from "./relation";
|
|
5
|
+
export type ResultRow = Record<string, unknown>;
|
|
6
|
+
export declare function DecodeRows(relation: Relation, rows: ResultRow[]): unknown[];
|
|
7
|
+
export declare function DecodeResult(relation: Relation, rows: ResultRow[]): unknown;
|
|
8
|
+
export declare function RunQuery(stages: QueryStage[]): Promise<any>;
|
|
9
|
+
export declare function CompileCursor(stages: QueryStage[], context: DecodingContext): Promise<CursorRequest>;
|
|
10
|
+
export declare function ReadCursor(reqId: number, stages: QueryStage[]): Promise<IteratorResult<any, void>>;
|
|
11
|
+
export declare function CloseCursor(reqId: number): Promise<void>;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DecodeRows = DecodeRows;
|
|
7
|
+
exports.DecodeResult = DecodeResult;
|
|
8
|
+
exports.RunQuery = RunQuery;
|
|
9
|
+
exports.CompileCursor = CompileCursor;
|
|
10
|
+
exports.ReadCursor = ReadCursor;
|
|
11
|
+
exports.CloseCursor = CloseCursor;
|
|
12
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
13
|
+
const atomic_1 = require("@antelopejs/interface-database/atomic");
|
|
14
|
+
const connection_1 = require("../../connection");
|
|
15
|
+
const config_1 = require("../../config");
|
|
16
|
+
const external_refusals_1 = require("./external-refusals");
|
|
17
|
+
const changes_1 = require("./changes");
|
|
18
|
+
const external_errors_1 = require("./external-errors");
|
|
19
|
+
const context_1 = require("./context");
|
|
20
|
+
const subquery_1 = require("./subquery");
|
|
21
|
+
const expression_1 = require("./expression");
|
|
22
|
+
const result_1 = require("./result");
|
|
23
|
+
const pipeline_1 = require("./pipeline");
|
|
24
|
+
const schema_1 = require("./schema");
|
|
25
|
+
const writes_shared_1 = require("./writes-shared");
|
|
26
|
+
const writes_1 = require("./writes");
|
|
27
|
+
const writes_atomic_1 = require("./writes-atomic");
|
|
28
|
+
const feeds_1 = require("./feeds");
|
|
29
|
+
const instances_1 = require("./instances");
|
|
30
|
+
const utils_1 = require("./utils");
|
|
31
|
+
const cursors_1 = require("./cursors");
|
|
32
|
+
const relation_1 = require("./relation");
|
|
33
|
+
const selection_1 = require("./selection");
|
|
34
|
+
const MISSING_SCHEMA_ID = "Lifecycle query is missing its schema id";
|
|
35
|
+
const LIFECYCLE_STAGE_COUNT = 2;
|
|
36
|
+
const NO_ROWS = 0;
|
|
37
|
+
const LIFECYCLE_HANDLERS = {
|
|
38
|
+
[utils_1.CREATE_INSTANCE]: (schemaId, stage) => (0, instances_1.CreateInstance)(schemaId, stage.options?.id),
|
|
39
|
+
[utils_1.DESTROY_INSTANCE]: (schemaId, stage) => (0, instances_1.DestroyInstance)(schemaId, (0, schema_1.GetTableNames)(schemaId), stage.options?.id),
|
|
40
|
+
listInstances: instances_1.ListInstances,
|
|
41
|
+
};
|
|
42
|
+
const EXTERNAL_LIFECYCLE = {
|
|
43
|
+
[utils_1.CREATE_INSTANCE]: (_schemaId, stage) => Promise.reject((0, external_refusals_1.ExternalInstanceRefusal)(stage.stage)),
|
|
44
|
+
[utils_1.DESTROY_INSTANCE]: (_schemaId, stage) => Promise.reject((0, external_refusals_1.ExternalInstanceRefusal)(stage.stage)),
|
|
45
|
+
listInstances: () => Promise.resolve([]),
|
|
46
|
+
};
|
|
47
|
+
function Lifecycle(stages) {
|
|
48
|
+
if (stages.length !== LIFECYCLE_STAGE_COUNT ||
|
|
49
|
+
stages[0].stage !== selection_1.SCHEMA_STAGE) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const stage = stages[1];
|
|
53
|
+
if (!Object.hasOwn(LIFECYCLE_HANDLERS, stage.stage)) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
const handler = ((0, config_1.IsExternal)() ? EXTERNAL_LIFECYCLE : LIFECYCLE_HANDLERS)[stage.stage];
|
|
57
|
+
const schemaId = stages[0].options?.id;
|
|
58
|
+
(0, node_assert_1.default)(typeof schemaId === "string", MISSING_SCHEMA_ID);
|
|
59
|
+
return (0, schema_1.WaitForSchemaReady)(schemaId).then(() => handler(schemaId, stage));
|
|
60
|
+
}
|
|
61
|
+
function DecodeRows(relation, rows) {
|
|
62
|
+
const projection = relation.projection;
|
|
63
|
+
if (projection) {
|
|
64
|
+
return rows.map((row) => (0, result_1.ReviveValue)(row[relation_1.OUTPUT_COLUMN], projection.type));
|
|
65
|
+
}
|
|
66
|
+
const shape = (0, relation_1.RequireOrigin)(relation).shape;
|
|
67
|
+
return rows.map((row) => (0, result_1.DecodeRow)(row, shape));
|
|
68
|
+
}
|
|
69
|
+
function DecodeResult(relation, rows) {
|
|
70
|
+
const decoded = DecodeRows(relation, rows);
|
|
71
|
+
if (!relation.single) {
|
|
72
|
+
return decoded;
|
|
73
|
+
}
|
|
74
|
+
return decoded.length > 0 ? decoded[0] : relation.absent;
|
|
75
|
+
}
|
|
76
|
+
async function RunRead(relation, context) {
|
|
77
|
+
const result = await (0, connection_1.Query)((0, relation_1.Render)(relation), context.params.all());
|
|
78
|
+
return DecodeResult(relation, result.rows);
|
|
79
|
+
}
|
|
80
|
+
async function RunWrite(target, stage, context) {
|
|
81
|
+
const statement = (0, writes_1.CompileWrite)(target, stage, context);
|
|
82
|
+
if (!statement.sql) {
|
|
83
|
+
return statement.ids ?? NO_ROWS;
|
|
84
|
+
}
|
|
85
|
+
if (stage.stage === writes_atomic_1.ATOMIC_MUTATION) {
|
|
86
|
+
return (0, writes_atomic_1.ExecuteAtomicWrite)(statement.sql, context.params.all());
|
|
87
|
+
}
|
|
88
|
+
const external = target.origin.shape.external;
|
|
89
|
+
if (!external) {
|
|
90
|
+
const result = await (0, connection_1.Query)(statement.sql, context.params.all());
|
|
91
|
+
return statement.ids ?? result.rowCount ?? NO_ROWS;
|
|
92
|
+
}
|
|
93
|
+
return RunExternalWrite(statement, external, context);
|
|
94
|
+
}
|
|
95
|
+
async function Validate(validation) {
|
|
96
|
+
if (!validation) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const result = await (0, connection_1.Query)(validation.sql, validation.params);
|
|
100
|
+
const row = result.rows[0] ?? {};
|
|
101
|
+
const failed = validation.failures.filter((_, index) => row[`c${index}`] !== true);
|
|
102
|
+
if (failed.length > 0) {
|
|
103
|
+
throw (0, external_errors_1.InvalidValues)(failed);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async function RunExternalWrite(statement, external, context) {
|
|
107
|
+
await Validate(statement.validation);
|
|
108
|
+
try {
|
|
109
|
+
const result = await (0, connection_1.Query)(statement.sql, context.params.all());
|
|
110
|
+
if (statement.returnsIds) {
|
|
111
|
+
return result.rows.map((row) => row[utils_1.ID_COLUMN]);
|
|
112
|
+
}
|
|
113
|
+
return result.rowCount ?? NO_ROWS;
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
throw (0, external_errors_1.ExternalWriteFailure)(err, external);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function QueryContext() {
|
|
120
|
+
return new context_1.DecodingContext({
|
|
121
|
+
expression: expression_1.CompileExpression,
|
|
122
|
+
subquery: subquery_1.CompileSubquery,
|
|
123
|
+
relation: pipeline_1.CompileRelation,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function CompileQuery(stages, context) {
|
|
127
|
+
if (stages.at(-1)?.stage === writes_atomic_1.ATOMIC_MUTATION) {
|
|
128
|
+
(0, atomic_1.ValidateAtomicMutationTable)(stages.slice(0, -1));
|
|
129
|
+
}
|
|
130
|
+
const root = (0, selection_1.BuildRoot)(stages, context);
|
|
131
|
+
const split = (0, writes_1.SplitWrite)(root.rest);
|
|
132
|
+
const relation = (0, pipeline_1.ApplyStages)(root.relation, split.pipeline, context);
|
|
133
|
+
return { context, root, split, relation };
|
|
134
|
+
}
|
|
135
|
+
async function ReadyQuery(stages, context) {
|
|
136
|
+
await Promise.all((0, selection_1.CollectSchemaIds)(stages).map(schema_1.WaitForSchemaReady));
|
|
137
|
+
return CompileQuery(stages, context);
|
|
138
|
+
}
|
|
139
|
+
async function RunQuery(stages) {
|
|
140
|
+
const lifecycle = Lifecycle(stages);
|
|
141
|
+
if (lifecycle) {
|
|
142
|
+
return lifecycle;
|
|
143
|
+
}
|
|
144
|
+
const compiled = await ReadyQuery(stages, QueryContext());
|
|
145
|
+
if (!compiled.split.write) {
|
|
146
|
+
return RunRead(compiled.relation, compiled.context);
|
|
147
|
+
}
|
|
148
|
+
if (compiled.root.external &&
|
|
149
|
+
compiled.split.write.stage === writes_atomic_1.ATOMIC_MUTATION) {
|
|
150
|
+
throw (0, external_refusals_1.ExternalWriteRefusal)(compiled.root.external, compiled.split.write.stage);
|
|
151
|
+
}
|
|
152
|
+
return RunWrite((0, writes_shared_1.WriteTargetOf)(compiled.root, compiled.relation), compiled.split.write, compiled.context);
|
|
153
|
+
}
|
|
154
|
+
function RefuseCursorWrite(write) {
|
|
155
|
+
throw new Error(`The '${write.stage}' stage writes, so it cannot be read through a cursor`);
|
|
156
|
+
}
|
|
157
|
+
async function CompileCursor(stages, context) {
|
|
158
|
+
const compiled = await ReadyQuery(stages, context);
|
|
159
|
+
if (compiled.split.write) {
|
|
160
|
+
RefuseCursorWrite(compiled.split.write);
|
|
161
|
+
}
|
|
162
|
+
const relation = compiled.relation;
|
|
163
|
+
return {
|
|
164
|
+
sql: (0, relation_1.Render)(relation),
|
|
165
|
+
params: context.params.all(),
|
|
166
|
+
decode: (rows) => DecodeRows(relation, rows),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function IsFeed(stages) {
|
|
170
|
+
return stages[stages.length - 1]?.stage === changes_1.CHANGES_STAGE;
|
|
171
|
+
}
|
|
172
|
+
function ReadCursor(reqId, stages) {
|
|
173
|
+
try {
|
|
174
|
+
if (IsFeed(stages) || (0, feeds_1.IsRegisteredFeed)(reqId)) {
|
|
175
|
+
return (0, feeds_1.ReadFeedEvent)(reqId, stages);
|
|
176
|
+
}
|
|
177
|
+
return (0, cursors_1.ReadCursorRow)(reqId, () => CompileCursor(stages, QueryContext()));
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
return Promise.reject(err);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function CloseCursor(reqId) {
|
|
184
|
+
if ((0, feeds_1.IsRegisteredFeed)(reqId)) {
|
|
185
|
+
return (0, feeds_1.CloseOneFeed)(reqId);
|
|
186
|
+
}
|
|
187
|
+
return (0, cursors_1.CloseOneCursor)(reqId).then(() => (0, feeds_1.CloseOneFeed)(reqId));
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/implementations/database/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Compiled } from "./sql";
|
|
2
|
+
import { type SqlType } from "./types";
|
|
3
|
+
export declare const FLOAT_CAST = "::double precision";
|
|
4
|
+
export declare const INT4_MIN = -2147483648;
|
|
5
|
+
export declare const INT4_MAX = 2147483647;
|
|
6
|
+
export declare function ClampToRange(sql: string, lowest: number, highest: number): string;
|
|
7
|
+
export declare function AsFloat(sql: string): Compiled;
|
|
8
|
+
export declare const UTC_ZONE: string;
|
|
9
|
+
export declare function Text(value: Compiled): Compiled;
|
|
10
|
+
export declare const ORDERED_KINDS: Partial<Record<SqlType["kind"], SqlType>>;
|
|
11
|
+
export declare function Numeric(value: Compiled): Compiled;
|
|
12
|
+
export declare function Moment(value: Compiled): Compiled;
|
|
13
|
+
export declare function Predicate(value: Compiled): Compiled;
|
|
14
|
+
export declare function StoredAs(value: Compiled, target: SqlType): Compiled;
|
|
15
|
+
export declare function WrittenAs(value: Compiled, target: SqlType, subject: string): Compiled;
|
|
16
|
+
export declare function Defaulted(value: Compiled, def: Compiled | undefined, subject: string): Compiled;
|
|
17
|
+
export declare function AsJson(value: Compiled): Compiled;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ORDERED_KINDS = exports.UTC_ZONE = exports.INT4_MAX = exports.INT4_MIN = exports.FLOAT_CAST = void 0;
|
|
4
|
+
exports.ClampToRange = ClampToRange;
|
|
5
|
+
exports.AsFloat = AsFloat;
|
|
6
|
+
exports.Text = Text;
|
|
7
|
+
exports.Numeric = Numeric;
|
|
8
|
+
exports.Moment = Moment;
|
|
9
|
+
exports.Predicate = Predicate;
|
|
10
|
+
exports.StoredAs = StoredAs;
|
|
11
|
+
exports.WrittenAs = WrittenAs;
|
|
12
|
+
exports.Defaulted = Defaulted;
|
|
13
|
+
exports.AsJson = AsJson;
|
|
14
|
+
const sql_1 = require("./sql");
|
|
15
|
+
const coerce_1 = require("./coerce");
|
|
16
|
+
const types_1 = require("./types");
|
|
17
|
+
exports.FLOAT_CAST = "::double precision";
|
|
18
|
+
exports.INT4_MIN = -2147483648;
|
|
19
|
+
exports.INT4_MAX = 2147483647;
|
|
20
|
+
function ClampToRange(sql, lowest, highest) {
|
|
21
|
+
return `LEAST(GREATEST(trunc(${sql}), ${lowest}), ${highest})`;
|
|
22
|
+
}
|
|
23
|
+
function AsFloat(sql) {
|
|
24
|
+
return { sql: `((${sql})${exports.FLOAT_CAST})`, type: types_1.FLOAT };
|
|
25
|
+
}
|
|
26
|
+
exports.UTC_ZONE = (0, sql_1.QuoteLiteral)("UTC");
|
|
27
|
+
const ISO_8601_UTC = (0, sql_1.QuoteLiteral)('YYYY-MM-DD"T"HH24:MI:SS.MS"Z"');
|
|
28
|
+
const RENDERING = {
|
|
29
|
+
timestamp: (sql) => `(to_char(${sql} AT TIME ZONE ${exports.UTC_ZONE}, ${ISO_8601_UTC}))`,
|
|
30
|
+
};
|
|
31
|
+
function Text(value) {
|
|
32
|
+
const rendering = RENDERING[value.type.kind];
|
|
33
|
+
if (!rendering) {
|
|
34
|
+
return (0, coerce_1.Cast)(value, types_1.TEXT);
|
|
35
|
+
}
|
|
36
|
+
return { sql: rendering(value.sql), type: types_1.TEXT };
|
|
37
|
+
}
|
|
38
|
+
exports.ORDERED_KINDS = {
|
|
39
|
+
text: types_1.TEXT,
|
|
40
|
+
float: types_1.FLOAT,
|
|
41
|
+
timestamp: types_1.TIMESTAMP,
|
|
42
|
+
};
|
|
43
|
+
const MILLISECONDS_PER_SECOND = "1000";
|
|
44
|
+
const NUMERIC_TEXT = "'^\\s*[+-]?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][+-]?[0-9]+)?\\s*$'";
|
|
45
|
+
const NUMERATION = {
|
|
46
|
+
bool: (sql) => `((${sql})::int::double precision)`,
|
|
47
|
+
timestamp: (sql) => `((EXTRACT(EPOCH FROM ${sql}) * ${MILLISECONDS_PER_SECOND})::double precision)`,
|
|
48
|
+
text: (sql) => `(CASE WHEN ${sql} ~ ${NUMERIC_TEXT} THEN ((${sql})::double precision) END)`,
|
|
49
|
+
};
|
|
50
|
+
function Numeric(value) {
|
|
51
|
+
const numeration = NUMERATION[value.type.kind];
|
|
52
|
+
if (!numeration) {
|
|
53
|
+
return (0, coerce_1.Cast)(value, types_1.FLOAT);
|
|
54
|
+
}
|
|
55
|
+
return { sql: numeration(value.sql), type: types_1.FLOAT };
|
|
56
|
+
}
|
|
57
|
+
const EARLIEST_EPOCH_MILLISECONDS = "-210866803200000";
|
|
58
|
+
const LATEST_EPOCH_MILLISECONDS = "8640000000000000";
|
|
59
|
+
const FromEpoch = (value) => {
|
|
60
|
+
const millis = Numeric(value).sql;
|
|
61
|
+
const bounded = `(CASE WHEN ${millis} BETWEEN ${EARLIEST_EPOCH_MILLISECONDS} AND ${LATEST_EPOCH_MILLISECONDS} THEN ${millis} END)`;
|
|
62
|
+
return `(to_timestamp(${bounded} / ${MILLISECONDS_PER_SECOND}))`;
|
|
63
|
+
};
|
|
64
|
+
const FromParsedText = (value) => `(CASE WHEN ${(0, coerce_1.ParsesAs)(value.sql, types_1.TIMESTAMP)} THEN ${(0, coerce_1.Cast)(value, types_1.TIMESTAMP).sql} END)`;
|
|
65
|
+
const INSTANT = {
|
|
66
|
+
float: FromEpoch,
|
|
67
|
+
bool: FromEpoch,
|
|
68
|
+
text: FromParsedText,
|
|
69
|
+
};
|
|
70
|
+
function Moment(value) {
|
|
71
|
+
const instant = INSTANT[value.type.kind];
|
|
72
|
+
if (!instant) {
|
|
73
|
+
return (0, coerce_1.Cast)(value, types_1.TIMESTAMP);
|
|
74
|
+
}
|
|
75
|
+
return { sql: instant(value), type: types_1.TIMESTAMP };
|
|
76
|
+
}
|
|
77
|
+
const FALSY_JSON = ["null", "false", "0", '""'];
|
|
78
|
+
const FALSEHOOD = `array[${FALSY_JSON.map(sql_1.QuoteLiteral).join(", ")}]::${(0, types_1.PhysicalType)(types_1.OPAQUE)}[]`;
|
|
79
|
+
const JsonTruthiness = (sql) => `(${sql} <> ALL (${FALSEHOOD}))`;
|
|
80
|
+
const TRUTHINESS = {
|
|
81
|
+
bool: (sql) => sql,
|
|
82
|
+
float: (sql) => `(${sql} <> 0)`,
|
|
83
|
+
text: (sql) => `(${sql} <> '')`,
|
|
84
|
+
timestamp: (sql) => `(${sql} IS NOT NULL)`,
|
|
85
|
+
json: JsonTruthiness,
|
|
86
|
+
array: JsonTruthiness,
|
|
87
|
+
};
|
|
88
|
+
function Predicate(value) {
|
|
89
|
+
return { sql: TRUTHINESS[value.type.kind](value.sql), type: types_1.BOOL };
|
|
90
|
+
}
|
|
91
|
+
const STORED_READINGS = {
|
|
92
|
+
float: Numeric,
|
|
93
|
+
text: Text,
|
|
94
|
+
bool: Predicate,
|
|
95
|
+
timestamp: Moment,
|
|
96
|
+
};
|
|
97
|
+
function StoredAs(value, target) {
|
|
98
|
+
if ((0, types_1.IsJsonBacked)(target) || (0, types_1.IsJsonBacked)(value.type)) {
|
|
99
|
+
return (0, coerce_1.Cast)(value, target);
|
|
100
|
+
}
|
|
101
|
+
return STORED_READINGS[target.kind](value);
|
|
102
|
+
}
|
|
103
|
+
const BOOLEAN_ONLY = `takes a ${(0, types_1.PhysicalType)(types_1.BOOL)} or a json ${(0, types_1.PhysicalType)(types_1.BOOL)}` +
|
|
104
|
+
` for a ${(0, types_1.PhysicalType)(types_1.BOOL)} column`;
|
|
105
|
+
const StoredBoolean = (value, subject) => {
|
|
106
|
+
if (value.type.kind === "bool") {
|
|
107
|
+
return value;
|
|
108
|
+
}
|
|
109
|
+
if ((0, types_1.IsJsonBacked)(value.type)) {
|
|
110
|
+
return (0, coerce_1.Cast)(value, types_1.BOOL);
|
|
111
|
+
}
|
|
112
|
+
throw new Error(`${subject} ${BOOLEAN_ONLY}, received ${(0, types_1.PhysicalType)(value.type)}`);
|
|
113
|
+
};
|
|
114
|
+
const WRITTEN_READINGS = {
|
|
115
|
+
bool: StoredBoolean,
|
|
116
|
+
};
|
|
117
|
+
function WrittenAs(value, target, subject) {
|
|
118
|
+
const narrowed = WRITTEN_READINGS[target.kind];
|
|
119
|
+
if (!narrowed) {
|
|
120
|
+
return StoredAs(value, target);
|
|
121
|
+
}
|
|
122
|
+
return narrowed(value, subject);
|
|
123
|
+
}
|
|
124
|
+
function Defaulted(value, def, subject) {
|
|
125
|
+
if (!def) {
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
return (0, coerce_1.WithDefault)(value, WrittenAs(def, value.type, subject));
|
|
129
|
+
}
|
|
130
|
+
function AsJson(value) {
|
|
131
|
+
return (0, coerce_1.Cast)(value, types_1.OPAQUE);
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=readings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readings.js","sourceRoot":"","sources":["../../../src/implementations/database/readings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ClientBase } from "pg";
|
|
2
|
+
export declare function ReapOnce(client: ClientBase, retentionMs: number): Promise<boolean>;
|
|
3
|
+
export declare function ReapInterval(retentionMs: number): number;
|
|
4
|
+
export declare function StartReaper(): void;
|
|
5
|
+
export declare function StopReaper(): void;
|
|
6
|
+
export declare function IsReaperRunning(): boolean;
|