@dotdo/postgres 0.1.0
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/README.md +868 -0
- package/dist/cdc/change-stream.d.ts +44 -0
- package/dist/cdc/change-stream.d.ts.map +1 -0
- package/dist/cdc/change-stream.js +95 -0
- package/dist/cdc/change-stream.js.map +1 -0
- package/dist/cdc/filter.d.ts +58 -0
- package/dist/cdc/filter.d.ts.map +1 -0
- package/dist/cdc/filter.js +520 -0
- package/dist/cdc/filter.js.map +1 -0
- package/dist/cdc/index.d.ts +47 -0
- package/dist/cdc/index.d.ts.map +1 -0
- package/dist/cdc/index.js +50 -0
- package/dist/cdc/index.js.map +1 -0
- package/dist/cdc/resume-token.d.ts +60 -0
- package/dist/cdc/resume-token.d.ts.map +1 -0
- package/dist/cdc/resume-token.js +228 -0
- package/dist/cdc/resume-token.js.map +1 -0
- package/dist/cdc/transport/index.d.ts +7 -0
- package/dist/cdc/transport/index.d.ts.map +1 -0
- package/dist/cdc/transport/index.js +7 -0
- package/dist/cdc/transport/index.js.map +1 -0
- package/dist/cdc/transport/sse.d.ts +120 -0
- package/dist/cdc/transport/sse.d.ts.map +1 -0
- package/dist/cdc/transport/sse.js +590 -0
- package/dist/cdc/transport/sse.js.map +1 -0
- package/dist/cdc/transport/websocket.d.ts +130 -0
- package/dist/cdc/transport/websocket.d.ts.map +1 -0
- package/dist/cdc/transport/websocket.js +688 -0
- package/dist/cdc/transport/websocket.js.map +1 -0
- package/dist/cdc/types.d.ts +306 -0
- package/dist/cdc/types.d.ts.map +1 -0
- package/dist/cdc/types.js +8 -0
- package/dist/cdc/types.js.map +1 -0
- package/dist/config/index.d.ts +25 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +25 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/memory.d.ts +139 -0
- package/dist/config/memory.d.ts.map +1 -0
- package/dist/config/memory.js +157 -0
- package/dist/config/memory.js.map +1 -0
- package/dist/config/storage.d.ts +157 -0
- package/dist/config/storage.d.ts.map +1 -0
- package/dist/config/storage.js +178 -0
- package/dist/config/storage.js.map +1 -0
- package/dist/config/streaming.d.ts +117 -0
- package/dist/config/streaming.d.ts.map +1 -0
- package/dist/config/streaming.js +132 -0
- package/dist/config/streaming.js.map +1 -0
- package/dist/config/timeouts.d.ts +168 -0
- package/dist/config/timeouts.d.ts.map +1 -0
- package/dist/config/timeouts.js +192 -0
- package/dist/config/timeouts.js.map +1 -0
- package/dist/extensions/config.d.ts +89 -0
- package/dist/extensions/config.d.ts.map +1 -0
- package/dist/extensions/config.js +216 -0
- package/dist/extensions/config.js.map +1 -0
- package/dist/extensions/geo.d.ts +452 -0
- package/dist/extensions/geo.d.ts.map +1 -0
- package/dist/extensions/geo.js +583 -0
- package/dist/extensions/geo.js.map +1 -0
- package/dist/extensions/index.d.ts +167 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +99 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +226 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +456 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/pgmq-lite.d.ts +330 -0
- package/dist/extensions/pgmq-lite.d.ts.map +1 -0
- package/dist/extensions/pgmq-lite.js +648 -0
- package/dist/extensions/pgmq-lite.js.map +1 -0
- package/dist/extensions/plugins.d.ts +260 -0
- package/dist/extensions/plugins.d.ts.map +1 -0
- package/dist/extensions/plugins.js +535 -0
- package/dist/extensions/plugins.js.map +1 -0
- package/dist/extensions/registry.d.ts +93 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +182 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/vector.d.ts +106 -0
- package/dist/extensions/vector.d.ts.map +1 -0
- package/dist/extensions/vector.js +129 -0
- package/dist/extensions/vector.js.map +1 -0
- package/dist/iceberg/analytics.d.ts +279 -0
- package/dist/iceberg/analytics.d.ts.map +1 -0
- package/dist/iceberg/analytics.js +448 -0
- package/dist/iceberg/analytics.js.map +1 -0
- package/dist/iceberg/catalog-api.d.ts +39 -0
- package/dist/iceberg/catalog-api.d.ts.map +1 -0
- package/dist/iceberg/catalog-api.js +388 -0
- package/dist/iceberg/catalog-api.js.map +1 -0
- package/dist/iceberg/catalog.d.ts +401 -0
- package/dist/iceberg/catalog.d.ts.map +1 -0
- package/dist/iceberg/catalog.js +677 -0
- package/dist/iceberg/catalog.js.map +1 -0
- package/dist/iceberg/duckdb-wasm.d.ts +447 -0
- package/dist/iceberg/duckdb-wasm.d.ts.map +1 -0
- package/dist/iceberg/duckdb-wasm.js +600 -0
- package/dist/iceberg/duckdb-wasm.js.map +1 -0
- package/dist/iceberg/index.d.ts +92 -0
- package/dist/iceberg/index.d.ts.map +1 -0
- package/dist/iceberg/index.js +119 -0
- package/dist/iceberg/index.js.map +1 -0
- package/dist/iceberg/metadata.d.ts +214 -0
- package/dist/iceberg/metadata.d.ts.map +1 -0
- package/dist/iceberg/metadata.js +535 -0
- package/dist/iceberg/metadata.js.map +1 -0
- package/dist/iceberg/optimizer.d.ts +296 -0
- package/dist/iceberg/optimizer.d.ts.map +1 -0
- package/dist/iceberg/optimizer.js +889 -0
- package/dist/iceberg/optimizer.js.map +1 -0
- package/dist/iceberg/parquet.d.ts +447 -0
- package/dist/iceberg/parquet.d.ts.map +1 -0
- package/dist/iceberg/parquet.js +1225 -0
- package/dist/iceberg/parquet.js.map +1 -0
- package/dist/iceberg/r2-organization.d.ts +422 -0
- package/dist/iceberg/r2-organization.d.ts.map +1 -0
- package/dist/iceberg/r2-organization.js +672 -0
- package/dist/iceberg/r2-organization.js.map +1 -0
- package/dist/iceberg/scheduler-do-example.d.ts +158 -0
- package/dist/iceberg/scheduler-do-example.d.ts.map +1 -0
- package/dist/iceberg/scheduler-do-example.js +261 -0
- package/dist/iceberg/scheduler-do-example.js.map +1 -0
- package/dist/iceberg/scheduler.d.ts +434 -0
- package/dist/iceberg/scheduler.d.ts.map +1 -0
- package/dist/iceberg/scheduler.js +818 -0
- package/dist/iceberg/scheduler.js.map +1 -0
- package/dist/iceberg/schema.d.ts +149 -0
- package/dist/iceberg/schema.d.ts.map +1 -0
- package/dist/iceberg/schema.js +525 -0
- package/dist/iceberg/schema.js.map +1 -0
- package/dist/iceberg/snapshot-manager.d.ts +406 -0
- package/dist/iceberg/snapshot-manager.d.ts.map +1 -0
- package/dist/iceberg/snapshot-manager.js +934 -0
- package/dist/iceberg/snapshot-manager.js.map +1 -0
- package/dist/iceberg/sql-router.d.ts +194 -0
- package/dist/iceberg/sql-router.d.ts.map +1 -0
- package/dist/iceberg/sql-router.js +180 -0
- package/dist/iceberg/sql-router.js.map +1 -0
- package/dist/iceberg/test-fixtures.d.ts +151 -0
- package/dist/iceberg/test-fixtures.d.ts.map +1 -0
- package/dist/iceberg/test-fixtures.js +446 -0
- package/dist/iceberg/test-fixtures.js.map +1 -0
- package/dist/iceberg/time-travel-api.d.ts +102 -0
- package/dist/iceberg/time-travel-api.d.ts.map +1 -0
- package/dist/iceberg/time-travel-api.js +437 -0
- package/dist/iceberg/time-travel-api.js.map +1 -0
- package/dist/iceberg/time-travel.d.ts +293 -0
- package/dist/iceberg/time-travel.d.ts.map +1 -0
- package/dist/iceberg/time-travel.js +689 -0
- package/dist/iceberg/time-travel.js.map +1 -0
- package/dist/iceberg/transformer.d.ts +356 -0
- package/dist/iceberg/transformer.d.ts.map +1 -0
- package/dist/iceberg/transformer.js +770 -0
- package/dist/iceberg/transformer.js.map +1 -0
- package/dist/iceberg/types.d.ts +318 -0
- package/dist/iceberg/types.d.ts.map +1 -0
- package/dist/iceberg/types.js +9 -0
- package/dist/iceberg/types.js.map +1 -0
- package/dist/iceberg/writer.d.ts +144 -0
- package/dist/iceberg/writer.d.ts.map +1 -0
- package/dist/iceberg/writer.js +452 -0
- package/dist/iceberg/writer.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/lineage/index.d.ts +11 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +11 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/integration.d.ts +134 -0
- package/dist/lineage/integration.d.ts.map +1 -0
- package/dist/lineage/integration.js +258 -0
- package/dist/lineage/integration.js.map +1 -0
- package/dist/lineage/tracker.d.ts +189 -0
- package/dist/lineage/tracker.d.ts.map +1 -0
- package/dist/lineage/tracker.js +1352 -0
- package/dist/lineage/tracker.js.map +1 -0
- package/dist/lineage/types.d.ts +318 -0
- package/dist/lineage/types.d.ts.map +1 -0
- package/dist/lineage/types.js +9 -0
- package/dist/lineage/types.js.map +1 -0
- package/dist/middleware/index.d.ts +11 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +16 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/rate-limit.d.ts +397 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -0
- package/dist/middleware/rate-limit.js +507 -0
- package/dist/middleware/rate-limit.js.map +1 -0
- package/dist/migration-tooling/external-migration.d.ts +601 -0
- package/dist/migration-tooling/external-migration.d.ts.map +1 -0
- package/dist/migration-tooling/external-migration.js +1612 -0
- package/dist/migration-tooling/external-migration.js.map +1 -0
- package/dist/migration-tooling/index.d.ts +19 -0
- package/dist/migration-tooling/index.d.ts.map +1 -0
- package/dist/migration-tooling/index.js +19 -0
- package/dist/migration-tooling/index.js.map +1 -0
- package/dist/migrations/auto-migrator.d.ts +289 -0
- package/dist/migrations/auto-migrator.d.ts.map +1 -0
- package/dist/migrations/auto-migrator.js +396 -0
- package/dist/migrations/auto-migrator.js.map +1 -0
- package/dist/migrations/bulk-orchestrator.d.ts +403 -0
- package/dist/migrations/bulk-orchestrator.d.ts.map +1 -0
- package/dist/migrations/bulk-orchestrator.js +646 -0
- package/dist/migrations/bulk-orchestrator.js.map +1 -0
- package/dist/migrations/compatibility.d.ts +216 -0
- package/dist/migrations/compatibility.d.ts.map +1 -0
- package/dist/migrations/compatibility.js +651 -0
- package/dist/migrations/compatibility.js.map +1 -0
- package/dist/migrations/do-migrations.d.ts +101 -0
- package/dist/migrations/do-migrations.d.ts.map +1 -0
- package/dist/migrations/do-migrations.js +1060 -0
- package/dist/migrations/do-migrations.js.map +1 -0
- package/dist/migrations/do-migrations.types.d.ts +550 -0
- package/dist/migrations/do-migrations.types.d.ts.map +1 -0
- package/dist/migrations/do-migrations.types.js +15 -0
- package/dist/migrations/do-migrations.types.js.map +1 -0
- package/dist/migrations/drizzle-compat.d.ts +163 -0
- package/dist/migrations/drizzle-compat.d.ts.map +1 -0
- package/dist/migrations/drizzle-compat.js +273 -0
- package/dist/migrations/drizzle-compat.js.map +1 -0
- package/dist/migrations/index.d.ts +109 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +127 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migration-api.d.ts +161 -0
- package/dist/migrations/migration-api.d.ts.map +1 -0
- package/dist/migrations/migration-api.js +499 -0
- package/dist/migrations/migration-api.js.map +1 -0
- package/dist/migrations/progress-tracker-do.d.ts +195 -0
- package/dist/migrations/progress-tracker-do.d.ts.map +1 -0
- package/dist/migrations/progress-tracker-do.js +339 -0
- package/dist/migrations/progress-tracker-do.js.map +1 -0
- package/dist/migrations/progress-tracker-kv.d.ts +103 -0
- package/dist/migrations/progress-tracker-kv.d.ts.map +1 -0
- package/dist/migrations/progress-tracker-kv.js +231 -0
- package/dist/migrations/progress-tracker-kv.js.map +1 -0
- package/dist/migrations/progress-tracker.d.ts +320 -0
- package/dist/migrations/progress-tracker.d.ts.map +1 -0
- package/dist/migrations/progress-tracker.js +443 -0
- package/dist/migrations/progress-tracker.js.map +1 -0
- package/dist/migrations/registry.d.ts +231 -0
- package/dist/migrations/registry.d.ts.map +1 -0
- package/dist/migrations/registry.js +376 -0
- package/dist/migrations/registry.js.map +1 -0
- package/dist/migrations/runner.d.ts +197 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +1167 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/migrations/schema-generator.d.ts +111 -0
- package/dist/migrations/schema-generator.d.ts.map +1 -0
- package/dist/migrations/schema-generator.js +335 -0
- package/dist/migrations/schema-generator.js.map +1 -0
- package/dist/migrations/testing.d.ts +321 -0
- package/dist/migrations/testing.d.ts.map +1 -0
- package/dist/migrations/testing.js +645 -0
- package/dist/migrations/testing.js.map +1 -0
- package/dist/migrations/types.d.ts +503 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +11 -0
- package/dist/migrations/types.js.map +1 -0
- package/dist/migrations/validator.d.ts +215 -0
- package/dist/migrations/validator.d.ts.map +1 -0
- package/dist/migrations/validator.js +494 -0
- package/dist/migrations/validator.js.map +1 -0
- package/dist/observability/alerting.d.ts +116 -0
- package/dist/observability/alerting.d.ts.map +1 -0
- package/dist/observability/alerting.js +353 -0
- package/dist/observability/alerting.js.map +1 -0
- package/dist/observability/analytics-engine.d.ts +357 -0
- package/dist/observability/analytics-engine.d.ts.map +1 -0
- package/dist/observability/analytics-engine.js +430 -0
- package/dist/observability/analytics-engine.js.map +1 -0
- package/dist/observability/cost-metrics.d.ts +269 -0
- package/dist/observability/cost-metrics.d.ts.map +1 -0
- package/dist/observability/cost-metrics.js +560 -0
- package/dist/observability/cost-metrics.js.map +1 -0
- package/dist/observability/cross-do-tracing.d.ts +305 -0
- package/dist/observability/cross-do-tracing.d.ts.map +1 -0
- package/dist/observability/cross-do-tracing.js +431 -0
- package/dist/observability/cross-do-tracing.js.map +1 -0
- package/dist/observability/error-rate-collector.d.ts +163 -0
- package/dist/observability/error-rate-collector.d.ts.map +1 -0
- package/dist/observability/error-rate-collector.js +306 -0
- package/dist/observability/error-rate-collector.js.map +1 -0
- package/dist/observability/exporters.d.ts +231 -0
- package/dist/observability/exporters.d.ts.map +1 -0
- package/dist/observability/exporters.js +479 -0
- package/dist/observability/exporters.js.map +1 -0
- package/dist/observability/health-check.d.ts +106 -0
- package/dist/observability/health-check.d.ts.map +1 -0
- package/dist/observability/health-check.js +243 -0
- package/dist/observability/health-check.js.map +1 -0
- package/dist/observability/index.d.ts +297 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +455 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/instrumentation.d.ts +222 -0
- package/dist/observability/instrumentation.d.ts.map +1 -0
- package/dist/observability/instrumentation.js +532 -0
- package/dist/observability/instrumentation.js.map +1 -0
- package/dist/observability/memory-metrics.d.ts +227 -0
- package/dist/observability/memory-metrics.d.ts.map +1 -0
- package/dist/observability/memory-metrics.js +688 -0
- package/dist/observability/memory-metrics.js.map +1 -0
- package/dist/observability/metrics-endpoint.d.ts +91 -0
- package/dist/observability/metrics-endpoint.d.ts.map +1 -0
- package/dist/observability/metrics-endpoint.js +246 -0
- package/dist/observability/metrics-endpoint.js.map +1 -0
- package/dist/observability/metrics.d.ts +88 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +253 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/observability-features.d.ts +488 -0
- package/dist/observability/observability-features.d.ts.map +1 -0
- package/dist/observability/observability-features.js +773 -0
- package/dist/observability/observability-features.js.map +1 -0
- package/dist/observability/prometheus.d.ts +39 -0
- package/dist/observability/prometheus.d.ts.map +1 -0
- package/dist/observability/prometheus.js +120 -0
- package/dist/observability/prometheus.js.map +1 -0
- package/dist/observability/propagation.d.ts +126 -0
- package/dist/observability/propagation.d.ts.map +1 -0
- package/dist/observability/propagation.js +234 -0
- package/dist/observability/propagation.js.map +1 -0
- package/dist/observability/query-latency.d.ts +243 -0
- package/dist/observability/query-latency.d.ts.map +1 -0
- package/dist/observability/query-latency.js +292 -0
- package/dist/observability/query-latency.js.map +1 -0
- package/dist/observability/query-performance.d.ts +169 -0
- package/dist/observability/query-performance.d.ts.map +1 -0
- package/dist/observability/query-performance.js +290 -0
- package/dist/observability/query-performance.js.map +1 -0
- package/dist/observability/storage-tier-metrics.d.ts +174 -0
- package/dist/observability/storage-tier-metrics.d.ts.map +1 -0
- package/dist/observability/storage-tier-metrics.js +306 -0
- package/dist/observability/storage-tier-metrics.js.map +1 -0
- package/dist/observability/tier-cost-optimizer.d.ts +155 -0
- package/dist/observability/tier-cost-optimizer.d.ts.map +1 -0
- package/dist/observability/tier-cost-optimizer.js +536 -0
- package/dist/observability/tier-cost-optimizer.js.map +1 -0
- package/dist/observability/tracer.d.ts +149 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js +435 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/observability/types.d.ts +402 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +103 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/pglite/workers-pglite.d.ts +138 -0
- package/dist/pglite/workers-pglite.d.ts.map +1 -0
- package/dist/pglite/workers-pglite.js +143 -0
- package/dist/pglite/workers-pglite.js.map +1 -0
- package/dist/pglite-assets/pglite.data +0 -0
- package/dist/pglite-assets/pglite.wasm +0 -0
- package/dist/playground/index.d.ts +52 -0
- package/dist/playground/index.d.ts.map +1 -0
- package/dist/playground/index.js +55 -0
- package/dist/playground/index.js.map +1 -0
- package/dist/playground/keyboard-shortcuts.d.ts +116 -0
- package/dist/playground/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/playground/keyboard-shortcuts.js +588 -0
- package/dist/playground/keyboard-shortcuts.js.map +1 -0
- package/dist/playground/playground.d.ts +82 -0
- package/dist/playground/playground.d.ts.map +1 -0
- package/dist/playground/playground.js +271 -0
- package/dist/playground/playground.js.map +1 -0
- package/dist/playground/query-executor.d.ts +115 -0
- package/dist/playground/query-executor.d.ts.map +1 -0
- package/dist/playground/query-executor.js +558 -0
- package/dist/playground/query-executor.js.map +1 -0
- package/dist/playground/query-history.d.ts +92 -0
- package/dist/playground/query-history.d.ts.map +1 -0
- package/dist/playground/query-history.js +259 -0
- package/dist/playground/query-history.js.map +1 -0
- package/dist/playground/result-formatter.d.ts +59 -0
- package/dist/playground/result-formatter.d.ts.map +1 -0
- package/dist/playground/result-formatter.js +341 -0
- package/dist/playground/result-formatter.js.map +1 -0
- package/dist/playground/sample-datasets.d.ts +77 -0
- package/dist/playground/sample-datasets.d.ts.map +1 -0
- package/dist/playground/sample-datasets.js +641 -0
- package/dist/playground/sample-datasets.js.map +1 -0
- package/dist/playground/sample-queries.d.ts +73 -0
- package/dist/playground/sample-queries.d.ts.map +1 -0
- package/dist/playground/sample-queries.js +1095 -0
- package/dist/playground/sample-queries.js.map +1 -0
- package/dist/playground/schema-explorer.d.ts +55 -0
- package/dist/playground/schema-explorer.d.ts.map +1 -0
- package/dist/playground/schema-explorer.js +473 -0
- package/dist/playground/schema-explorer.js.map +1 -0
- package/dist/playground/types.d.ts +430 -0
- package/dist/playground/types.d.ts.map +1 -0
- package/dist/playground/types.js +10 -0
- package/dist/playground/types.js.map +1 -0
- package/dist/readonly/cache-reader.d.ts +145 -0
- package/dist/readonly/cache-reader.d.ts.map +1 -0
- package/dist/readonly/cache-reader.js +198 -0
- package/dist/readonly/cache-reader.js.map +1 -0
- package/dist/readonly/config.d.ts +74 -0
- package/dist/readonly/config.d.ts.map +1 -0
- package/dist/readonly/config.js +67 -0
- package/dist/readonly/config.js.map +1 -0
- package/dist/readonly/index.d.ts +22 -0
- package/dist/readonly/index.d.ts.map +1 -0
- package/dist/readonly/index.js +17 -0
- package/dist/readonly/index.js.map +1 -0
- package/dist/readonly/pglite-wrapper.d.ts +82 -0
- package/dist/readonly/pglite-wrapper.d.ts.map +1 -0
- package/dist/readonly/pglite-wrapper.js +123 -0
- package/dist/readonly/pglite-wrapper.js.map +1 -0
- package/dist/readonly/worker.d.ts +142 -0
- package/dist/readonly/worker.d.ts.map +1 -0
- package/dist/readonly/worker.js +187 -0
- package/dist/readonly/worker.js.map +1 -0
- package/dist/readonly/write-blocker.d.ts +47 -0
- package/dist/readonly/write-blocker.d.ts.map +1 -0
- package/dist/readonly/write-blocker.js +136 -0
- package/dist/readonly/write-blocker.js.map +1 -0
- package/dist/recovery/disaster-recovery.d.ts +326 -0
- package/dist/recovery/disaster-recovery.d.ts.map +1 -0
- package/dist/recovery/disaster-recovery.js +799 -0
- package/dist/recovery/disaster-recovery.js.map +1 -0
- package/dist/recovery/index.d.ts +12 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +12 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/parquet-parser.d.ts +321 -0
- package/dist/recovery/parquet-parser.d.ts.map +1 -0
- package/dist/recovery/parquet-parser.js +797 -0
- package/dist/recovery/parquet-parser.js.map +1 -0
- package/dist/retention/index.d.ts +50 -0
- package/dist/retention/index.d.ts.map +1 -0
- package/dist/retention/index.js +50 -0
- package/dist/retention/index.js.map +1 -0
- package/dist/retention/policy.d.ts +344 -0
- package/dist/retention/policy.d.ts.map +1 -0
- package/dist/retention/policy.js +472 -0
- package/dist/retention/policy.js.map +1 -0
- package/dist/retention/purger.d.ts +187 -0
- package/dist/retention/purger.d.ts.map +1 -0
- package/dist/retention/purger.js +411 -0
- package/dist/retention/purger.js.map +1 -0
- package/dist/rls/auth-integration.d.ts +280 -0
- package/dist/rls/auth-integration.d.ts.map +1 -0
- package/dist/rls/auth-integration.js +399 -0
- package/dist/rls/auth-integration.js.map +1 -0
- package/dist/rls/generator.d.ts +249 -0
- package/dist/rls/generator.d.ts.map +1 -0
- package/dist/rls/generator.js +495 -0
- package/dist/rls/generator.js.map +1 -0
- package/dist/rls/index.d.ts +26 -0
- package/dist/rls/index.d.ts.map +1 -0
- package/dist/rls/index.js +58 -0
- package/dist/rls/index.js.map +1 -0
- package/dist/rls/policy.d.ts +116 -0
- package/dist/rls/policy.d.ts.map +1 -0
- package/dist/rls/policy.js +77 -0
- package/dist/rls/policy.js.map +1 -0
- package/dist/rls/validator.d.ts +155 -0
- package/dist/rls/validator.d.ts.map +1 -0
- package/dist/rls/validator.js +792 -0
- package/dist/rls/validator.js.map +1 -0
- package/dist/routing/adaptive-router.d.ts +317 -0
- package/dist/routing/adaptive-router.d.ts.map +1 -0
- package/dist/routing/adaptive-router.js +554 -0
- package/dist/routing/adaptive-router.js.map +1 -0
- package/dist/routing/circuit-breaker.d.ts +339 -0
- package/dist/routing/circuit-breaker.d.ts.map +1 -0
- package/dist/routing/circuit-breaker.js +620 -0
- package/dist/routing/circuit-breaker.js.map +1 -0
- package/dist/routing/cost-metrics.d.ts +133 -0
- package/dist/routing/cost-metrics.d.ts.map +1 -0
- package/dist/routing/cost-metrics.js +259 -0
- package/dist/routing/cost-metrics.js.map +1 -0
- package/dist/routing/do-connection-pool.d.ts +243 -0
- package/dist/routing/do-connection-pool.d.ts.map +1 -0
- package/dist/routing/do-connection-pool.js +572 -0
- package/dist/routing/do-connection-pool.js.map +1 -0
- package/dist/routing/index.d.ts +59 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +59 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/query-complexity-estimator.d.ts +73 -0
- package/dist/routing/query-complexity-estimator.d.ts.map +1 -0
- package/dist/routing/query-complexity-estimator.js +327 -0
- package/dist/routing/query-complexity-estimator.js.map +1 -0
- package/dist/routing/request-coalescing.d.ts +178 -0
- package/dist/routing/request-coalescing.d.ts.map +1 -0
- package/dist/routing/request-coalescing.js +325 -0
- package/dist/routing/request-coalescing.js.map +1 -0
- package/dist/routing/runtime-router.d.ts +107 -0
- package/dist/routing/runtime-router.d.ts.map +1 -0
- package/dist/routing/runtime-router.js +246 -0
- package/dist/routing/runtime-router.js.map +1 -0
- package/dist/routing/tenant-router.d.ts +848 -0
- package/dist/routing/tenant-router.d.ts.map +1 -0
- package/dist/routing/tenant-router.js +1056 -0
- package/dist/routing/tenant-router.js.map +1 -0
- package/dist/routing/websocket-pool.d.ts +119 -0
- package/dist/routing/websocket-pool.d.ts.map +1 -0
- package/dist/routing/websocket-pool.js +436 -0
- package/dist/routing/websocket-pool.js.map +1 -0
- package/dist/storage/cache-layer.d.ts +159 -0
- package/dist/storage/cache-layer.d.ts.map +1 -0
- package/dist/storage/cache-layer.js +245 -0
- package/dist/storage/cache-layer.js.map +1 -0
- package/dist/storage/cost-aware-tiering.d.ts +258 -0
- package/dist/storage/cost-aware-tiering.d.ts.map +1 -0
- package/dist/storage/cost-aware-tiering.js +526 -0
- package/dist/storage/cost-aware-tiering.js.map +1 -0
- package/dist/storage/index.d.ts +87 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +78 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/interfaces.d.ts +856 -0
- package/dist/storage/interfaces.d.ts.map +1 -0
- package/dist/storage/interfaces.js +69 -0
- package/dist/storage/interfaces.js.map +1 -0
- package/dist/storage/r2-layer.d.ts +226 -0
- package/dist/storage/r2-layer.d.ts.map +1 -0
- package/dist/storage/r2-layer.js +307 -0
- package/dist/storage/r2-layer.js.map +1 -0
- package/dist/storage/r2-overflow.d.ts +344 -0
- package/dist/storage/r2-overflow.d.ts.map +1 -0
- package/dist/storage/r2-overflow.js +730 -0
- package/dist/storage/r2-overflow.js.map +1 -0
- package/dist/storage/r2-page-vfs.d.ts +374 -0
- package/dist/storage/r2-page-vfs.d.ts.map +1 -0
- package/dist/storage/r2-page-vfs.js +754 -0
- package/dist/storage/r2-page-vfs.js.map +1 -0
- package/dist/storage/swr-cache.d.ts +181 -0
- package/dist/storage/swr-cache.d.ts.map +1 -0
- package/dist/storage/swr-cache.js +295 -0
- package/dist/storage/swr-cache.js.map +1 -0
- package/dist/storage/tiered-orchestrator.d.ts +951 -0
- package/dist/storage/tiered-orchestrator.d.ts.map +1 -0
- package/dist/storage/tiered-orchestrator.js +1731 -0
- package/dist/storage/tiered-orchestrator.js.map +1 -0
- package/dist/storage/tiered-vfs-swr.d.ts +279 -0
- package/dist/storage/tiered-vfs-swr.d.ts.map +1 -0
- package/dist/storage/tiered-vfs-swr.js +584 -0
- package/dist/storage/tiered-vfs-swr.js.map +1 -0
- package/dist/storage/tiered-vfs.d.ts +405 -0
- package/dist/storage/tiered-vfs.d.ts.map +1 -0
- package/dist/storage/tiered-vfs.js +833 -0
- package/dist/storage/tiered-vfs.js.map +1 -0
- package/dist/streaming/backpressure-controller.d.ts +173 -0
- package/dist/streaming/backpressure-controller.d.ts.map +1 -0
- package/dist/streaming/backpressure-controller.js +344 -0
- package/dist/streaming/backpressure-controller.js.map +1 -0
- package/dist/streaming/buffer-pool.d.ts +241 -0
- package/dist/streaming/buffer-pool.d.ts.map +1 -0
- package/dist/streaming/buffer-pool.js +381 -0
- package/dist/streaming/buffer-pool.js.map +1 -0
- package/dist/streaming/cdc-iceberg-connector.d.ts +272 -0
- package/dist/streaming/cdc-iceberg-connector.d.ts.map +1 -0
- package/dist/streaming/cdc-iceberg-connector.js +408 -0
- package/dist/streaming/cdc-iceberg-connector.js.map +1 -0
- package/dist/streaming/index.d.ts +111 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +128 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/live-cdc-stream.d.ts +400 -0
- package/dist/streaming/live-cdc-stream.d.ts.map +1 -0
- package/dist/streaming/live-cdc-stream.js +703 -0
- package/dist/streaming/live-cdc-stream.js.map +1 -0
- package/dist/streaming/memory-bounded-stream.d.ts +207 -0
- package/dist/streaming/memory-bounded-stream.d.ts.map +1 -0
- package/dist/streaming/memory-bounded-stream.js +340 -0
- package/dist/streaming/memory-bounded-stream.js.map +1 -0
- package/dist/streaming/query-streamer.d.ts +379 -0
- package/dist/streaming/query-streamer.d.ts.map +1 -0
- package/dist/streaming/query-streamer.js +495 -0
- package/dist/streaming/query-streamer.js.map +1 -0
- package/dist/streaming/response-streaming.d.ts +203 -0
- package/dist/streaming/response-streaming.d.ts.map +1 -0
- package/dist/streaming/response-streaming.js +449 -0
- package/dist/streaming/response-streaming.js.map +1 -0
- package/dist/types/branded.d.ts +859 -0
- package/dist/types/branded.d.ts.map +1 -0
- package/dist/types/branded.js +891 -0
- package/dist/types/branded.js.map +1 -0
- package/dist/types/utilities.d.ts +757 -0
- package/dist/types/utilities.d.ts.map +1 -0
- package/dist/types/utilities.js +447 -0
- package/dist/types/utilities.js.map +1 -0
- package/dist/wal/replay-engine.d.ts +344 -0
- package/dist/wal/replay-engine.d.ts.map +1 -0
- package/dist/wal/replay-engine.js +975 -0
- package/dist/wal/replay-engine.js.map +1 -0
- package/dist/worker/__mocks__/capnweb.d.ts +13 -0
- package/dist/worker/__mocks__/capnweb.d.ts.map +1 -0
- package/dist/worker/__mocks__/capnweb.js +15 -0
- package/dist/worker/__mocks__/capnweb.js.map +1 -0
- package/dist/worker/__mocks__/cloudflare-workers.d.ts +31 -0
- package/dist/worker/__mocks__/cloudflare-workers.d.ts.map +1 -0
- package/dist/worker/__mocks__/cloudflare-workers.js +33 -0
- package/dist/worker/__mocks__/cloudflare-workers.js.map +1 -0
- package/dist/worker/__mocks__/pglite.data.d.ts +3 -0
- package/dist/worker/__mocks__/pglite.data.d.ts.map +1 -0
- package/dist/worker/__mocks__/pglite.data.js +20 -0
- package/dist/worker/__mocks__/pglite.data.js.map +1 -0
- package/dist/worker/__mocks__/pglite.wasm.d.ts +3 -0
- package/dist/worker/__mocks__/pglite.wasm.d.ts.map +1 -0
- package/dist/worker/__mocks__/pglite.wasm.js +30 -0
- package/dist/worker/__mocks__/pglite.wasm.js.map +1 -0
- package/dist/worker/auth-rate-limiter.d.ts +270 -0
- package/dist/worker/auth-rate-limiter.d.ts.map +1 -0
- package/dist/worker/auth-rate-limiter.js +332 -0
- package/dist/worker/auth-rate-limiter.js.map +1 -0
- package/dist/worker/auth.d.ts +345 -0
- package/dist/worker/auth.d.ts.map +1 -0
- package/dist/worker/auth.js +837 -0
- package/dist/worker/auth.js.map +1 -0
- package/dist/worker/cdc-backpressure.d.ts +338 -0
- package/dist/worker/cdc-backpressure.d.ts.map +1 -0
- package/dist/worker/cdc-backpressure.js +619 -0
- package/dist/worker/cdc-backpressure.js.map +1 -0
- package/dist/worker/cdc-sse.d.ts +277 -0
- package/dist/worker/cdc-sse.d.ts.map +1 -0
- package/dist/worker/cdc-sse.js +528 -0
- package/dist/worker/cdc-sse.js.map +1 -0
- package/dist/worker/cdc-websocket.d.ts +252 -0
- package/dist/worker/cdc-websocket.d.ts.map +1 -0
- package/dist/worker/cdc-websocket.js +940 -0
- package/dist/worker/cdc-websocket.js.map +1 -0
- package/dist/worker/cdc.d.ts +95 -0
- package/dist/worker/cdc.d.ts.map +1 -0
- package/dist/worker/cdc.js +211 -0
- package/dist/worker/cdc.js.map +1 -0
- package/dist/worker/concerns/auth-concern.d.ts +50 -0
- package/dist/worker/concerns/auth-concern.d.ts.map +1 -0
- package/dist/worker/concerns/auth-concern.js +131 -0
- package/dist/worker/concerns/auth-concern.js.map +1 -0
- package/dist/worker/concerns/cdc-concern.d.ts +99 -0
- package/dist/worker/concerns/cdc-concern.d.ts.map +1 -0
- package/dist/worker/concerns/cdc-concern.js +137 -0
- package/dist/worker/concerns/cdc-concern.js.map +1 -0
- package/dist/worker/concerns/index.d.ts +22 -0
- package/dist/worker/concerns/index.d.ts.map +1 -0
- package/dist/worker/concerns/index.js +13 -0
- package/dist/worker/concerns/index.js.map +1 -0
- package/dist/worker/concerns/query-execution-concern.d.ts +104 -0
- package/dist/worker/concerns/query-execution-concern.d.ts.map +1 -0
- package/dist/worker/concerns/query-execution-concern.js +95 -0
- package/dist/worker/concerns/query-execution-concern.js.map +1 -0
- package/dist/worker/concerns/storage-orchestration-concern.d.ts +78 -0
- package/dist/worker/concerns/storage-orchestration-concern.d.ts.map +1 -0
- package/dist/worker/concerns/storage-orchestration-concern.js +240 -0
- package/dist/worker/concerns/storage-orchestration-concern.js.map +1 -0
- package/dist/worker/do-auth-manager.d.ts +108 -0
- package/dist/worker/do-auth-manager.d.ts.map +1 -0
- package/dist/worker/do-auth-manager.js +212 -0
- package/dist/worker/do-auth-manager.js.map +1 -0
- package/dist/worker/do-pglite-manager.d.ts +137 -0
- package/dist/worker/do-pglite-manager.d.ts.map +1 -0
- package/dist/worker/do-pglite-manager.js +228 -0
- package/dist/worker/do-pglite-manager.js.map +1 -0
- package/dist/worker/do.d.ts +556 -0
- package/dist/worker/do.d.ts.map +1 -0
- package/dist/worker/do.js +1441 -0
- package/dist/worker/do.js.map +1 -0
- package/dist/worker/entry.d.ts +23 -0
- package/dist/worker/entry.d.ts.map +1 -0
- package/dist/worker/entry.js +362 -0
- package/dist/worker/entry.js.map +1 -0
- package/dist/worker/errors.d.ts +106 -0
- package/dist/worker/errors.d.ts.map +1 -0
- package/dist/worker/errors.js +178 -0
- package/dist/worker/errors.js.map +1 -0
- package/dist/worker/health-check-manager.d.ts +141 -0
- package/dist/worker/health-check-manager.d.ts.map +1 -0
- package/dist/worker/health-check-manager.js +145 -0
- package/dist/worker/health-check-manager.js.map +1 -0
- package/dist/worker/index.d.ts +60 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +67 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/memory-pressure.d.ts +892 -0
- package/dist/worker/memory-pressure.d.ts.map +1 -0
- package/dist/worker/memory-pressure.js +1990 -0
- package/dist/worker/memory-pressure.js.map +1 -0
- package/dist/worker/migration-manager.d.ts +153 -0
- package/dist/worker/migration-manager.d.ts.map +1 -0
- package/dist/worker/migration-manager.js +461 -0
- package/dist/worker/migration-manager.js.map +1 -0
- package/dist/worker/plugin-manager.d.ts +147 -0
- package/dist/worker/plugin-manager.d.ts.map +1 -0
- package/dist/worker/plugin-manager.js +408 -0
- package/dist/worker/plugin-manager.js.map +1 -0
- package/dist/worker/proxy.d.ts +330 -0
- package/dist/worker/proxy.d.ts.map +1 -0
- package/dist/worker/proxy.js +504 -0
- package/dist/worker/proxy.js.map +1 -0
- package/dist/worker/query-execution-manager.d.ts +107 -0
- package/dist/worker/query-execution-manager.d.ts.map +1 -0
- package/dist/worker/query-execution-manager.js +155 -0
- package/dist/worker/query-execution-manager.js.map +1 -0
- package/dist/worker/query-executor.d.ts +163 -0
- package/dist/worker/query-executor.d.ts.map +1 -0
- package/dist/worker/query-executor.js +413 -0
- package/dist/worker/query-executor.js.map +1 -0
- package/dist/worker/query-stats-manager.d.ts +117 -0
- package/dist/worker/query-stats-manager.d.ts.map +1 -0
- package/dist/worker/query-stats-manager.js +162 -0
- package/dist/worker/query-stats-manager.js.map +1 -0
- package/dist/worker/result-handler.d.ts +192 -0
- package/dist/worker/result-handler.d.ts.map +1 -0
- package/dist/worker/result-handler.js +346 -0
- package/dist/worker/result-handler.js.map +1 -0
- package/dist/worker/routes.d.ts +135 -0
- package/dist/worker/routes.d.ts.map +1 -0
- package/dist/worker/routes.js +460 -0
- package/dist/worker/routes.js.map +1 -0
- package/dist/worker/rpc-methods-manager.d.ts +142 -0
- package/dist/worker/rpc-methods-manager.d.ts.map +1 -0
- package/dist/worker/rpc-methods-manager.js +195 -0
- package/dist/worker/rpc-methods-manager.js.map +1 -0
- package/dist/worker/rpc.d.ts +259 -0
- package/dist/worker/rpc.d.ts.map +1 -0
- package/dist/worker/rpc.js +398 -0
- package/dist/worker/rpc.js.map +1 -0
- package/dist/worker/schema-version.d.ts +209 -0
- package/dist/worker/schema-version.d.ts.map +1 -0
- package/dist/worker/schema-version.js +450 -0
- package/dist/worker/schema-version.js.map +1 -0
- package/dist/worker/session-manager.d.ts +282 -0
- package/dist/worker/session-manager.d.ts.map +1 -0
- package/dist/worker/session-manager.js +523 -0
- package/dist/worker/session-manager.js.map +1 -0
- package/dist/worker/shutdown-manager.d.ts +188 -0
- package/dist/worker/shutdown-manager.d.ts.map +1 -0
- package/dist/worker/shutdown-manager.js +347 -0
- package/dist/worker/shutdown-manager.js.map +1 -0
- package/dist/worker/sql-transform.d.ts +61 -0
- package/dist/worker/sql-transform.d.ts.map +1 -0
- package/dist/worker/sql-transform.js +312 -0
- package/dist/worker/sql-transform.js.map +1 -0
- package/dist/worker/types.d.ts +738 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +6 -0
- package/dist/worker/types.js.map +1 -0
- package/dist/worker/user-routes.d.ts +76 -0
- package/dist/worker/user-routes.d.ts.map +1 -0
- package/dist/worker/user-routes.js +188 -0
- package/dist/worker/user-routes.js.map +1 -0
- package/dist/worker/wal-facade.d.ts +138 -0
- package/dist/worker/wal-facade.d.ts.map +1 -0
- package/dist/worker/wal-facade.js +184 -0
- package/dist/worker/wal-facade.js.map +1 -0
- package/dist/worker/wal-r2.d.ts +271 -0
- package/dist/worker/wal-r2.d.ts.map +1 -0
- package/dist/worker/wal-r2.js +689 -0
- package/dist/worker/wal-r2.js.map +1 -0
- package/dist/worker/wal-replay.d.ts +361 -0
- package/dist/worker/wal-replay.d.ts.map +1 -0
- package/dist/worker/wal-replay.js +628 -0
- package/dist/worker/wal-replay.js.map +1 -0
- package/dist/worker/wal-retention.d.ts +389 -0
- package/dist/worker/wal-retention.d.ts.map +1 -0
- package/dist/worker/wal-retention.js +763 -0
- package/dist/worker/wal-retention.js.map +1 -0
- package/dist/worker/wal.d.ts +278 -0
- package/dist/worker/wal.d.ts.map +1 -0
- package/dist/worker/wal.js +467 -0
- package/dist/worker/wal.js.map +1 -0
- package/dist/worker/websocket.d.ts +85 -0
- package/dist/worker/websocket.d.ts.map +1 -0
- package/dist/worker/websocket.js +227 -0
- package/dist/worker/websocket.js.map +1 -0
- package/package.json +108 -0
- package/src/cdc/change-stream.ts +137 -0
- package/src/cdc/filter.ts +646 -0
- package/src/cdc/index.ts +112 -0
- package/src/cdc/resume-token.ts +280 -0
- package/src/cdc/transport/index.ts +7 -0
- package/src/cdc/transport/sse.ts +723 -0
- package/src/cdc/transport/websocket.ts +873 -0
- package/src/cdc/types.ts +346 -0
- package/src/config/index.ts +25 -0
- package/src/config/memory.ts +177 -0
- package/src/config/storage.ts +204 -0
- package/src/config/streaming.ts +147 -0
- package/src/config/timeouts.ts +221 -0
- package/src/extensions/config.test.ts +187 -0
- package/src/extensions/config.ts +278 -0
- package/src/extensions/geo.test.ts +455 -0
- package/src/extensions/geo.ts +858 -0
- package/src/extensions/index.test.ts +259 -0
- package/src/extensions/index.ts +227 -0
- package/src/extensions/loader.test.ts +555 -0
- package/src/extensions/loader.ts +588 -0
- package/src/extensions/pgmq-lite.test.ts +727 -0
- package/src/extensions/pgmq-lite.ts +770 -0
- package/src/extensions/plugins.test.ts +528 -0
- package/src/extensions/plugins.ts +718 -0
- package/src/extensions/registry.test.ts +202 -0
- package/src/extensions/registry.ts +267 -0
- package/src/extensions/vector.test.ts +195 -0
- package/src/extensions/vector.ts +217 -0
- package/src/iceberg/SCHEDULER.md +580 -0
- package/src/iceberg/analytics.test.ts +703 -0
- package/src/iceberg/analytics.ts +727 -0
- package/src/iceberg/catalog-api.test.ts +838 -0
- package/src/iceberg/catalog-api.ts +520 -0
- package/src/iceberg/catalog.test.ts +680 -0
- package/src/iceberg/catalog.ts +1007 -0
- package/src/iceberg/iceberg.test.ts +705 -0
- package/src/iceberg/index.ts +406 -0
- package/src/iceberg/metadata.test.ts +632 -0
- package/src/iceberg/metadata.ts +649 -0
- package/src/iceberg/optimizer.test.ts +868 -0
- package/src/iceberg/optimizer.ts +1287 -0
- package/src/iceberg/parquet.test.ts +899 -0
- package/src/iceberg/parquet.ts +1640 -0
- package/src/iceberg/r2-organization.test.ts +615 -0
- package/src/iceberg/r2-organization.ts +951 -0
- package/src/iceberg/scheduler-do-example.ts +364 -0
- package/src/iceberg/scheduler.test.ts +861 -0
- package/src/iceberg/scheduler.ts +1201 -0
- package/src/iceberg/schema.test.ts +547 -0
- package/src/iceberg/schema.ts +616 -0
- package/src/iceberg/snapshot-manager.test.ts +919 -0
- package/src/iceberg/snapshot-manager.ts +1369 -0
- package/src/iceberg/sql-router.test.ts +334 -0
- package/src/iceberg/sql-router.ts +337 -0
- package/src/iceberg/test-fixtures.ts +605 -0
- package/src/iceberg/time-travel-api.test.ts +1029 -0
- package/src/iceberg/time-travel-api.ts +731 -0
- package/src/iceberg/time-travel.test.ts +1218 -0
- package/src/iceberg/time-travel.ts +1052 -0
- package/src/iceberg/transformer.test.ts +689 -0
- package/src/iceberg/transformer.ts +1029 -0
- package/src/iceberg/types.ts +373 -0
- package/src/iceberg/writer.test.ts +716 -0
- package/src/iceberg/writer.ts +590 -0
- package/src/index.ts +212 -0
- package/src/lineage/index.ts +42 -0
- package/src/lineage/integration.ts +334 -0
- package/src/lineage/tracker.ts +1618 -0
- package/src/lineage/types.ts +354 -0
- package/src/middleware/index.ts +36 -0
- package/src/middleware/rate-limit-concurrent.test.ts +794 -0
- package/src/middleware/rate-limit.test.ts +1568 -0
- package/src/middleware/rate-limit.ts +840 -0
- package/src/migration-tooling/external-migration.test.ts +1864 -0
- package/src/migration-tooling/external-migration.ts +2355 -0
- package/src/migration-tooling/index.ts +19 -0
- package/src/migrations/ARCHITECTURE.md +474 -0
- package/src/migrations/PROGRESS_TRACKING.md +485 -0
- package/src/migrations/auto-migrator.test.ts +732 -0
- package/src/migrations/auto-migrator.ts +531 -0
- package/src/migrations/bulk-orchestrator.test.ts +801 -0
- package/src/migrations/bulk-orchestrator.ts +1039 -0
- package/src/migrations/compatibility.test.ts +958 -0
- package/src/migrations/compatibility.ts +902 -0
- package/src/migrations/do-migrations.test.ts +2620 -0
- package/src/migrations/do-migrations.ts +1289 -0
- package/src/migrations/do-migrations.types.ts +715 -0
- package/src/migrations/drizzle-compat.test.ts +210 -0
- package/src/migrations/drizzle-compat.ts +337 -0
- package/src/migrations/index.ts +334 -0
- package/src/migrations/migration-api.test.ts +438 -0
- package/src/migrations/migration-api.ts +704 -0
- package/src/migrations/progress-tracker-do.ts +518 -0
- package/src/migrations/progress-tracker-kv.ts +305 -0
- package/src/migrations/progress-tracker.test.ts +937 -0
- package/src/migrations/progress-tracker.ts +665 -0
- package/src/migrations/registry.test.ts +331 -0
- package/src/migrations/registry.ts +468 -0
- package/src/migrations/rollback.test.ts +644 -0
- package/src/migrations/runner.test.ts +807 -0
- package/src/migrations/runner.test.ts.backup +759 -0
- package/src/migrations/runner.ts +1459 -0
- package/src/migrations/schema-generator.test.ts +649 -0
- package/src/migrations/schema-generator.ts +513 -0
- package/src/migrations/testing.ts +1037 -0
- package/src/migrations/types.ts +573 -0
- package/src/migrations/validator.test.ts +660 -0
- package/src/migrations/validator.ts +741 -0
- package/src/observability/alerting.test.ts +1133 -0
- package/src/observability/alerting.ts +455 -0
- package/src/observability/analytics-engine.ts +733 -0
- package/src/observability/cost-metrics.ts +804 -0
- package/src/observability/cross-do-tracing.test.ts +516 -0
- package/src/observability/cross-do-tracing.ts +588 -0
- package/src/observability/dashboards/postgres-do-overview.json +1656 -0
- package/src/observability/error-rate-collector.test.ts +977 -0
- package/src/observability/error-rate-collector.ts +518 -0
- package/src/observability/exporters.test.ts +365 -0
- package/src/observability/exporters.ts +650 -0
- package/src/observability/health-check.test.ts +353 -0
- package/src/observability/health-check.ts +341 -0
- package/src/observability/index.test.ts +298 -0
- package/src/observability/index.ts +885 -0
- package/src/observability/instrumentation.test.ts +428 -0
- package/src/observability/instrumentation.ts +788 -0
- package/src/observability/memory-metrics.test.ts +355 -0
- package/src/observability/memory-metrics.ts +990 -0
- package/src/observability/metrics-endpoint.test.ts +402 -0
- package/src/observability/metrics-endpoint.ts +374 -0
- package/src/observability/metrics.test.ts +291 -0
- package/src/observability/metrics.ts +315 -0
- package/src/observability/observability-features.ts +1296 -0
- package/src/observability/prometheus.test.ts +292 -0
- package/src/observability/prometheus.ts +170 -0
- package/src/observability/propagation.test.ts +417 -0
- package/src/observability/propagation.ts +294 -0
- package/src/observability/query-latency.ts +586 -0
- package/src/observability/query-performance.test.ts +406 -0
- package/src/observability/query-performance.ts +491 -0
- package/src/observability/storage-tier-metrics.test.ts +633 -0
- package/src/observability/storage-tier-metrics.ts +570 -0
- package/src/observability/tier-cost-optimizer.ts +740 -0
- package/src/observability/tracer.test.ts +346 -0
- package/src/observability/tracer.ts +585 -0
- package/src/observability/types.test.ts +726 -0
- package/src/observability/types.ts +434 -0
- package/src/pglite/auto-demotion.test.ts +477 -0
- package/src/pglite/auto-demotion.ts +385 -0
- package/src/pglite/auto-promotion.test.ts +824 -0
- package/src/pglite/auto-promotion.ts +547 -0
- package/src/pglite/cache-layer.test.ts +469 -0
- package/src/pglite/cache-layer.ts +271 -0
- package/src/pglite/cold-start-manager.ts +1260 -0
- package/src/pglite/cold-start-optimizer.test.ts +937 -0
- package/src/pglite/cold-start-optimizer.ts +1895 -0
- package/src/pglite/dovfs-adapter.ts +1122 -0
- package/src/pglite/dovfs.ts +1258 -0
- package/src/pglite/etag-cache.test.ts +844 -0
- package/src/pglite/etag-cache.ts +526 -0
- package/src/pglite/index.ts +442 -0
- package/src/pglite/init.test.ts +455 -0
- package/src/pglite/init.ts +574 -0
- package/src/pglite/lifecycle.test.ts +599 -0
- package/src/pglite/lifecycle.ts +704 -0
- package/src/pglite/parallel-loader.test.ts +586 -0
- package/src/pglite/parallel-loader.ts +481 -0
- package/src/pglite/production-pglite.test.ts +666 -0
- package/src/pglite/production-pglite.ts +537 -0
- package/src/pglite/query-executor.ts +614 -0
- package/src/pglite/r2-layer.test.ts +501 -0
- package/src/pglite/r2-layer.ts +322 -0
- package/src/pglite/tiered-init.test.ts +725 -0
- package/src/pglite/tiered-init.ts +556 -0
- package/src/pglite/tiered-vfs.test.ts +726 -0
- package/src/pglite/tiered-vfs.ts +33 -0
- package/src/pglite/tiering-stats.test.ts +531 -0
- package/src/pglite/tiering-stats.ts +407 -0
- package/src/pglite/transaction-hooks.ts +343 -0
- package/src/pglite/warm-loader.test.ts +1701 -0
- package/src/pglite/warm-loader.ts +528 -0
- package/src/pglite/workers-pglite.ts +224 -0
- package/src/pglite-assets/pglite.data +0 -0
- package/src/pglite-assets/pglite.wasm +0 -0
- package/src/pglite.d.ts +47 -0
- package/src/playground/index.ts +137 -0
- package/src/playground/keyboard-shortcuts.ts +677 -0
- package/src/playground/playground.ts +323 -0
- package/src/playground/query-executor.ts +669 -0
- package/src/playground/query-history.ts +328 -0
- package/src/playground/result-formatter.ts +420 -0
- package/src/playground/sample-datasets.ts +674 -0
- package/src/playground/sample-queries.ts +1168 -0
- package/src/playground/schema-explorer.ts +558 -0
- package/src/playground/types.ts +518 -0
- package/src/readonly/cache-reader.test.ts +460 -0
- package/src/readonly/cache-reader.ts +313 -0
- package/src/readonly/config.test.ts +187 -0
- package/src/readonly/config.ts +128 -0
- package/src/readonly/index.ts +50 -0
- package/src/readonly/pglite-wrapper.test.ts +278 -0
- package/src/readonly/pglite-wrapper.ts +184 -0
- package/src/readonly/worker.test.ts +533 -0
- package/src/readonly/worker.ts +341 -0
- package/src/readonly/write-blocker.test.ts +459 -0
- package/src/readonly/write-blocker.ts +175 -0
- package/src/recovery/disaster-recovery.test.ts +618 -0
- package/src/recovery/disaster-recovery.ts +1181 -0
- package/src/recovery/index.ts +43 -0
- package/src/recovery/parquet-parser.ts +974 -0
- package/src/retention/index.ts +74 -0
- package/src/retention/policy.test.ts +571 -0
- package/src/retention/policy.ts +774 -0
- package/src/retention/purger.test.ts +465 -0
- package/src/retention/purger.ts +558 -0
- package/src/rls/auth-integration.test.ts +752 -0
- package/src/rls/auth-integration.ts +533 -0
- package/src/rls/generator.test.ts +829 -0
- package/src/rls/generator.ts +573 -0
- package/src/rls/index.ts +128 -0
- package/src/rls/policy.ts +208 -0
- package/src/rls/rls.test.ts +1071 -0
- package/src/rls/validator.test.ts +930 -0
- package/src/rls/validator.ts +895 -0
- package/src/routing/adaptive-router.test.ts +884 -0
- package/src/routing/adaptive-router.ts +845 -0
- package/src/routing/circuit-breaker.test.ts +1505 -0
- package/src/routing/circuit-breaker.ts +852 -0
- package/src/routing/cost-metrics.test.ts +565 -0
- package/src/routing/cost-metrics.ts +408 -0
- package/src/routing/do-connection-pool.test.ts +1109 -0
- package/src/routing/do-connection-pool.ts +828 -0
- package/src/routing/index.ts +158 -0
- package/src/routing/query-complexity-estimator.test.ts +356 -0
- package/src/routing/query-complexity-estimator.ts +444 -0
- package/src/routing/request-coalescing.test.ts +738 -0
- package/src/routing/request-coalescing.ts +475 -0
- package/src/routing/runtime-router.test.ts +436 -0
- package/src/routing/runtime-router.ts +357 -0
- package/src/routing/tenant-router.test.ts +2493 -0
- package/src/routing/tenant-router.ts +1908 -0
- package/src/routing/websocket-pool.test.ts +551 -0
- package/src/routing/websocket-pool.ts +577 -0
- package/src/storage/access-pattern-tracker.test.ts +874 -0
- package/src/storage/cache-layer.test.ts +560 -0
- package/src/storage/cache-layer.ts +328 -0
- package/src/storage/cost-aware-tiering.test.ts +652 -0
- package/src/storage/cost-aware-tiering.ts +794 -0
- package/src/storage/do-sqlite-blobs.test.ts +937 -0
- package/src/storage/index.ts +272 -0
- package/src/storage/interfaces.ts +974 -0
- package/src/storage/r2-layer.test.ts +653 -0
- package/src/storage/r2-layer.ts +434 -0
- package/src/storage/r2-overflow.ts +920 -0
- package/src/storage/r2-page-vfs.test.ts +2348 -0
- package/src/storage/r2-page-vfs.ts +1054 -0
- package/src/storage/swr-cache.test.ts +832 -0
- package/src/storage/swr-cache.ts +398 -0
- package/src/storage/swr-tiered-integration.test.ts +617 -0
- package/src/storage/tiered-orchestrator.test.ts +2441 -0
- package/src/storage/tiered-orchestrator.ts +2081 -0
- package/src/storage/tiered-vfs-swr.test.ts +736 -0
- package/src/storage/tiered-vfs-swr.ts +735 -0
- package/src/storage/tiered-vfs.test.ts +793 -0
- package/src/storage/tiered-vfs.ts +1082 -0
- package/src/streaming/backpressure-controller.ts +452 -0
- package/src/streaming/buffer-pool.ts +484 -0
- package/src/streaming/cdc-iceberg-connector.ts +605 -0
- package/src/streaming/index.ts +225 -0
- package/src/streaming/live-cdc-stream.ts +985 -0
- package/src/streaming/memory-bounded-stream.ts +443 -0
- package/src/streaming/query-streamer.ts +662 -0
- package/src/streaming/response-streaming.ts +557 -0
- package/src/types/branded.ts +1075 -0
- package/src/types/branded.ts.backup +273 -0
- package/src/types/utilities.ts +1023 -0
- package/src/types/wasm.d.ts +30 -0
- package/src/validation/typed-errors.test.ts +420 -0
- package/src/wal/replay-engine.ts +1264 -0
- package/src/worker/__mocks__/capnweb.ts +15 -0
- package/src/worker/__mocks__/pglite.data.ts +22 -0
- package/src/worker/__mocks__/pglite.wasm.ts +33 -0
- package/src/worker/auth-rate-limiter.test.ts +272 -0
- package/src/worker/auth-rate-limiter.ts +448 -0
- package/src/worker/auth.security-red.test.ts +1236 -0
- package/src/worker/auth.security.test.ts +822 -0
- package/src/worker/auth.test.ts +469 -0
- package/src/worker/auth.ts +1104 -0
- package/src/worker/cdc-backpressure.test.ts +726 -0
- package/src/worker/cdc-backpressure.ts +866 -0
- package/src/worker/cdc-sse.test.ts +780 -0
- package/src/worker/cdc-sse.ts +728 -0
- package/src/worker/cdc-websocket.ts +1229 -0
- package/src/worker/cdc-ws.test.ts +1009 -0
- package/src/worker/cdc.test.ts +327 -0
- package/src/worker/cdc.ts +289 -0
- package/src/worker/concerns/auth-concern.ts +179 -0
- package/src/worker/concerns/cdc-concern.ts +247 -0
- package/src/worker/concerns/index.ts +58 -0
- package/src/worker/concerns/query-execution-concern.ts +194 -0
- package/src/worker/concerns/storage-orchestration-concern.ts +373 -0
- package/src/worker/discriminated-types.test.ts +280 -0
- package/src/worker/do-auth-manager.ts +257 -0
- package/src/worker/do-decomposition.test.ts +1236 -0
- package/src/worker/do-pglite-manager.ts +302 -0
- package/src/worker/do.test.ts +2254 -0
- package/src/worker/do.ts +1878 -0
- package/src/worker/entry.ts +417 -0
- package/src/worker/errors.ts +285 -0
- package/src/worker/health-check-manager.test.ts +261 -0
- package/src/worker/health-check-manager.ts +231 -0
- package/src/worker/index.ts +389 -0
- package/src/worker/memory-pressure.test.ts +1460 -0
- package/src/worker/memory-pressure.ts +2650 -0
- package/src/worker/migration-manager.ts +582 -0
- package/src/worker/neon-compat.test.ts +332 -0
- package/src/worker/plugin-manager.ts +485 -0
- package/src/worker/postgres.do-rpc.d.ts +76 -0
- package/src/worker/proxy.ts +694 -0
- package/src/worker/query-execution-manager.test.ts +303 -0
- package/src/worker/query-execution-manager.ts +219 -0
- package/src/worker/query-executor.test.ts +282 -0
- package/src/worker/query-executor.ts +560 -0
- package/src/worker/query-stats-manager.ts +229 -0
- package/src/worker/result-handler.test.ts +364 -0
- package/src/worker/result-handler.ts +510 -0
- package/src/worker/routes.test.ts +795 -0
- package/src/worker/routes.ts +650 -0
- package/src/worker/rpc-methods-manager.test.ts +326 -0
- package/src/worker/rpc-methods-manager.ts +276 -0
- package/src/worker/rpc.ts +524 -0
- package/src/worker/schema-version.ts +605 -0
- package/src/worker/session-manager.test.ts +506 -0
- package/src/worker/session-manager.ts +732 -0
- package/src/worker/shutdown-manager.ts +469 -0
- package/src/worker/sql-transform.test.ts +286 -0
- package/src/worker/sql-transform.ts +368 -0
- package/src/worker/supabase-compat.test.ts +621 -0
- package/src/worker/types.test.ts +292 -0
- package/src/worker/types.ts +873 -0
- package/src/worker/user-routes.test.ts +703 -0
- package/src/worker/user-routes.ts +303 -0
- package/src/worker/wal-facade.ts +235 -0
- package/src/worker/wal-r2.test.ts +570 -0
- package/src/worker/wal-r2.ts +930 -0
- package/src/worker/wal-replay.test.ts +845 -0
- package/src/worker/wal-replay.ts +897 -0
- package/src/worker/wal-retention.test.ts +758 -0
- package/src/worker/wal-retention.ts +1075 -0
- package/src/worker/wal.test.ts +618 -0
- package/src/worker/wal.ts +697 -0
- package/src/worker/websocket.test.ts +296 -0
- package/src/worker/websocket.ts +284 -0
|
@@ -0,0 +1,648 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PGMQ-Lite: Pure SQL Message Queue for PGLite
|
|
3
|
+
*
|
|
4
|
+
* A lightweight message queue implementation that works with single-connection
|
|
5
|
+
* PGLite instances. Unlike full PGMQ which requires PostgreSQL extensions,
|
|
6
|
+
* this implementation uses pure SQL and works entirely within PGLite.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Message queues with visibility timeout
|
|
10
|
+
* - Transactional outbox pattern support
|
|
11
|
+
* - Dead letter queue support
|
|
12
|
+
* - Message archival
|
|
13
|
+
* - Atomic read/delete operations
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { PGMQLite } from '@dotdo/postgres/extensions'
|
|
18
|
+
*
|
|
19
|
+
* // Initialize the queue system
|
|
20
|
+
* await db.exec(PGMQLite.createSchemaSQL())
|
|
21
|
+
*
|
|
22
|
+
* // Create a queue
|
|
23
|
+
* await db.exec(PGMQLite.createQueueSQL('my_queue'))
|
|
24
|
+
*
|
|
25
|
+
* // Send a message
|
|
26
|
+
* await db.exec(PGMQLite.sendSQL('my_queue', { task: 'process', data: 123 }))
|
|
27
|
+
*
|
|
28
|
+
* // Read messages (with 30 second visibility timeout)
|
|
29
|
+
* const result = await db.query(PGMQLite.readSQL('my_queue', 30, 10))
|
|
30
|
+
*
|
|
31
|
+
* // Delete processed message
|
|
32
|
+
* await db.exec(PGMQLite.deleteSQL('my_queue', msgId))
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @module extensions/pgmq-lite
|
|
36
|
+
*/
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// SQL Generation Utilities
|
|
39
|
+
// ============================================================================
|
|
40
|
+
/**
|
|
41
|
+
* Escape a string value for SQL (basic escaping)
|
|
42
|
+
*/
|
|
43
|
+
function escapeSQL(value) {
|
|
44
|
+
return value.replace(/'/g, "''");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Serialize a value to JSON string for SQL
|
|
48
|
+
*/
|
|
49
|
+
function toJSONSQL(value) {
|
|
50
|
+
return `'${escapeSQL(JSON.stringify(value))}'::jsonb`;
|
|
51
|
+
}
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// PGMQ-Lite Implementation
|
|
54
|
+
// ============================================================================
|
|
55
|
+
/**
|
|
56
|
+
* PGMQ-Lite: Pure SQL Message Queue for PGLite
|
|
57
|
+
*
|
|
58
|
+
* Provides SQL generation for message queue operations that work
|
|
59
|
+
* entirely within PGLite without requiring external extensions.
|
|
60
|
+
*/
|
|
61
|
+
export const PGMQLite = {
|
|
62
|
+
name: 'pgmq_lite',
|
|
63
|
+
displayName: 'PGMQ-Lite',
|
|
64
|
+
description: 'Lightweight message queue for PGLite using pure SQL',
|
|
65
|
+
// ==========================================================================
|
|
66
|
+
// Schema Management
|
|
67
|
+
// ==========================================================================
|
|
68
|
+
/**
|
|
69
|
+
* Generate SQL to create the pgmq_lite schema and metadata tables
|
|
70
|
+
*
|
|
71
|
+
* @returns SQL string to create the schema
|
|
72
|
+
*/
|
|
73
|
+
createSchemaSQL() {
|
|
74
|
+
return `
|
|
75
|
+
-- PGMQ-Lite Schema
|
|
76
|
+
-- Lightweight message queue for PGLite
|
|
77
|
+
|
|
78
|
+
-- Create schema if not exists
|
|
79
|
+
CREATE SCHEMA IF NOT EXISTS pgmq_lite;
|
|
80
|
+
|
|
81
|
+
-- Queue metadata table
|
|
82
|
+
CREATE TABLE IF NOT EXISTS pgmq_lite.meta (
|
|
83
|
+
queue_name TEXT PRIMARY KEY,
|
|
84
|
+
is_paused BOOLEAN DEFAULT FALSE,
|
|
85
|
+
is_unlogged BOOLEAN DEFAULT FALSE,
|
|
86
|
+
max_delivery_attempts INTEGER DEFAULT 5,
|
|
87
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
-- Archive table for processed messages
|
|
91
|
+
CREATE TABLE IF NOT EXISTS pgmq_lite.archive (
|
|
92
|
+
msg_id BIGINT,
|
|
93
|
+
queue_name TEXT NOT NULL,
|
|
94
|
+
read_ct INTEGER DEFAULT 0,
|
|
95
|
+
enqueued_at TIMESTAMPTZ DEFAULT NOW(),
|
|
96
|
+
archived_at TIMESTAMPTZ DEFAULT NOW(),
|
|
97
|
+
message JSONB NOT NULL,
|
|
98
|
+
PRIMARY KEY (queue_name, msg_id)
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
-- Dead letter queue table
|
|
102
|
+
CREATE TABLE IF NOT EXISTS pgmq_lite.dlq (
|
|
103
|
+
msg_id BIGINT,
|
|
104
|
+
queue_name TEXT NOT NULL,
|
|
105
|
+
read_ct INTEGER DEFAULT 0,
|
|
106
|
+
enqueued_at TIMESTAMPTZ DEFAULT NOW(),
|
|
107
|
+
moved_at TIMESTAMPTZ DEFAULT NOW(),
|
|
108
|
+
message JSONB NOT NULL,
|
|
109
|
+
error_reason TEXT,
|
|
110
|
+
PRIMARY KEY (queue_name, msg_id)
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
-- Transactional outbox table
|
|
114
|
+
CREATE TABLE IF NOT EXISTS pgmq_lite.outbox (
|
|
115
|
+
id BIGSERIAL PRIMARY KEY,
|
|
116
|
+
target_queue TEXT NOT NULL,
|
|
117
|
+
routing_key TEXT,
|
|
118
|
+
message JSONB NOT NULL,
|
|
119
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
120
|
+
processed_at TIMESTAMPTZ,
|
|
121
|
+
status TEXT DEFAULT 'pending' CHECK (status IN ('pending', 'processing', 'completed', 'failed'))
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
-- Index for outbox processing
|
|
125
|
+
CREATE INDEX IF NOT EXISTS pgmq_lite_outbox_status_idx ON pgmq_lite.outbox (status, created_at) WHERE status = 'pending';
|
|
126
|
+
`.trim();
|
|
127
|
+
},
|
|
128
|
+
/**
|
|
129
|
+
* Generate SQL to drop the pgmq_lite schema and all queues
|
|
130
|
+
*
|
|
131
|
+
* @returns SQL string to drop everything
|
|
132
|
+
*/
|
|
133
|
+
dropSchemaSQL() {
|
|
134
|
+
return `DROP SCHEMA IF EXISTS pgmq_lite CASCADE;`;
|
|
135
|
+
},
|
|
136
|
+
// ==========================================================================
|
|
137
|
+
// Queue Management
|
|
138
|
+
// ==========================================================================
|
|
139
|
+
/**
|
|
140
|
+
* Generate SQL to create a new message queue
|
|
141
|
+
*
|
|
142
|
+
* @param queueName - Name of the queue to create
|
|
143
|
+
* @param options - Queue creation options
|
|
144
|
+
* @returns SQL string to create the queue
|
|
145
|
+
*/
|
|
146
|
+
createQueueSQL(queueName, options = {}) {
|
|
147
|
+
const { enableDLQ = false, maxDeliveryAttempts = 5 } = options;
|
|
148
|
+
const escapedName = escapeSQL(queueName);
|
|
149
|
+
return `
|
|
150
|
+
-- Create queue: ${escapedName}
|
|
151
|
+
CREATE TABLE IF NOT EXISTS pgmq_lite.q_${escapedName} (
|
|
152
|
+
msg_id BIGSERIAL PRIMARY KEY,
|
|
153
|
+
read_ct INTEGER DEFAULT 0,
|
|
154
|
+
enqueued_at TIMESTAMPTZ DEFAULT NOW(),
|
|
155
|
+
vt TIMESTAMPTZ DEFAULT NOW(),
|
|
156
|
+
message JSONB NOT NULL
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
-- Create index for visibility timeout
|
|
160
|
+
CREATE INDEX IF NOT EXISTS pgmq_lite_q_${escapedName}_vt_idx
|
|
161
|
+
ON pgmq_lite.q_${escapedName} (vt ASC)
|
|
162
|
+
WHERE vt <= NOW();
|
|
163
|
+
|
|
164
|
+
-- Register queue in metadata
|
|
165
|
+
INSERT INTO pgmq_lite.meta (queue_name, max_delivery_attempts)
|
|
166
|
+
VALUES ('${escapedName}', ${maxDeliveryAttempts})
|
|
167
|
+
ON CONFLICT (queue_name) DO NOTHING;
|
|
168
|
+
${enableDLQ ? `
|
|
169
|
+
-- Create DLQ for this queue
|
|
170
|
+
CREATE TABLE IF NOT EXISTS pgmq_lite.q_${escapedName}_dlq (
|
|
171
|
+
msg_id BIGSERIAL PRIMARY KEY,
|
|
172
|
+
original_msg_id BIGINT,
|
|
173
|
+
read_ct INTEGER DEFAULT 0,
|
|
174
|
+
enqueued_at TIMESTAMPTZ DEFAULT NOW(),
|
|
175
|
+
moved_at TIMESTAMPTZ DEFAULT NOW(),
|
|
176
|
+
message JSONB NOT NULL,
|
|
177
|
+
error_reason TEXT
|
|
178
|
+
);
|
|
179
|
+
` : ''}
|
|
180
|
+
`.trim();
|
|
181
|
+
},
|
|
182
|
+
/**
|
|
183
|
+
* Generate SQL to drop a queue
|
|
184
|
+
*
|
|
185
|
+
* @param queueName - Name of the queue to drop
|
|
186
|
+
* @returns SQL string to drop the queue
|
|
187
|
+
*/
|
|
188
|
+
dropQueueSQL(queueName) {
|
|
189
|
+
const escapedName = escapeSQL(queueName);
|
|
190
|
+
return `
|
|
191
|
+
DROP TABLE IF EXISTS pgmq_lite.q_${escapedName};
|
|
192
|
+
DROP TABLE IF EXISTS pgmq_lite.q_${escapedName}_dlq;
|
|
193
|
+
DELETE FROM pgmq_lite.meta WHERE queue_name = '${escapedName}';
|
|
194
|
+
DELETE FROM pgmq_lite.archive WHERE queue_name = '${escapedName}';
|
|
195
|
+
DELETE FROM pgmq_lite.dlq WHERE queue_name = '${escapedName}';
|
|
196
|
+
`.trim();
|
|
197
|
+
},
|
|
198
|
+
/**
|
|
199
|
+
* Generate SQL to list all queues
|
|
200
|
+
*
|
|
201
|
+
* @returns SQL string to list queues
|
|
202
|
+
*/
|
|
203
|
+
listQueuesSQL() {
|
|
204
|
+
return `SELECT queue_name, is_paused, created_at FROM pgmq_lite.meta ORDER BY created_at;`;
|
|
205
|
+
},
|
|
206
|
+
/**
|
|
207
|
+
* Generate SQL to get queue depth (number of messages)
|
|
208
|
+
*
|
|
209
|
+
* @param queueName - Name of the queue
|
|
210
|
+
* @returns SQL string to get queue depth
|
|
211
|
+
*/
|
|
212
|
+
queueDepthSQL(queueName) {
|
|
213
|
+
const escapedName = escapeSQL(queueName);
|
|
214
|
+
return `SELECT COUNT(*) as depth FROM pgmq_lite.q_${escapedName} WHERE vt <= NOW();`;
|
|
215
|
+
},
|
|
216
|
+
/**
|
|
217
|
+
* Generate SQL to pause a queue
|
|
218
|
+
*
|
|
219
|
+
* @param queueName - Name of the queue
|
|
220
|
+
* @returns SQL string to pause the queue
|
|
221
|
+
*/
|
|
222
|
+
pauseQueueSQL(queueName) {
|
|
223
|
+
const escapedName = escapeSQL(queueName);
|
|
224
|
+
return `UPDATE pgmq_lite.meta SET is_paused = TRUE WHERE queue_name = '${escapedName}';`;
|
|
225
|
+
},
|
|
226
|
+
/**
|
|
227
|
+
* Generate SQL to resume a queue
|
|
228
|
+
*
|
|
229
|
+
* @param queueName - Name of the queue
|
|
230
|
+
* @returns SQL string to resume the queue
|
|
231
|
+
*/
|
|
232
|
+
resumeQueueSQL(queueName) {
|
|
233
|
+
const escapedName = escapeSQL(queueName);
|
|
234
|
+
return `UPDATE pgmq_lite.meta SET is_paused = FALSE WHERE queue_name = '${escapedName}';`;
|
|
235
|
+
},
|
|
236
|
+
// ==========================================================================
|
|
237
|
+
// Message Operations
|
|
238
|
+
// ==========================================================================
|
|
239
|
+
/**
|
|
240
|
+
* Generate SQL to send a message to a queue
|
|
241
|
+
*
|
|
242
|
+
* @param queueName - Name of the queue
|
|
243
|
+
* @param message - Message payload (will be JSON serialized)
|
|
244
|
+
* @param delay - Optional delay in seconds before message becomes visible
|
|
245
|
+
* @returns SQL string to send the message
|
|
246
|
+
*/
|
|
247
|
+
sendSQL(queueName, message, delay = 0) {
|
|
248
|
+
const escapedName = escapeSQL(queueName);
|
|
249
|
+
const vtClause = delay > 0 ? `NOW() + INTERVAL '${delay} seconds'` : 'NOW()';
|
|
250
|
+
return `
|
|
251
|
+
INSERT INTO pgmq_lite.q_${escapedName} (message, vt)
|
|
252
|
+
VALUES (${toJSONSQL(message)}, ${vtClause})
|
|
253
|
+
RETURNING msg_id, read_ct, enqueued_at, vt, message;
|
|
254
|
+
`.trim();
|
|
255
|
+
},
|
|
256
|
+
/**
|
|
257
|
+
* Generate SQL to send multiple messages to a queue
|
|
258
|
+
*
|
|
259
|
+
* @param queueName - Name of the queue
|
|
260
|
+
* @param messages - Array of message payloads
|
|
261
|
+
* @param delay - Optional delay in seconds
|
|
262
|
+
* @returns SQL string to send the messages
|
|
263
|
+
*/
|
|
264
|
+
sendBatchSQL(queueName, messages, delay = 0) {
|
|
265
|
+
const escapedName = escapeSQL(queueName);
|
|
266
|
+
const vtClause = delay > 0 ? `NOW() + INTERVAL '${delay} seconds'` : 'NOW()';
|
|
267
|
+
const values = messages.map((msg) => `(${toJSONSQL(msg)}, ${vtClause})`).join(',\n ');
|
|
268
|
+
return `
|
|
269
|
+
INSERT INTO pgmq_lite.q_${escapedName} (message, vt)
|
|
270
|
+
VALUES
|
|
271
|
+
${values}
|
|
272
|
+
RETURNING msg_id, read_ct, enqueued_at, vt, message;
|
|
273
|
+
`.trim();
|
|
274
|
+
},
|
|
275
|
+
/**
|
|
276
|
+
* Generate SQL to read messages from a queue (with visibility timeout)
|
|
277
|
+
*
|
|
278
|
+
* Messages become invisible to other readers for the duration of the
|
|
279
|
+
* visibility timeout. If not deleted/archived, they become visible again.
|
|
280
|
+
*
|
|
281
|
+
* @param queueName - Name of the queue
|
|
282
|
+
* @param visibilityTimeout - Seconds before message becomes visible again (default: 30)
|
|
283
|
+
* @param limit - Maximum number of messages to read (default: 1)
|
|
284
|
+
* @returns SQL string to read messages
|
|
285
|
+
*/
|
|
286
|
+
readSQL(queueName, visibilityTimeout = 30, limit = 1) {
|
|
287
|
+
const escapedName = escapeSQL(queueName);
|
|
288
|
+
return `
|
|
289
|
+
WITH readable AS (
|
|
290
|
+
SELECT msg_id
|
|
291
|
+
FROM pgmq_lite.q_${escapedName}
|
|
292
|
+
WHERE vt <= NOW()
|
|
293
|
+
ORDER BY msg_id ASC
|
|
294
|
+
LIMIT ${limit}
|
|
295
|
+
FOR UPDATE SKIP LOCKED
|
|
296
|
+
)
|
|
297
|
+
UPDATE pgmq_lite.q_${escapedName} q
|
|
298
|
+
SET
|
|
299
|
+
vt = NOW() + INTERVAL '${visibilityTimeout} seconds',
|
|
300
|
+
read_ct = q.read_ct + 1
|
|
301
|
+
FROM readable r
|
|
302
|
+
WHERE q.msg_id = r.msg_id
|
|
303
|
+
RETURNING q.msg_id, q.read_ct, q.enqueued_at, q.vt, q.message;
|
|
304
|
+
`.trim();
|
|
305
|
+
},
|
|
306
|
+
/**
|
|
307
|
+
* Generate SQL to read a single message and delete it atomically (pop)
|
|
308
|
+
*
|
|
309
|
+
* @param queueName - Name of the queue
|
|
310
|
+
* @returns SQL string to pop a message
|
|
311
|
+
*/
|
|
312
|
+
popSQL(queueName) {
|
|
313
|
+
const escapedName = escapeSQL(queueName);
|
|
314
|
+
return `
|
|
315
|
+
WITH popped AS (
|
|
316
|
+
DELETE FROM pgmq_lite.q_${escapedName}
|
|
317
|
+
WHERE msg_id = (
|
|
318
|
+
SELECT msg_id
|
|
319
|
+
FROM pgmq_lite.q_${escapedName}
|
|
320
|
+
WHERE vt <= NOW()
|
|
321
|
+
ORDER BY msg_id ASC
|
|
322
|
+
LIMIT 1
|
|
323
|
+
FOR UPDATE SKIP LOCKED
|
|
324
|
+
)
|
|
325
|
+
RETURNING msg_id, read_ct, enqueued_at, vt, message
|
|
326
|
+
)
|
|
327
|
+
SELECT * FROM popped;
|
|
328
|
+
`.trim();
|
|
329
|
+
},
|
|
330
|
+
/**
|
|
331
|
+
* Generate SQL to delete a message from a queue
|
|
332
|
+
*
|
|
333
|
+
* @param queueName - Name of the queue
|
|
334
|
+
* @param msgId - Message ID to delete
|
|
335
|
+
* @returns SQL string to delete the message
|
|
336
|
+
*/
|
|
337
|
+
deleteSQL(queueName, msgId) {
|
|
338
|
+
const escapedName = escapeSQL(queueName);
|
|
339
|
+
return `DELETE FROM pgmq_lite.q_${escapedName} WHERE msg_id = ${msgId} RETURNING msg_id;`;
|
|
340
|
+
},
|
|
341
|
+
/**
|
|
342
|
+
* Generate SQL to delete multiple messages from a queue
|
|
343
|
+
*
|
|
344
|
+
* @param queueName - Name of the queue
|
|
345
|
+
* @param msgIds - Array of message IDs to delete
|
|
346
|
+
* @returns SQL string to delete the messages
|
|
347
|
+
*/
|
|
348
|
+
deleteBatchSQL(queueName, msgIds) {
|
|
349
|
+
const escapedName = escapeSQL(queueName);
|
|
350
|
+
const ids = msgIds.join(', ');
|
|
351
|
+
return `DELETE FROM pgmq_lite.q_${escapedName} WHERE msg_id IN (${ids}) RETURNING msg_id;`;
|
|
352
|
+
},
|
|
353
|
+
/**
|
|
354
|
+
* Generate SQL to archive a message (move to archive table)
|
|
355
|
+
*
|
|
356
|
+
* @param queueName - Name of the queue
|
|
357
|
+
* @param msgId - Message ID to archive
|
|
358
|
+
* @returns SQL string to archive the message
|
|
359
|
+
*/
|
|
360
|
+
archiveSQL(queueName, msgId) {
|
|
361
|
+
const escapedName = escapeSQL(queueName);
|
|
362
|
+
return `
|
|
363
|
+
WITH archived AS (
|
|
364
|
+
DELETE FROM pgmq_lite.q_${escapedName}
|
|
365
|
+
WHERE msg_id = ${msgId}
|
|
366
|
+
RETURNING msg_id, read_ct, enqueued_at, message
|
|
367
|
+
)
|
|
368
|
+
INSERT INTO pgmq_lite.archive (msg_id, queue_name, read_ct, enqueued_at, message)
|
|
369
|
+
SELECT msg_id, '${escapedName}', read_ct, enqueued_at, message
|
|
370
|
+
FROM archived
|
|
371
|
+
RETURNING msg_id;
|
|
372
|
+
`.trim();
|
|
373
|
+
},
|
|
374
|
+
/**
|
|
375
|
+
* Generate SQL to change message visibility timeout
|
|
376
|
+
*
|
|
377
|
+
* @param queueName - Name of the queue
|
|
378
|
+
* @param msgId - Message ID
|
|
379
|
+
* @param visibilityTimeout - New visibility timeout in seconds
|
|
380
|
+
* @returns SQL string to change visibility
|
|
381
|
+
*/
|
|
382
|
+
setVisibilityTimeoutSQL(queueName, msgId, visibilityTimeout) {
|
|
383
|
+
const escapedName = escapeSQL(queueName);
|
|
384
|
+
return `
|
|
385
|
+
UPDATE pgmq_lite.q_${escapedName}
|
|
386
|
+
SET vt = NOW() + INTERVAL '${visibilityTimeout} seconds'
|
|
387
|
+
WHERE msg_id = ${msgId}
|
|
388
|
+
RETURNING msg_id, vt;
|
|
389
|
+
`.trim();
|
|
390
|
+
},
|
|
391
|
+
/**
|
|
392
|
+
* Generate SQL to release a message back to the queue (make visible immediately)
|
|
393
|
+
*
|
|
394
|
+
* @param queueName - Name of the queue
|
|
395
|
+
* @param msgId - Message ID
|
|
396
|
+
* @returns SQL string to release the message
|
|
397
|
+
*/
|
|
398
|
+
releaseSQL(queueName, msgId) {
|
|
399
|
+
const escapedName = escapeSQL(queueName);
|
|
400
|
+
return `
|
|
401
|
+
UPDATE pgmq_lite.q_${escapedName}
|
|
402
|
+
SET vt = NOW()
|
|
403
|
+
WHERE msg_id = ${msgId}
|
|
404
|
+
RETURNING msg_id, vt;
|
|
405
|
+
`.trim();
|
|
406
|
+
},
|
|
407
|
+
// ==========================================================================
|
|
408
|
+
// Dead Letter Queue Operations
|
|
409
|
+
// ==========================================================================
|
|
410
|
+
/**
|
|
411
|
+
* Generate SQL to move a message to the dead letter queue
|
|
412
|
+
*
|
|
413
|
+
* @param queueName - Name of the source queue
|
|
414
|
+
* @param msgId - Message ID to move
|
|
415
|
+
* @param errorReason - Optional reason for moving to DLQ
|
|
416
|
+
* @returns SQL string to move message to DLQ
|
|
417
|
+
*/
|
|
418
|
+
moveToDLQSQL(queueName, msgId, errorReason) {
|
|
419
|
+
const escapedName = escapeSQL(queueName);
|
|
420
|
+
const reasonValue = errorReason ? `'${escapeSQL(errorReason)}'` : 'NULL';
|
|
421
|
+
return `
|
|
422
|
+
WITH moved AS (
|
|
423
|
+
DELETE FROM pgmq_lite.q_${escapedName}
|
|
424
|
+
WHERE msg_id = ${msgId}
|
|
425
|
+
RETURNING msg_id, read_ct, enqueued_at, message
|
|
426
|
+
)
|
|
427
|
+
INSERT INTO pgmq_lite.dlq (msg_id, queue_name, read_ct, enqueued_at, message, error_reason)
|
|
428
|
+
SELECT msg_id, '${escapedName}', read_ct, enqueued_at, message, ${reasonValue}
|
|
429
|
+
FROM moved
|
|
430
|
+
RETURNING msg_id;
|
|
431
|
+
`.trim();
|
|
432
|
+
},
|
|
433
|
+
/**
|
|
434
|
+
* Generate SQL to read messages from the dead letter queue
|
|
435
|
+
*
|
|
436
|
+
* @param queueName - Name of the original queue (or null for all)
|
|
437
|
+
* @param limit - Maximum number of messages to read
|
|
438
|
+
* @returns SQL string to read DLQ messages
|
|
439
|
+
*/
|
|
440
|
+
readDLQSQL(queueName, limit = 10) {
|
|
441
|
+
if (queueName) {
|
|
442
|
+
const escapedName = escapeSQL(queueName);
|
|
443
|
+
return `
|
|
444
|
+
SELECT msg_id, queue_name, read_ct, enqueued_at, moved_at, message, error_reason
|
|
445
|
+
FROM pgmq_lite.dlq
|
|
446
|
+
WHERE queue_name = '${escapedName}'
|
|
447
|
+
ORDER BY moved_at DESC
|
|
448
|
+
LIMIT ${limit};
|
|
449
|
+
`.trim();
|
|
450
|
+
}
|
|
451
|
+
return `
|
|
452
|
+
SELECT msg_id, queue_name, read_ct, enqueued_at, moved_at, message, error_reason
|
|
453
|
+
FROM pgmq_lite.dlq
|
|
454
|
+
ORDER BY moved_at DESC
|
|
455
|
+
LIMIT ${limit};
|
|
456
|
+
`.trim();
|
|
457
|
+
},
|
|
458
|
+
/**
|
|
459
|
+
* Generate SQL to requeue a message from DLQ back to the original queue
|
|
460
|
+
*
|
|
461
|
+
* @param queueName - Name of the queue
|
|
462
|
+
* @param msgId - Message ID in DLQ
|
|
463
|
+
* @returns SQL string to requeue the message
|
|
464
|
+
*/
|
|
465
|
+
requeueFromDLQSQL(queueName, msgId) {
|
|
466
|
+
const escapedName = escapeSQL(queueName);
|
|
467
|
+
return `
|
|
468
|
+
WITH requeued AS (
|
|
469
|
+
DELETE FROM pgmq_lite.dlq
|
|
470
|
+
WHERE msg_id = ${msgId} AND queue_name = '${escapedName}'
|
|
471
|
+
RETURNING message
|
|
472
|
+
)
|
|
473
|
+
INSERT INTO pgmq_lite.q_${escapedName} (message, vt)
|
|
474
|
+
SELECT message, NOW()
|
|
475
|
+
FROM requeued
|
|
476
|
+
RETURNING msg_id, read_ct, enqueued_at, vt, message;
|
|
477
|
+
`.trim();
|
|
478
|
+
},
|
|
479
|
+
// ==========================================================================
|
|
480
|
+
// Transactional Outbox Pattern
|
|
481
|
+
// ==========================================================================
|
|
482
|
+
/**
|
|
483
|
+
* Generate SQL to add a message to the transactional outbox
|
|
484
|
+
*
|
|
485
|
+
* Use this within the same transaction as your business logic to ensure
|
|
486
|
+
* messages are only sent if the transaction commits.
|
|
487
|
+
*
|
|
488
|
+
* @param targetQueue - Queue to eventually send the message to
|
|
489
|
+
* @param message - Message payload
|
|
490
|
+
* @param routingKey - Optional routing key for filtering
|
|
491
|
+
* @returns SQL string to add to outbox
|
|
492
|
+
*/
|
|
493
|
+
outboxAddSQL(targetQueue, message, routingKey) {
|
|
494
|
+
const escapedQueue = escapeSQL(targetQueue);
|
|
495
|
+
const routingKeyValue = routingKey ? `'${escapeSQL(routingKey)}'` : 'NULL';
|
|
496
|
+
return `
|
|
497
|
+
INSERT INTO pgmq_lite.outbox (target_queue, routing_key, message)
|
|
498
|
+
VALUES ('${escapedQueue}', ${routingKeyValue}, ${toJSONSQL(message)})
|
|
499
|
+
RETURNING id, target_queue, routing_key, message, created_at, status;
|
|
500
|
+
`.trim();
|
|
501
|
+
},
|
|
502
|
+
/**
|
|
503
|
+
* Generate SQL to process pending outbox messages
|
|
504
|
+
*
|
|
505
|
+
* This should be called periodically by a background worker to move
|
|
506
|
+
* messages from the outbox to their target queues.
|
|
507
|
+
*
|
|
508
|
+
* @param limit - Maximum number of messages to process
|
|
509
|
+
* @returns SQL string to process outbox
|
|
510
|
+
*/
|
|
511
|
+
outboxProcessSQL(limit = 100) {
|
|
512
|
+
return `
|
|
513
|
+
WITH pending AS (
|
|
514
|
+
SELECT id, target_queue, message
|
|
515
|
+
FROM pgmq_lite.outbox
|
|
516
|
+
WHERE status = 'pending'
|
|
517
|
+
ORDER BY created_at ASC
|
|
518
|
+
LIMIT ${limit}
|
|
519
|
+
FOR UPDATE SKIP LOCKED
|
|
520
|
+
),
|
|
521
|
+
updated AS (
|
|
522
|
+
UPDATE pgmq_lite.outbox o
|
|
523
|
+
SET status = 'processing'
|
|
524
|
+
FROM pending p
|
|
525
|
+
WHERE o.id = p.id
|
|
526
|
+
)
|
|
527
|
+
SELECT id, target_queue, message FROM pending;
|
|
528
|
+
`.trim();
|
|
529
|
+
},
|
|
530
|
+
/**
|
|
531
|
+
* Generate SQL to mark outbox messages as completed
|
|
532
|
+
*
|
|
533
|
+
* @param ids - Array of outbox message IDs
|
|
534
|
+
* @returns SQL string to mark as completed
|
|
535
|
+
*/
|
|
536
|
+
outboxCompleteSQL(ids) {
|
|
537
|
+
const idList = ids.join(', ');
|
|
538
|
+
return `
|
|
539
|
+
UPDATE pgmq_lite.outbox
|
|
540
|
+
SET status = 'completed', processed_at = NOW()
|
|
541
|
+
WHERE id IN (${idList})
|
|
542
|
+
RETURNING id;
|
|
543
|
+
`.trim();
|
|
544
|
+
},
|
|
545
|
+
/**
|
|
546
|
+
* Generate SQL to mark outbox messages as failed
|
|
547
|
+
*
|
|
548
|
+
* @param ids - Array of outbox message IDs
|
|
549
|
+
* @returns SQL string to mark as failed
|
|
550
|
+
*/
|
|
551
|
+
outboxFailSQL(ids) {
|
|
552
|
+
const idList = ids.join(', ');
|
|
553
|
+
return `
|
|
554
|
+
UPDATE pgmq_lite.outbox
|
|
555
|
+
SET status = 'failed'
|
|
556
|
+
WHERE id IN (${idList})
|
|
557
|
+
RETURNING id;
|
|
558
|
+
`.trim();
|
|
559
|
+
},
|
|
560
|
+
/**
|
|
561
|
+
* Generate SQL to retry failed outbox messages
|
|
562
|
+
*
|
|
563
|
+
* @returns SQL string to retry failed messages
|
|
564
|
+
*/
|
|
565
|
+
outboxRetryFailedSQL() {
|
|
566
|
+
return `
|
|
567
|
+
UPDATE pgmq_lite.outbox
|
|
568
|
+
SET status = 'pending', processed_at = NULL
|
|
569
|
+
WHERE status = 'failed'
|
|
570
|
+
RETURNING id;
|
|
571
|
+
`.trim();
|
|
572
|
+
},
|
|
573
|
+
/**
|
|
574
|
+
* Generate SQL to clean up completed outbox messages
|
|
575
|
+
*
|
|
576
|
+
* @param olderThanHours - Remove messages older than this many hours
|
|
577
|
+
* @returns SQL string to clean up outbox
|
|
578
|
+
*/
|
|
579
|
+
outboxCleanupSQL(olderThanHours = 24) {
|
|
580
|
+
return `
|
|
581
|
+
DELETE FROM pgmq_lite.outbox
|
|
582
|
+
WHERE status = 'completed'
|
|
583
|
+
AND processed_at < NOW() - INTERVAL '${olderThanHours} hours'
|
|
584
|
+
RETURNING id;
|
|
585
|
+
`.trim();
|
|
586
|
+
},
|
|
587
|
+
// ==========================================================================
|
|
588
|
+
// Maintenance Operations
|
|
589
|
+
// ==========================================================================
|
|
590
|
+
/**
|
|
591
|
+
* Generate SQL to purge all messages from a queue
|
|
592
|
+
*
|
|
593
|
+
* @param queueName - Name of the queue
|
|
594
|
+
* @returns SQL string to purge the queue
|
|
595
|
+
*/
|
|
596
|
+
purgeQueueSQL(queueName) {
|
|
597
|
+
const escapedName = escapeSQL(queueName);
|
|
598
|
+
return `DELETE FROM pgmq_lite.q_${escapedName} RETURNING msg_id;`;
|
|
599
|
+
},
|
|
600
|
+
/**
|
|
601
|
+
* Generate SQL to get queue statistics
|
|
602
|
+
*
|
|
603
|
+
* @param queueName - Name of the queue
|
|
604
|
+
* @returns SQL string to get queue stats
|
|
605
|
+
*/
|
|
606
|
+
queueStatsSQL(queueName) {
|
|
607
|
+
const escapedName = escapeSQL(queueName);
|
|
608
|
+
return `
|
|
609
|
+
SELECT
|
|
610
|
+
'${escapedName}' as queue_name,
|
|
611
|
+
COUNT(*) as total_messages,
|
|
612
|
+
COUNT(*) FILTER (WHERE vt <= NOW()) as visible_messages,
|
|
613
|
+
COUNT(*) FILTER (WHERE vt > NOW()) as invisible_messages,
|
|
614
|
+
MIN(enqueued_at) as oldest_message_at,
|
|
615
|
+
MAX(enqueued_at) as newest_message_at,
|
|
616
|
+
AVG(read_ct)::NUMERIC(10,2) as avg_read_count
|
|
617
|
+
FROM pgmq_lite.q_${escapedName};
|
|
618
|
+
`.trim();
|
|
619
|
+
},
|
|
620
|
+
/**
|
|
621
|
+
* Generate SQL to clean up old archived messages
|
|
622
|
+
*
|
|
623
|
+
* @param queueName - Name of the queue (or null for all)
|
|
624
|
+
* @param olderThanDays - Remove messages older than this many days
|
|
625
|
+
* @returns SQL string to clean up archive
|
|
626
|
+
*/
|
|
627
|
+
cleanupArchiveSQL(queueName, olderThanDays = 30) {
|
|
628
|
+
if (queueName) {
|
|
629
|
+
const escapedName = escapeSQL(queueName);
|
|
630
|
+
return `
|
|
631
|
+
DELETE FROM pgmq_lite.archive
|
|
632
|
+
WHERE queue_name = '${escapedName}'
|
|
633
|
+
AND archived_at < NOW() - INTERVAL '${olderThanDays} days'
|
|
634
|
+
RETURNING msg_id;
|
|
635
|
+
`.trim();
|
|
636
|
+
}
|
|
637
|
+
return `
|
|
638
|
+
DELETE FROM pgmq_lite.archive
|
|
639
|
+
WHERE archived_at < NOW() - INTERVAL '${olderThanDays} days'
|
|
640
|
+
RETURNING msg_id, queue_name;
|
|
641
|
+
`.trim();
|
|
642
|
+
},
|
|
643
|
+
};
|
|
644
|
+
// ============================================================================
|
|
645
|
+
// Exports
|
|
646
|
+
// ============================================================================
|
|
647
|
+
export default PGMQLite;
|
|
648
|
+
//# sourceMappingURL=pgmq-lite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgmq-lite.js","sourceRoot":"","sources":["../../src/extensions/pgmq-lite.ts"],"names":[],"mappings":"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"}
|