@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,674 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sample Datasets for Playground
|
|
3
|
+
*
|
|
4
|
+
* Provides pre-built sample datasets for demo and learning purposes.
|
|
5
|
+
* Each dataset includes schema creation and realistic data.
|
|
6
|
+
*
|
|
7
|
+
* @module playground/sample-datasets
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A sample dataset with metadata
|
|
12
|
+
*/
|
|
13
|
+
export interface SampleDataset {
|
|
14
|
+
/** Unique identifier */
|
|
15
|
+
id: string
|
|
16
|
+
/** Display name */
|
|
17
|
+
name: string
|
|
18
|
+
/** Brief description */
|
|
19
|
+
description: string
|
|
20
|
+
/** Categories/tags for filtering */
|
|
21
|
+
tags: string[]
|
|
22
|
+
/** SQL to create the schema */
|
|
23
|
+
schemaSql: string
|
|
24
|
+
/** SQL to insert data */
|
|
25
|
+
dataSql: string
|
|
26
|
+
/** Tables created by this dataset */
|
|
27
|
+
tables: string[]
|
|
28
|
+
/** Approximate row counts per table */
|
|
29
|
+
rowCounts: Record<string, number>
|
|
30
|
+
/** Complexity level */
|
|
31
|
+
complexity: 'simple' | 'moderate' | 'complex'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Blog/Social Media Dataset
|
|
36
|
+
* A classic users/posts/comments schema for learning SQL
|
|
37
|
+
*/
|
|
38
|
+
export const BLOG_DATASET: SampleDataset = {
|
|
39
|
+
id: 'blog',
|
|
40
|
+
name: 'Blog Platform',
|
|
41
|
+
description: 'Users, posts, and comments - perfect for learning joins and aggregations',
|
|
42
|
+
tags: ['social', 'blog', 'users', 'posts', 'comments'],
|
|
43
|
+
tables: ['users', 'posts', 'comments', 'tags', 'post_tags'],
|
|
44
|
+
rowCounts: {
|
|
45
|
+
users: 5,
|
|
46
|
+
posts: 15,
|
|
47
|
+
comments: 20,
|
|
48
|
+
tags: 5,
|
|
49
|
+
post_tags: 20,
|
|
50
|
+
},
|
|
51
|
+
complexity: 'simple',
|
|
52
|
+
schemaSql: `
|
|
53
|
+
-- Users table
|
|
54
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
55
|
+
id SERIAL PRIMARY KEY,
|
|
56
|
+
name TEXT NOT NULL,
|
|
57
|
+
email TEXT UNIQUE NOT NULL,
|
|
58
|
+
bio TEXT,
|
|
59
|
+
created_at TIMESTAMP DEFAULT NOW()
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
-- Posts table
|
|
63
|
+
CREATE TABLE IF NOT EXISTS posts (
|
|
64
|
+
id SERIAL PRIMARY KEY,
|
|
65
|
+
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
66
|
+
title TEXT NOT NULL,
|
|
67
|
+
body TEXT,
|
|
68
|
+
published BOOLEAN DEFAULT false,
|
|
69
|
+
view_count INTEGER DEFAULT 0,
|
|
70
|
+
created_at TIMESTAMP DEFAULT NOW(),
|
|
71
|
+
updated_at TIMESTAMP DEFAULT NOW()
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
-- Comments table
|
|
75
|
+
CREATE TABLE IF NOT EXISTS comments (
|
|
76
|
+
id SERIAL PRIMARY KEY,
|
|
77
|
+
post_id INTEGER NOT NULL REFERENCES posts(id) ON DELETE CASCADE,
|
|
78
|
+
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
79
|
+
content TEXT NOT NULL,
|
|
80
|
+
created_at TIMESTAMP DEFAULT NOW()
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
-- Tags table
|
|
84
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
85
|
+
id SERIAL PRIMARY KEY,
|
|
86
|
+
name TEXT UNIQUE NOT NULL,
|
|
87
|
+
description TEXT
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
-- Post-Tags junction table (many-to-many)
|
|
91
|
+
CREATE TABLE IF NOT EXISTS post_tags (
|
|
92
|
+
post_id INTEGER REFERENCES posts(id) ON DELETE CASCADE,
|
|
93
|
+
tag_id INTEGER REFERENCES tags(id) ON DELETE CASCADE,
|
|
94
|
+
PRIMARY KEY (post_id, tag_id)
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
-- Indexes for performance
|
|
98
|
+
CREATE INDEX IF NOT EXISTS idx_posts_user_id ON posts(user_id);
|
|
99
|
+
CREATE INDEX IF NOT EXISTS idx_posts_published ON posts(published) WHERE published = true;
|
|
100
|
+
CREATE INDEX IF NOT EXISTS idx_comments_post_id ON comments(post_id);
|
|
101
|
+
CREATE INDEX IF NOT EXISTS idx_comments_user_id ON comments(user_id);
|
|
102
|
+
`,
|
|
103
|
+
dataSql: `
|
|
104
|
+
-- Insert users
|
|
105
|
+
INSERT INTO users (name, email, bio) VALUES
|
|
106
|
+
('Alice Johnson', 'alice@example.com', 'Full-stack developer and tech blogger'),
|
|
107
|
+
('Bob Smith', 'bob@example.com', 'Database enthusiast and SQL guru'),
|
|
108
|
+
('Charlie Brown', 'charlie@example.com', 'Open source contributor'),
|
|
109
|
+
('Diana Ross', 'diana@example.com', 'DevOps engineer and cloud architect'),
|
|
110
|
+
('Eve Wilson', 'eve@example.com', 'Security researcher and writer')
|
|
111
|
+
ON CONFLICT (email) DO NOTHING;
|
|
112
|
+
|
|
113
|
+
-- Insert tags
|
|
114
|
+
INSERT INTO tags (name, description) VALUES
|
|
115
|
+
('postgresql', 'PostgreSQL database topics'),
|
|
116
|
+
('javascript', 'JavaScript and frontend development'),
|
|
117
|
+
('devops', 'DevOps, CI/CD, and infrastructure'),
|
|
118
|
+
('security', 'Security best practices'),
|
|
119
|
+
('tutorial', 'Step-by-step tutorials')
|
|
120
|
+
ON CONFLICT (name) DO NOTHING;
|
|
121
|
+
|
|
122
|
+
-- Insert posts
|
|
123
|
+
INSERT INTO posts (user_id, title, body, published, view_count, created_at)
|
|
124
|
+
SELECT
|
|
125
|
+
u.id,
|
|
126
|
+
CASE (row_number() OVER ()) % 5
|
|
127
|
+
WHEN 0 THEN 'Getting Started with PostgreSQL'
|
|
128
|
+
WHEN 1 THEN 'Understanding SQL Joins'
|
|
129
|
+
WHEN 2 THEN 'Database Performance Tips'
|
|
130
|
+
WHEN 3 THEN 'Building REST APIs'
|
|
131
|
+
WHEN 4 THEN 'Security Best Practices'
|
|
132
|
+
END || ' - Part ' || ((row_number() OVER () - 1) / 5 + 1),
|
|
133
|
+
'This is an in-depth article about ' ||
|
|
134
|
+
CASE (row_number() OVER ()) % 5
|
|
135
|
+
WHEN 0 THEN 'PostgreSQL fundamentals and getting your first database running.'
|
|
136
|
+
WHEN 1 THEN 'different types of SQL joins and when to use them.'
|
|
137
|
+
WHEN 2 THEN 'optimizing queries and indexing strategies.'
|
|
138
|
+
WHEN 3 THEN 'designing and implementing RESTful APIs.'
|
|
139
|
+
WHEN 4 THEN 'securing your applications and databases.'
|
|
140
|
+
END,
|
|
141
|
+
(row_number() OVER ()) % 3 != 0, -- 2/3 are published
|
|
142
|
+
(random() * 1000)::integer,
|
|
143
|
+
NOW() - ((row_number() OVER ()) || ' days')::interval
|
|
144
|
+
FROM users u
|
|
145
|
+
CROSS JOIN generate_series(1, 3)
|
|
146
|
+
ON CONFLICT DO NOTHING;
|
|
147
|
+
|
|
148
|
+
-- Insert post_tags relationships
|
|
149
|
+
INSERT INTO post_tags (post_id, tag_id)
|
|
150
|
+
SELECT p.id, t.id
|
|
151
|
+
FROM posts p
|
|
152
|
+
CROSS JOIN tags t
|
|
153
|
+
WHERE random() < 0.4
|
|
154
|
+
ON CONFLICT DO NOTHING;
|
|
155
|
+
|
|
156
|
+
-- Insert comments
|
|
157
|
+
INSERT INTO comments (post_id, user_id, content, created_at)
|
|
158
|
+
SELECT
|
|
159
|
+
p.id,
|
|
160
|
+
u.id,
|
|
161
|
+
CASE (random() * 4)::integer
|
|
162
|
+
WHEN 0 THEN 'Great article! Very helpful.'
|
|
163
|
+
WHEN 1 THEN 'Thanks for sharing this information.'
|
|
164
|
+
WHEN 2 THEN 'I learned something new today.'
|
|
165
|
+
WHEN 3 THEN 'Could you elaborate on this topic?'
|
|
166
|
+
ELSE 'Interesting perspective!'
|
|
167
|
+
END,
|
|
168
|
+
p.created_at + ((random() * 7)::integer || ' days')::interval
|
|
169
|
+
FROM posts p
|
|
170
|
+
CROSS JOIN users u
|
|
171
|
+
WHERE p.published = true
|
|
172
|
+
AND u.id != p.user_id
|
|
173
|
+
AND random() < 0.5
|
|
174
|
+
LIMIT 20
|
|
175
|
+
ON CONFLICT DO NOTHING;
|
|
176
|
+
`,
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* E-Commerce Dataset
|
|
181
|
+
* Products, orders, and customers for business analytics
|
|
182
|
+
*/
|
|
183
|
+
export const ECOMMERCE_DATASET: SampleDataset = {
|
|
184
|
+
id: 'ecommerce',
|
|
185
|
+
name: 'E-Commerce Store',
|
|
186
|
+
description: 'Products, orders, and customers - great for analytics and reporting queries',
|
|
187
|
+
tags: ['ecommerce', 'products', 'orders', 'analytics', 'business'],
|
|
188
|
+
tables: ['customers', 'products', 'categories', 'orders', 'order_items'],
|
|
189
|
+
rowCounts: {
|
|
190
|
+
customers: 10,
|
|
191
|
+
products: 20,
|
|
192
|
+
categories: 5,
|
|
193
|
+
orders: 25,
|
|
194
|
+
order_items: 50,
|
|
195
|
+
},
|
|
196
|
+
complexity: 'moderate',
|
|
197
|
+
schemaSql: `
|
|
198
|
+
-- Categories table
|
|
199
|
+
CREATE TABLE IF NOT EXISTS categories (
|
|
200
|
+
id SERIAL PRIMARY KEY,
|
|
201
|
+
name TEXT UNIQUE NOT NULL,
|
|
202
|
+
description TEXT,
|
|
203
|
+
parent_id INTEGER REFERENCES categories(id)
|
|
204
|
+
);
|
|
205
|
+
|
|
206
|
+
-- Customers table
|
|
207
|
+
CREATE TABLE IF NOT EXISTS customers (
|
|
208
|
+
id SERIAL PRIMARY KEY,
|
|
209
|
+
first_name TEXT NOT NULL,
|
|
210
|
+
last_name TEXT NOT NULL,
|
|
211
|
+
email TEXT UNIQUE NOT NULL,
|
|
212
|
+
phone TEXT,
|
|
213
|
+
address TEXT,
|
|
214
|
+
city TEXT,
|
|
215
|
+
country TEXT DEFAULT 'USA',
|
|
216
|
+
created_at TIMESTAMP DEFAULT NOW()
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
-- Products table
|
|
220
|
+
CREATE TABLE IF NOT EXISTS products (
|
|
221
|
+
id SERIAL PRIMARY KEY,
|
|
222
|
+
name TEXT NOT NULL,
|
|
223
|
+
description TEXT,
|
|
224
|
+
category_id INTEGER REFERENCES categories(id),
|
|
225
|
+
price DECIMAL(10, 2) NOT NULL,
|
|
226
|
+
cost DECIMAL(10, 2),
|
|
227
|
+
stock_quantity INTEGER DEFAULT 0,
|
|
228
|
+
sku TEXT UNIQUE,
|
|
229
|
+
active BOOLEAN DEFAULT true,
|
|
230
|
+
created_at TIMESTAMP DEFAULT NOW()
|
|
231
|
+
);
|
|
232
|
+
|
|
233
|
+
-- Orders table
|
|
234
|
+
CREATE TABLE IF NOT EXISTS orders (
|
|
235
|
+
id SERIAL PRIMARY KEY,
|
|
236
|
+
customer_id INTEGER NOT NULL REFERENCES customers(id),
|
|
237
|
+
order_date TIMESTAMP DEFAULT NOW(),
|
|
238
|
+
status TEXT DEFAULT 'pending' CHECK (status IN ('pending', 'processing', 'shipped', 'delivered', 'cancelled')),
|
|
239
|
+
shipping_address TEXT,
|
|
240
|
+
total_amount DECIMAL(10, 2) DEFAULT 0,
|
|
241
|
+
notes TEXT
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
-- Order items table
|
|
245
|
+
CREATE TABLE IF NOT EXISTS order_items (
|
|
246
|
+
id SERIAL PRIMARY KEY,
|
|
247
|
+
order_id INTEGER NOT NULL REFERENCES orders(id) ON DELETE CASCADE,
|
|
248
|
+
product_id INTEGER NOT NULL REFERENCES products(id),
|
|
249
|
+
quantity INTEGER NOT NULL CHECK (quantity > 0),
|
|
250
|
+
unit_price DECIMAL(10, 2) NOT NULL,
|
|
251
|
+
discount_percent DECIMAL(5, 2) DEFAULT 0
|
|
252
|
+
);
|
|
253
|
+
|
|
254
|
+
-- Indexes
|
|
255
|
+
CREATE INDEX IF NOT EXISTS idx_products_category ON products(category_id);
|
|
256
|
+
CREATE INDEX IF NOT EXISTS idx_products_active ON products(active) WHERE active = true;
|
|
257
|
+
CREATE INDEX IF NOT EXISTS idx_orders_customer ON orders(customer_id);
|
|
258
|
+
CREATE INDEX IF NOT EXISTS idx_orders_status ON orders(status);
|
|
259
|
+
CREATE INDEX IF NOT EXISTS idx_orders_date ON orders(order_date);
|
|
260
|
+
CREATE INDEX IF NOT EXISTS idx_order_items_order ON order_items(order_id);
|
|
261
|
+
CREATE INDEX IF NOT EXISTS idx_order_items_product ON order_items(product_id);
|
|
262
|
+
`,
|
|
263
|
+
dataSql: `
|
|
264
|
+
-- Insert categories
|
|
265
|
+
INSERT INTO categories (name, description) VALUES
|
|
266
|
+
('Electronics', 'Electronic devices and accessories'),
|
|
267
|
+
('Clothing', 'Apparel and fashion items'),
|
|
268
|
+
('Books', 'Books and reading materials'),
|
|
269
|
+
('Home & Garden', 'Home decor and garden supplies'),
|
|
270
|
+
('Sports', 'Sports equipment and fitness gear')
|
|
271
|
+
ON CONFLICT (name) DO NOTHING;
|
|
272
|
+
|
|
273
|
+
-- Insert customers
|
|
274
|
+
INSERT INTO customers (first_name, last_name, email, phone, city, country) VALUES
|
|
275
|
+
('John', 'Doe', 'john.doe@email.com', '555-0101', 'New York', 'USA'),
|
|
276
|
+
('Jane', 'Smith', 'jane.smith@email.com', '555-0102', 'Los Angeles', 'USA'),
|
|
277
|
+
('Michael', 'Johnson', 'michael.j@email.com', '555-0103', 'Chicago', 'USA'),
|
|
278
|
+
('Emily', 'Williams', 'emily.w@email.com', '555-0104', 'Houston', 'USA'),
|
|
279
|
+
('David', 'Brown', 'david.b@email.com', '555-0105', 'Phoenix', 'USA'),
|
|
280
|
+
('Sarah', 'Davis', 'sarah.d@email.com', '555-0106', 'Seattle', 'USA'),
|
|
281
|
+
('Chris', 'Miller', 'chris.m@email.com', '555-0107', 'Boston', 'USA'),
|
|
282
|
+
('Lisa', 'Wilson', 'lisa.w@email.com', '555-0108', 'Miami', 'USA'),
|
|
283
|
+
('James', 'Taylor', 'james.t@email.com', '555-0109', 'Denver', 'USA'),
|
|
284
|
+
('Amy', 'Anderson', 'amy.a@email.com', '555-0110', 'Portland', 'USA')
|
|
285
|
+
ON CONFLICT (email) DO NOTHING;
|
|
286
|
+
|
|
287
|
+
-- Insert products
|
|
288
|
+
INSERT INTO products (name, description, category_id, price, cost, stock_quantity, sku) VALUES
|
|
289
|
+
('Laptop Pro 15', 'High-performance laptop', 1, 1299.99, 900.00, 50, 'ELEC-001'),
|
|
290
|
+
('Wireless Mouse', 'Ergonomic wireless mouse', 1, 29.99, 15.00, 200, 'ELEC-002'),
|
|
291
|
+
('USB-C Hub', '7-in-1 USB-C adapter', 1, 49.99, 25.00, 150, 'ELEC-003'),
|
|
292
|
+
('Mechanical Keyboard', 'RGB mechanical keyboard', 1, 89.99, 45.00, 100, 'ELEC-004'),
|
|
293
|
+
('Cotton T-Shirt', 'Premium cotton t-shirt', 2, 24.99, 8.00, 500, 'CLOTH-001'),
|
|
294
|
+
('Denim Jeans', 'Classic fit denim jeans', 2, 59.99, 25.00, 300, 'CLOTH-002'),
|
|
295
|
+
('Hoodie', 'Comfortable pullover hoodie', 2, 44.99, 18.00, 250, 'CLOTH-003'),
|
|
296
|
+
('Running Shoes', 'Lightweight running shoes', 2, 79.99, 35.00, 200, 'CLOTH-004'),
|
|
297
|
+
('SQL Handbook', 'Complete SQL reference', 3, 39.99, 15.00, 100, 'BOOK-001'),
|
|
298
|
+
('Clean Code', 'Software craftsmanship guide', 3, 44.99, 20.00, 75, 'BOOK-002'),
|
|
299
|
+
('Design Patterns', 'Gang of Four patterns book', 3, 54.99, 25.00, 60, 'BOOK-003'),
|
|
300
|
+
('Table Lamp', 'Modern LED table lamp', 4, 34.99, 15.00, 150, 'HOME-001'),
|
|
301
|
+
('Plant Pot Set', 'Ceramic plant pots (3 pack)', 4, 29.99, 12.00, 200, 'HOME-002'),
|
|
302
|
+
('Throw Pillow', 'Decorative throw pillow', 4, 19.99, 7.00, 300, 'HOME-003'),
|
|
303
|
+
('Yoga Mat', 'Non-slip exercise mat', 5, 24.99, 10.00, 250, 'SPORT-001'),
|
|
304
|
+
('Dumbbells Set', 'Adjustable dumbbell pair', 5, 149.99, 75.00, 80, 'SPORT-002'),
|
|
305
|
+
('Jump Rope', 'Speed jump rope', 5, 14.99, 5.00, 400, 'SPORT-003'),
|
|
306
|
+
('Water Bottle', 'Insulated sports bottle', 5, 19.99, 8.00, 350, 'SPORT-004'),
|
|
307
|
+
('Webcam HD', '1080p HD webcam', 1, 69.99, 35.00, 120, 'ELEC-005'),
|
|
308
|
+
('Monitor Stand', 'Adjustable monitor riser', 1, 39.99, 18.00, 180, 'ELEC-006')
|
|
309
|
+
ON CONFLICT (sku) DO NOTHING;
|
|
310
|
+
|
|
311
|
+
-- Insert orders with varying dates and statuses
|
|
312
|
+
INSERT INTO orders (customer_id, order_date, status, shipping_address, total_amount)
|
|
313
|
+
SELECT
|
|
314
|
+
(random() * 9 + 1)::integer,
|
|
315
|
+
NOW() - ((random() * 60)::integer || ' days')::interval,
|
|
316
|
+
CASE (random() * 4)::integer
|
|
317
|
+
WHEN 0 THEN 'pending'
|
|
318
|
+
WHEN 1 THEN 'processing'
|
|
319
|
+
WHEN 2 THEN 'shipped'
|
|
320
|
+
WHEN 3 THEN 'delivered'
|
|
321
|
+
ELSE 'delivered'
|
|
322
|
+
END,
|
|
323
|
+
'123 Main St, City, State 12345',
|
|
324
|
+
0
|
|
325
|
+
FROM generate_series(1, 25)
|
|
326
|
+
ON CONFLICT DO NOTHING;
|
|
327
|
+
|
|
328
|
+
-- Insert order items
|
|
329
|
+
INSERT INTO order_items (order_id, product_id, quantity, unit_price, discount_percent)
|
|
330
|
+
SELECT
|
|
331
|
+
o.id,
|
|
332
|
+
p.id,
|
|
333
|
+
(random() * 3 + 1)::integer,
|
|
334
|
+
p.price,
|
|
335
|
+
CASE WHEN random() < 0.3 THEN (random() * 15)::integer ELSE 0 END
|
|
336
|
+
FROM orders o
|
|
337
|
+
CROSS JOIN products p
|
|
338
|
+
WHERE random() < 0.15
|
|
339
|
+
ON CONFLICT DO NOTHING;
|
|
340
|
+
|
|
341
|
+
-- Update order totals
|
|
342
|
+
UPDATE orders SET total_amount = (
|
|
343
|
+
SELECT COALESCE(SUM(quantity * unit_price * (1 - discount_percent/100)), 0)
|
|
344
|
+
FROM order_items
|
|
345
|
+
WHERE order_items.order_id = orders.id
|
|
346
|
+
);
|
|
347
|
+
`,
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* HR/Employee Dataset
|
|
352
|
+
* Employees, departments, and salaries for organizational queries
|
|
353
|
+
*/
|
|
354
|
+
export const HR_DATASET: SampleDataset = {
|
|
355
|
+
id: 'hr',
|
|
356
|
+
name: 'HR & Employees',
|
|
357
|
+
description: 'Employees, departments, and salaries - ideal for hierarchical and analytical queries',
|
|
358
|
+
tags: ['hr', 'employees', 'departments', 'salaries', 'organization'],
|
|
359
|
+
tables: ['departments', 'employees', 'salaries', 'job_history'],
|
|
360
|
+
rowCounts: {
|
|
361
|
+
departments: 6,
|
|
362
|
+
employees: 20,
|
|
363
|
+
salaries: 20,
|
|
364
|
+
job_history: 15,
|
|
365
|
+
},
|
|
366
|
+
complexity: 'moderate',
|
|
367
|
+
schemaSql: `
|
|
368
|
+
-- Departments table
|
|
369
|
+
CREATE TABLE IF NOT EXISTS departments (
|
|
370
|
+
id SERIAL PRIMARY KEY,
|
|
371
|
+
name TEXT UNIQUE NOT NULL,
|
|
372
|
+
location TEXT,
|
|
373
|
+
budget DECIMAL(12, 2),
|
|
374
|
+
manager_id INTEGER -- Will be FK to employees after employees created
|
|
375
|
+
);
|
|
376
|
+
|
|
377
|
+
-- Employees table with self-referencing manager
|
|
378
|
+
CREATE TABLE IF NOT EXISTS employees (
|
|
379
|
+
id SERIAL PRIMARY KEY,
|
|
380
|
+
first_name TEXT NOT NULL,
|
|
381
|
+
last_name TEXT NOT NULL,
|
|
382
|
+
email TEXT UNIQUE NOT NULL,
|
|
383
|
+
phone TEXT,
|
|
384
|
+
hire_date DATE NOT NULL,
|
|
385
|
+
job_title TEXT NOT NULL,
|
|
386
|
+
department_id INTEGER REFERENCES departments(id),
|
|
387
|
+
manager_id INTEGER REFERENCES employees(id),
|
|
388
|
+
is_active BOOLEAN DEFAULT true
|
|
389
|
+
);
|
|
390
|
+
|
|
391
|
+
-- Add manager FK to departments
|
|
392
|
+
ALTER TABLE departments
|
|
393
|
+
ADD CONSTRAINT fk_department_manager
|
|
394
|
+
FOREIGN KEY (manager_id) REFERENCES employees(id)
|
|
395
|
+
ON DELETE SET NULL;
|
|
396
|
+
|
|
397
|
+
-- Salaries table (history of salary changes)
|
|
398
|
+
CREATE TABLE IF NOT EXISTS salaries (
|
|
399
|
+
id SERIAL PRIMARY KEY,
|
|
400
|
+
employee_id INTEGER NOT NULL REFERENCES employees(id) ON DELETE CASCADE,
|
|
401
|
+
amount DECIMAL(10, 2) NOT NULL,
|
|
402
|
+
effective_date DATE NOT NULL,
|
|
403
|
+
end_date DATE,
|
|
404
|
+
CONSTRAINT valid_date_range CHECK (end_date IS NULL OR end_date > effective_date)
|
|
405
|
+
);
|
|
406
|
+
|
|
407
|
+
-- Job history table
|
|
408
|
+
CREATE TABLE IF NOT EXISTS job_history (
|
|
409
|
+
id SERIAL PRIMARY KEY,
|
|
410
|
+
employee_id INTEGER NOT NULL REFERENCES employees(id) ON DELETE CASCADE,
|
|
411
|
+
job_title TEXT NOT NULL,
|
|
412
|
+
department_id INTEGER REFERENCES departments(id),
|
|
413
|
+
start_date DATE NOT NULL,
|
|
414
|
+
end_date DATE,
|
|
415
|
+
reason TEXT
|
|
416
|
+
);
|
|
417
|
+
|
|
418
|
+
-- Indexes
|
|
419
|
+
CREATE INDEX IF NOT EXISTS idx_employees_department ON employees(department_id);
|
|
420
|
+
CREATE INDEX IF NOT EXISTS idx_employees_manager ON employees(manager_id);
|
|
421
|
+
CREATE INDEX IF NOT EXISTS idx_employees_hire_date ON employees(hire_date);
|
|
422
|
+
CREATE INDEX IF NOT EXISTS idx_salaries_employee ON salaries(employee_id);
|
|
423
|
+
CREATE INDEX IF NOT EXISTS idx_salaries_effective ON salaries(effective_date);
|
|
424
|
+
CREATE INDEX IF NOT EXISTS idx_job_history_employee ON job_history(employee_id);
|
|
425
|
+
`,
|
|
426
|
+
dataSql: `
|
|
427
|
+
-- Insert departments
|
|
428
|
+
INSERT INTO departments (name, location, budget) VALUES
|
|
429
|
+
('Engineering', 'San Francisco', 2000000),
|
|
430
|
+
('Marketing', 'New York', 800000),
|
|
431
|
+
('Sales', 'Chicago', 1200000),
|
|
432
|
+
('Human Resources', 'San Francisco', 500000),
|
|
433
|
+
('Finance', 'New York', 600000),
|
|
434
|
+
('Operations', 'Chicago', 900000)
|
|
435
|
+
ON CONFLICT (name) DO NOTHING;
|
|
436
|
+
|
|
437
|
+
-- Insert employees (executives first, then managers, then staff)
|
|
438
|
+
INSERT INTO employees (first_name, last_name, email, phone, hire_date, job_title, department_id, manager_id) VALUES
|
|
439
|
+
-- CEO (no manager)
|
|
440
|
+
('Robert', 'Chen', 'robert.chen@company.com', '555-1001', '2018-01-15', 'CEO', NULL, NULL),
|
|
441
|
+
-- Department heads (report to CEO)
|
|
442
|
+
('Sarah', 'Martinez', 'sarah.m@company.com', '555-1002', '2018-06-01', 'VP Engineering', 1, 1),
|
|
443
|
+
('Michael', 'Thompson', 'michael.t@company.com', '555-1003', '2018-07-15', 'VP Marketing', 2, 1),
|
|
444
|
+
('Jennifer', 'Lee', 'jennifer.l@company.com', '555-1004', '2019-01-10', 'VP Sales', 3, 1),
|
|
445
|
+
('William', 'Garcia', 'william.g@company.com', '555-1005', '2019-03-20', 'HR Director', 4, 1),
|
|
446
|
+
('Elizabeth', 'Brown', 'elizabeth.b@company.com', '555-1006', '2019-05-01', 'CFO', 5, 1),
|
|
447
|
+
-- Managers
|
|
448
|
+
('David', 'Wilson', 'david.w@company.com', '555-2001', '2019-08-15', 'Engineering Manager', 1, 2),
|
|
449
|
+
('Jessica', 'Taylor', 'jessica.t@company.com', '555-2002', '2019-09-01', 'Marketing Manager', 2, 3),
|
|
450
|
+
('Christopher', 'Moore', 'chris.m@company.com', '555-2003', '2020-01-15', 'Sales Manager', 3, 4),
|
|
451
|
+
-- Staff
|
|
452
|
+
('Amanda', 'Anderson', 'amanda.a@company.com', '555-3001', '2020-03-01', 'Senior Engineer', 1, 7),
|
|
453
|
+
('Daniel', 'Jackson', 'daniel.j@company.com', '555-3002', '2020-06-15', 'Software Engineer', 1, 7),
|
|
454
|
+
('Michelle', 'White', 'michelle.w@company.com', '555-3003', '2020-09-01', 'Junior Engineer', 1, 7),
|
|
455
|
+
('Ryan', 'Harris', 'ryan.h@company.com', '555-3004', '2021-01-10', 'Marketing Specialist', 2, 8),
|
|
456
|
+
('Lauren', 'Martin', 'lauren.m@company.com', '555-3005', '2021-03-15', 'Content Writer', 2, 8),
|
|
457
|
+
('Kevin', 'Thompson', 'kevin.t@company.com', '555-3006', '2021-06-01', 'Sales Representative', 3, 9),
|
|
458
|
+
('Nicole', 'Robinson', 'nicole.r@company.com', '555-3007', '2021-08-15', 'Sales Representative', 3, 9),
|
|
459
|
+
('Brandon', 'Clark', 'brandon.c@company.com', '555-3008', '2022-01-10', 'HR Specialist', 4, 5),
|
|
460
|
+
('Stephanie', 'Lewis', 'stephanie.l@company.com', '555-3009', '2022-04-01', 'Accountant', 5, 6),
|
|
461
|
+
('Andrew', 'Walker', 'andrew.w@company.com', '555-3010', '2022-07-15', 'Operations Analyst', 6, 1),
|
|
462
|
+
('Rachel', 'Hall', 'rachel.h@company.com', '555-3011', '2023-01-05', 'Software Engineer', 1, 7)
|
|
463
|
+
ON CONFLICT (email) DO NOTHING;
|
|
464
|
+
|
|
465
|
+
-- Update department managers
|
|
466
|
+
UPDATE departments SET manager_id = 2 WHERE name = 'Engineering';
|
|
467
|
+
UPDATE departments SET manager_id = 3 WHERE name = 'Marketing';
|
|
468
|
+
UPDATE departments SET manager_id = 4 WHERE name = 'Sales';
|
|
469
|
+
UPDATE departments SET manager_id = 5 WHERE name = 'Human Resources';
|
|
470
|
+
UPDATE departments SET manager_id = 6 WHERE name = 'Finance';
|
|
471
|
+
UPDATE departments SET manager_id = 1 WHERE name = 'Operations';
|
|
472
|
+
|
|
473
|
+
-- Insert current salaries
|
|
474
|
+
INSERT INTO salaries (employee_id, amount, effective_date)
|
|
475
|
+
SELECT
|
|
476
|
+
id,
|
|
477
|
+
CASE
|
|
478
|
+
WHEN job_title LIKE '%CEO%' THEN 350000
|
|
479
|
+
WHEN job_title LIKE '%CFO%' THEN 280000
|
|
480
|
+
WHEN job_title LIKE '%VP%' THEN 220000
|
|
481
|
+
WHEN job_title LIKE '%Director%' THEN 180000
|
|
482
|
+
WHEN job_title LIKE '%Manager%' THEN 130000
|
|
483
|
+
WHEN job_title LIKE '%Senior%' THEN 120000
|
|
484
|
+
WHEN job_title LIKE '%Specialist%' OR job_title LIKE '%Analyst%' THEN 80000
|
|
485
|
+
WHEN job_title LIKE '%Junior%' THEN 65000
|
|
486
|
+
ELSE 75000
|
|
487
|
+
END + (random() * 20000)::integer,
|
|
488
|
+
hire_date
|
|
489
|
+
FROM employees
|
|
490
|
+
ON CONFLICT DO NOTHING;
|
|
491
|
+
|
|
492
|
+
-- Insert some job history
|
|
493
|
+
INSERT INTO job_history (employee_id, job_title, department_id, start_date, end_date, reason)
|
|
494
|
+
SELECT
|
|
495
|
+
e.id,
|
|
496
|
+
'Previous Role',
|
|
497
|
+
e.department_id,
|
|
498
|
+
e.hire_date - INTERVAL '1 year',
|
|
499
|
+
e.hire_date - INTERVAL '1 day',
|
|
500
|
+
'Promoted'
|
|
501
|
+
FROM employees e
|
|
502
|
+
WHERE random() < 0.4 AND e.hire_date < '2022-01-01'
|
|
503
|
+
ON CONFLICT DO NOTHING;
|
|
504
|
+
`,
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* IoT/Sensors Dataset
|
|
509
|
+
* Time-series data from sensors for time-based analytics
|
|
510
|
+
*/
|
|
511
|
+
export const IOT_DATASET: SampleDataset = {
|
|
512
|
+
id: 'iot',
|
|
513
|
+
name: 'IoT Sensors',
|
|
514
|
+
description: 'Time-series sensor data - perfect for time-based queries and analytics',
|
|
515
|
+
tags: ['iot', 'sensors', 'time-series', 'analytics', 'monitoring'],
|
|
516
|
+
tables: ['locations', 'sensors', 'readings'],
|
|
517
|
+
rowCounts: {
|
|
518
|
+
locations: 4,
|
|
519
|
+
sensors: 8,
|
|
520
|
+
readings: 200,
|
|
521
|
+
},
|
|
522
|
+
complexity: 'complex',
|
|
523
|
+
schemaSql: `
|
|
524
|
+
-- Locations table
|
|
525
|
+
CREATE TABLE IF NOT EXISTS locations (
|
|
526
|
+
id SERIAL PRIMARY KEY,
|
|
527
|
+
name TEXT UNIQUE NOT NULL,
|
|
528
|
+
address TEXT,
|
|
529
|
+
latitude DECIMAL(9, 6),
|
|
530
|
+
longitude DECIMAL(9, 6),
|
|
531
|
+
timezone TEXT DEFAULT 'UTC'
|
|
532
|
+
);
|
|
533
|
+
|
|
534
|
+
-- Sensors table
|
|
535
|
+
CREATE TABLE IF NOT EXISTS sensors (
|
|
536
|
+
id SERIAL PRIMARY KEY,
|
|
537
|
+
location_id INTEGER NOT NULL REFERENCES locations(id),
|
|
538
|
+
name TEXT NOT NULL,
|
|
539
|
+
type TEXT NOT NULL CHECK (type IN ('temperature', 'humidity', 'pressure', 'co2', 'motion')),
|
|
540
|
+
unit TEXT NOT NULL,
|
|
541
|
+
min_threshold DECIMAL(10, 2),
|
|
542
|
+
max_threshold DECIMAL(10, 2),
|
|
543
|
+
is_active BOOLEAN DEFAULT true,
|
|
544
|
+
installed_at TIMESTAMP DEFAULT NOW(),
|
|
545
|
+
UNIQUE (location_id, name)
|
|
546
|
+
);
|
|
547
|
+
|
|
548
|
+
-- Readings table (time-series data)
|
|
549
|
+
CREATE TABLE IF NOT EXISTS readings (
|
|
550
|
+
id SERIAL PRIMARY KEY,
|
|
551
|
+
sensor_id INTEGER NOT NULL REFERENCES sensors(id),
|
|
552
|
+
value DECIMAL(10, 4) NOT NULL,
|
|
553
|
+
recorded_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
554
|
+
is_anomaly BOOLEAN DEFAULT false,
|
|
555
|
+
metadata JSONB
|
|
556
|
+
);
|
|
557
|
+
|
|
558
|
+
-- Indexes for time-series queries
|
|
559
|
+
CREATE INDEX IF NOT EXISTS idx_readings_sensor ON readings(sensor_id);
|
|
560
|
+
CREATE INDEX IF NOT EXISTS idx_readings_time ON readings(recorded_at);
|
|
561
|
+
CREATE INDEX IF NOT EXISTS idx_readings_sensor_time ON readings(sensor_id, recorded_at);
|
|
562
|
+
CREATE INDEX IF NOT EXISTS idx_readings_anomaly ON readings(is_anomaly) WHERE is_anomaly = true;
|
|
563
|
+
`,
|
|
564
|
+
dataSql: `
|
|
565
|
+
-- Insert locations
|
|
566
|
+
INSERT INTO locations (name, address, latitude, longitude, timezone) VALUES
|
|
567
|
+
('Main Office', '100 Tech Park, San Francisco, CA', 37.7749, -122.4194, 'America/Los_Angeles'),
|
|
568
|
+
('Data Center', '200 Server Lane, Austin, TX', 30.2672, -97.7431, 'America/Chicago'),
|
|
569
|
+
('Warehouse A', '300 Storage Blvd, Phoenix, AZ', 33.4484, -112.0740, 'America/Phoenix'),
|
|
570
|
+
('Factory Floor', '400 Manufacturing Dr, Detroit, MI', 42.3314, -83.0458, 'America/Detroit')
|
|
571
|
+
ON CONFLICT (name) DO NOTHING;
|
|
572
|
+
|
|
573
|
+
-- Insert sensors
|
|
574
|
+
INSERT INTO sensors (location_id, name, type, unit, min_threshold, max_threshold) VALUES
|
|
575
|
+
(1, 'Office Temp 1', 'temperature', 'celsius', 18, 26),
|
|
576
|
+
(1, 'Office Humidity', 'humidity', 'percent', 30, 60),
|
|
577
|
+
(2, 'Server Room Temp', 'temperature', 'celsius', 15, 24),
|
|
578
|
+
(2, 'Server Room Humidity', 'humidity', 'percent', 40, 60),
|
|
579
|
+
(3, 'Warehouse Temp', 'temperature', 'celsius', 10, 35),
|
|
580
|
+
(3, 'Warehouse CO2', 'co2', 'ppm', 400, 1000),
|
|
581
|
+
(4, 'Factory Pressure', 'pressure', 'bar', 0.95, 1.05),
|
|
582
|
+
(4, 'Factory Motion', 'motion', 'count', 0, 1000)
|
|
583
|
+
ON CONFLICT (location_id, name) DO NOTHING;
|
|
584
|
+
|
|
585
|
+
-- Insert readings for the past 7 days (multiple per sensor)
|
|
586
|
+
INSERT INTO readings (sensor_id, value, recorded_at, is_anomaly, metadata)
|
|
587
|
+
SELECT
|
|
588
|
+
s.id,
|
|
589
|
+
CASE s.type
|
|
590
|
+
WHEN 'temperature' THEN 20 + (random() * 6 - 3) + (2 * sin(extract(hour from ts) * pi() / 12))
|
|
591
|
+
WHEN 'humidity' THEN 45 + (random() * 20 - 10)
|
|
592
|
+
WHEN 'pressure' THEN 1.0 + (random() * 0.08 - 0.04)
|
|
593
|
+
WHEN 'co2' THEN 600 + (random() * 300 - 100)
|
|
594
|
+
WHEN 'motion' THEN CASE WHEN extract(hour from ts) BETWEEN 8 AND 18 THEN (random() * 500)::integer ELSE (random() * 50)::integer END
|
|
595
|
+
END,
|
|
596
|
+
ts,
|
|
597
|
+
random() < 0.02, -- 2% chance of anomaly
|
|
598
|
+
jsonb_build_object('quality', CASE WHEN random() < 0.95 THEN 'good' ELSE 'degraded' END)
|
|
599
|
+
FROM sensors s
|
|
600
|
+
CROSS JOIN generate_series(
|
|
601
|
+
NOW() - INTERVAL '7 days',
|
|
602
|
+
NOW(),
|
|
603
|
+
INTERVAL '1 hour'
|
|
604
|
+
) AS ts
|
|
605
|
+
ON CONFLICT DO NOTHING;
|
|
606
|
+
|
|
607
|
+
-- Mark true anomalies (values outside thresholds)
|
|
608
|
+
UPDATE readings r
|
|
609
|
+
SET is_anomaly = true
|
|
610
|
+
FROM sensors s
|
|
611
|
+
WHERE r.sensor_id = s.id
|
|
612
|
+
AND (r.value < s.min_threshold OR r.value > s.max_threshold);
|
|
613
|
+
`,
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* All available sample datasets
|
|
618
|
+
*/
|
|
619
|
+
export const SAMPLE_DATASETS: SampleDataset[] = [
|
|
620
|
+
BLOG_DATASET,
|
|
621
|
+
ECOMMERCE_DATASET,
|
|
622
|
+
HR_DATASET,
|
|
623
|
+
IOT_DATASET,
|
|
624
|
+
]
|
|
625
|
+
|
|
626
|
+
/**
|
|
627
|
+
* Get a dataset by ID
|
|
628
|
+
*/
|
|
629
|
+
export function getDatasetById(id: string): SampleDataset | undefined {
|
|
630
|
+
return SAMPLE_DATASETS.find((d) => d.id === id)
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Get datasets by tag
|
|
635
|
+
*/
|
|
636
|
+
export function getDatasetsByTag(tag: string): SampleDataset[] {
|
|
637
|
+
return SAMPLE_DATASETS.filter((d) => d.tags.includes(tag.toLowerCase()))
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* Get all dataset tags
|
|
642
|
+
*/
|
|
643
|
+
export function getAllDatasetTags(): string[] {
|
|
644
|
+
const tags = new Set<string>()
|
|
645
|
+
for (const dataset of SAMPLE_DATASETS) {
|
|
646
|
+
for (const tag of dataset.tags) {
|
|
647
|
+
tags.add(tag)
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
return Array.from(tags).sort()
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* Get the SQL to load a dataset (schema + data)
|
|
655
|
+
*/
|
|
656
|
+
export function getDatasetSql(dataset: SampleDataset): string {
|
|
657
|
+
return `-- Dataset: ${dataset.name}
|
|
658
|
+
-- ${dataset.description}
|
|
659
|
+
|
|
660
|
+
-- Schema
|
|
661
|
+
${dataset.schemaSql}
|
|
662
|
+
|
|
663
|
+
-- Data
|
|
664
|
+
${dataset.dataSql}
|
|
665
|
+
`
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* Get combined SQL for the default blog dataset
|
|
670
|
+
* (Used by loadSampleData in playground.ts)
|
|
671
|
+
*/
|
|
672
|
+
export function getDefaultDatasetSql(): string {
|
|
673
|
+
return getDatasetSql(BLOG_DATASET)
|
|
674
|
+
}
|