@intentius/chant-lexicon-sql 0.0.0-stage → 0.112.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -2
- package/dist/clickhouse/apply/apply.d.ts +82 -0
- package/dist/clickhouse/apply/apply.d.ts.map +1 -0
- package/dist/clickhouse/apply/mutations.d.ts +46 -0
- package/dist/clickhouse/apply/mutations.d.ts.map +1 -0
- package/dist/clickhouse/apply/statements.d.ts +99 -0
- package/dist/clickhouse/apply/statements.d.ts.map +1 -0
- package/dist/clickhouse/catalog-types.d.ts +76 -0
- package/dist/clickhouse/catalog-types.d.ts.map +1 -0
- package/dist/clickhouse/container.d.ts +63 -0
- package/dist/clickhouse/container.d.ts.map +1 -0
- package/dist/clickhouse/engine-syntax.d.ts +43 -0
- package/dist/clickhouse/engine-syntax.d.ts.map +1 -0
- package/dist/clickhouse/entities.d.ts +183 -0
- package/dist/clickhouse/entities.d.ts.map +1 -0
- package/dist/clickhouse/http.d.ts +40 -0
- package/dist/clickhouse/http.d.ts.map +1 -0
- package/dist/clickhouse/import/generator.d.ts +16 -0
- package/dist/clickhouse/import/generator.d.ts.map +1 -0
- package/dist/clickhouse/import/ir.d.ts +52 -0
- package/dist/clickhouse/import/ir.d.ts.map +1 -0
- package/dist/clickhouse/import/live-export.d.ts +28 -0
- package/dist/clickhouse/import/live-export.d.ts.map +1 -0
- package/dist/clickhouse/import/parser.d.ts +10 -0
- package/dist/clickhouse/import/parser.d.ts.map +1 -0
- package/dist/clickhouse/live/bind.d.ts +56 -0
- package/dist/clickhouse/live/bind.d.ts.map +1 -0
- package/dist/clickhouse/live/catalog.d.ts +39 -0
- package/dist/clickhouse/live/catalog.d.ts.map +1 -0
- package/dist/clickhouse/live/describe-resources.d.ts +34 -0
- package/dist/clickhouse/live/describe-resources.d.ts.map +1 -0
- package/dist/clickhouse/overlays/codecs.d.ts +28 -0
- package/dist/clickhouse/overlays/codecs.d.ts.map +1 -0
- package/dist/clickhouse/overlays/engines.d.ts +20 -0
- package/dist/clickhouse/overlays/engines.d.ts.map +1 -0
- package/dist/clickhouse/overlays/kinds.d.ts +38 -0
- package/dist/clickhouse/overlays/kinds.d.ts.map +1 -0
- package/dist/clickhouse/overlays/projections.d.ts +27 -0
- package/dist/clickhouse/overlays/projections.d.ts.map +1 -0
- package/dist/clickhouse/overlays/skip-indexes.d.ts +10 -0
- package/dist/clickhouse/overlays/skip-indexes.d.ts.map +1 -0
- package/dist/clickhouse/overlays/ttl.d.ts +35 -0
- package/dist/clickhouse/overlays/ttl.d.ts.map +1 -0
- package/dist/clickhouse/overlays/types.d.ts +21 -0
- package/dist/clickhouse/overlays/types.d.ts.map +1 -0
- package/dist/clickhouse/ownership.d.ts +71 -0
- package/dist/clickhouse/ownership.d.ts.map +1 -0
- package/dist/clickhouse/parser.d.ts +130 -0
- package/dist/clickhouse/parser.d.ts.map +1 -0
- package/dist/clickhouse/plan/commands.d.ts +26 -0
- package/dist/clickhouse/plan/commands.d.ts.map +1 -0
- package/dist/clickhouse/plan/deep.d.ts +32 -0
- package/dist/clickhouse/plan/deep.d.ts.map +1 -0
- package/dist/clickhouse/plan/diff.d.ts +37 -0
- package/dist/clickhouse/plan/diff.d.ts.map +1 -0
- package/dist/clickhouse/plan/disruption.d.ts +17 -0
- package/dist/clickhouse/plan/disruption.d.ts.map +1 -0
- package/dist/clickhouse/plan/normalize.d.ts +97 -0
- package/dist/clickhouse/plan/normalize.d.ts.map +1 -0
- package/dist/clickhouse/plan/rebuild-handoff.d.ts +38 -0
- package/dist/clickhouse/plan/rebuild-handoff.d.ts.map +1 -0
- package/dist/clickhouse/plan/report.d.ts +6 -0
- package/dist/clickhouse/plan/report.d.ts.map +1 -0
- package/dist/clickhouse/plan/rules.d.ts +60 -0
- package/dist/clickhouse/plan/rules.d.ts.map +1 -0
- package/dist/clickhouse/plan/schema.d.ts +23 -0
- package/dist/clickhouse/plan/schema.d.ts.map +1 -0
- package/dist/clickhouse/plan/server-format.d.ts +12 -0
- package/dist/clickhouse/plan/server-format.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/backfill.d.ts +70 -0
- package/dist/clickhouse/rebuild/backfill.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/observe.d.ts +157 -0
- package/dist/clickhouse/rebuild/observe.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/op.d.ts +108 -0
- package/dist/clickhouse/rebuild/op.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/partitions.d.ts +24 -0
- package/dist/clickhouse/rebuild/partitions.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/receipts.d.ts +76 -0
- package/dist/clickhouse/rebuild/receipts.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/replicas.d.ts +78 -0
- package/dist/clickhouse/rebuild/replicas.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/steps.d.ts +151 -0
- package/dist/clickhouse/rebuild/steps.d.ts.map +1 -0
- package/dist/clickhouse/rebuild/verify.d.ts +51 -0
- package/dist/clickhouse/rebuild/verify.d.ts.map +1 -0
- package/dist/clickhouse/testing/fake-server.d.ts +27 -0
- package/dist/clickhouse/testing/fake-server.d.ts.map +1 -0
- package/dist/clickhouse/testing/roundtrip-schema.d.ts +3 -0
- package/dist/clickhouse/testing/roundtrip-schema.d.ts.map +1 -0
- package/dist/clickhouse/testing/writable-server.d.ts +35 -0
- package/dist/clickhouse/testing/writable-server.d.ts.map +1 -0
- package/dist/clickhouse/tokens.d.ts +15 -0
- package/dist/clickhouse/tokens.d.ts.map +1 -0
- package/dist/clickhouse.d.ts +24 -0
- package/dist/clickhouse.d.ts.map +1 -0
- package/dist/codegen/classifier-page.d.ts +6 -0
- package/dist/codegen/classifier-page.d.ts.map +1 -0
- package/dist/codegen/clickhouse-module.d.ts +23 -0
- package/dist/codegen/clickhouse-module.d.ts.map +1 -0
- package/dist/codegen/docs-cli.d.ts +3 -0
- package/dist/codegen/docs-cli.d.ts.map +1 -0
- package/dist/codegen/docs.d.ts +8 -0
- package/dist/codegen/docs.d.ts.map +1 -0
- package/dist/codegen/generate-cli.d.ts +3 -0
- package/dist/codegen/generate-cli.d.ts.map +1 -0
- package/dist/codegen/generate.d.ts +40 -0
- package/dist/codegen/generate.d.ts.map +1 -0
- package/dist/codegen/package.d.ts +7 -0
- package/dist/codegen/package.d.ts.map +1 -0
- package/dist/codegen/postgres-classifier-page.d.ts +7 -0
- package/dist/codegen/postgres-classifier-page.d.ts.map +1 -0
- package/dist/codegen/postgres-module.d.ts +30 -0
- package/dist/codegen/postgres-module.d.ts.map +1 -0
- package/dist/codegen/registry.d.ts +12 -0
- package/dist/codegen/registry.d.ts.map +1 -0
- package/dist/composites/audit-log-table.d.ts +31 -0
- package/dist/composites/audit-log-table.d.ts.map +1 -0
- package/dist/composites/catalog.d.ts +3 -0
- package/dist/composites/catalog.d.ts.map +1 -0
- package/dist/composites/cdc-mirror.d.ts +32 -0
- package/dist/composites/cdc-mirror.d.ts.map +1 -0
- package/dist/composites/clickhouse.d.ts +7 -0
- package/dist/composites/clickhouse.d.ts.map +1 -0
- package/dist/composites/events-table.d.ts +32 -0
- package/dist/composites/events-table.d.ts.map +1 -0
- package/dist/composites/index.d.ts +9 -0
- package/dist/composites/index.d.ts.map +1 -0
- package/dist/composites/join-table.d.ts +41 -0
- package/dist/composites/join-table.d.ts.map +1 -0
- package/dist/composites/postgres.d.ts +7 -0
- package/dist/composites/postgres.d.ts.map +1 -0
- package/dist/composites/refreshed-view.d.ts +32 -0
- package/dist/composites/refreshed-view.d.ts.map +1 -0
- package/dist/composites/replacing-table.d.ts +34 -0
- package/dist/composites/replacing-table.d.ts.map +1 -0
- package/dist/composites/rollup-view.d.ts +39 -0
- package/dist/composites/rollup-view.d.ts.map +1 -0
- package/dist/composites/sharded-table.d.ts +35 -0
- package/dist/composites/sharded-table.d.ts.map +1 -0
- package/dist/composites/soft-delete-table.d.ts +40 -0
- package/dist/composites/soft-delete-table.d.ts.map +1 -0
- package/dist/composites/tenant-table.d.ts +34 -0
- package/dist/composites/tenant-table.d.ts.map +1 -0
- package/dist/config.d.ts +213 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/core/apply.d.ts +89 -0
- package/dist/core/apply.d.ts.map +1 -0
- package/dist/core/classifier.d.ts +88 -0
- package/dist/core/classifier.d.ts.map +1 -0
- package/dist/core/container.d.ts +45 -0
- package/dist/core/container.d.ts.map +1 -0
- package/dist/core/cursor.d.ts +67 -0
- package/dist/core/cursor.d.ts.map +1 -0
- package/dist/core/diff.d.ts +49 -0
- package/dist/core/diff.d.ts.map +1 -0
- package/dist/core/entity.d.ts +41 -0
- package/dist/core/entity.d.ts.map +1 -0
- package/dist/core/find-templates.d.ts +69 -0
- package/dist/core/find-templates.d.ts.map +1 -0
- package/dist/core/handoff.d.ts +36 -0
- package/dist/core/handoff.d.ts.map +1 -0
- package/dist/core/index.d.ts +61 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/interpolation.d.ts +88 -0
- package/dist/core/interpolation.d.ts.map +1 -0
- package/dist/core/normalize.d.ts +18 -0
- package/dist/core/normalize.d.ts.map +1 -0
- package/dist/core/ownership.d.ts +60 -0
- package/dist/core/ownership.d.ts.map +1 -0
- package/dist/core/receipts.d.ts +28 -0
- package/dist/core/receipts.d.ts.map +1 -0
- package/dist/core/references.d.ts +37 -0
- package/dist/core/references.d.ts.map +1 -0
- package/dist/core/template.d.ts +41 -0
- package/dist/core/template.d.ts.map +1 -0
- package/dist/core/testing/http-stub.d.ts +17 -0
- package/dist/core/testing/http-stub.d.ts.map +1 -0
- package/dist/core/tokens.d.ts +102 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/coverage.d.ts +25 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/detect.d.ts +15 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/dialects.d.ts +20 -0
- package/dist/dialects.d.ts.map +1 -0
- package/dist/generated/clickhouse-types.d.ts +4380 -0
- package/dist/generated/clickhouse-types.d.ts.map +1 -0
- package/dist/generated/clickhouse.d.ts +11 -0
- package/dist/generated/clickhouse.d.ts.map +1 -0
- package/dist/generated/postgres-types.d.ts +1579 -0
- package/dist/generated/postgres-types.d.ts.map +1 -0
- package/dist/generated/postgres.d.ts +9 -0
- package/dist/generated/postgres.d.ts.map +1 -0
- package/dist/import-generator.d.ts +8 -0
- package/dist/import-generator.d.ts.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/init-templates.d.ts +20 -0
- package/dist/init-templates.d.ts.map +1 -0
- package/dist/integrity.json +61 -0
- package/dist/lint/audit-catalog.d.ts +10 -0
- package/dist/lint/audit-catalog.d.ts.map +1 -0
- package/dist/lint/audit-lineage.d.ts +25 -0
- package/dist/lint/audit-lineage.d.ts.map +1 -0
- package/dist/lint/post-synth/audit-entries.d.ts +8 -0
- package/dist/lint/post-synth/audit-entries.d.ts.map +1 -0
- package/dist/lint/post-synth/clickhouse-helpers.d.ts +85 -0
- package/dist/lint/post-synth/clickhouse-helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/index.d.ts +3 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -0
- package/dist/lint/post-synth/postgres-audit-entries.d.ts +9 -0
- package/dist/lint/post-synth/postgres-audit-entries.d.ts.map +1 -0
- package/dist/lint/post-synth/postgres-helpers.d.ts +89 -0
- package/dist/lint/post-synth/postgres-helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/sql-helpers.d.ts +27 -0
- package/dist/lint/post-synth/sql-helpers.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch101.d.ts +12 -0
- package/dist/lint/post-synth/sqlch101.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch102.d.ts +9 -0
- package/dist/lint/post-synth/sqlch102.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch103.d.ts +10 -0
- package/dist/lint/post-synth/sqlch103.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch104.d.ts +9 -0
- package/dist/lint/post-synth/sqlch104.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch105.d.ts +10 -0
- package/dist/lint/post-synth/sqlch105.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch106.d.ts +11 -0
- package/dist/lint/post-synth/sqlch106.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch107.d.ts +10 -0
- package/dist/lint/post-synth/sqlch107.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch108.d.ts +11 -0
- package/dist/lint/post-synth/sqlch108.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch109.d.ts +10 -0
- package/dist/lint/post-synth/sqlch109.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch110.d.ts +12 -0
- package/dist/lint/post-synth/sqlch110.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch111.d.ts +11 -0
- package/dist/lint/post-synth/sqlch111.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch112.d.ts +12 -0
- package/dist/lint/post-synth/sqlch112.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch113.d.ts +9 -0
- package/dist/lint/post-synth/sqlch113.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch114.d.ts +8 -0
- package/dist/lint/post-synth/sqlch114.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch115.d.ts +13 -0
- package/dist/lint/post-synth/sqlch115.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch116.d.ts +10 -0
- package/dist/lint/post-synth/sqlch116.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch117.d.ts +9 -0
- package/dist/lint/post-synth/sqlch117.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch118.d.ts +10 -0
- package/dist/lint/post-synth/sqlch118.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch119.d.ts +11 -0
- package/dist/lint/post-synth/sqlch119.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch120.d.ts +10 -0
- package/dist/lint/post-synth/sqlch120.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg101.d.ts +12 -0
- package/dist/lint/post-synth/sqlpg101.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg102.d.ts +11 -0
- package/dist/lint/post-synth/sqlpg102.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg103.d.ts +11 -0
- package/dist/lint/post-synth/sqlpg103.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg104.d.ts +10 -0
- package/dist/lint/post-synth/sqlpg104.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg105.d.ts +10 -0
- package/dist/lint/post-synth/sqlpg105.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg106.d.ts +9 -0
- package/dist/lint/post-synth/sqlpg106.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg107.d.ts +10 -0
- package/dist/lint/post-synth/sqlpg107.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg108.d.ts +11 -0
- package/dist/lint/post-synth/sqlpg108.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg109.d.ts +11 -0
- package/dist/lint/post-synth/sqlpg109.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg110.d.ts +12 -0
- package/dist/lint/post-synth/sqlpg110.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg111.d.ts +10 -0
- package/dist/lint/post-synth/sqlpg111.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg112.d.ts +10 -0
- package/dist/lint/post-synth/sqlpg112.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg113.d.ts +11 -0
- package/dist/lint/post-synth/sqlpg113.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg114.d.ts +13 -0
- package/dist/lint/post-synth/sqlpg114.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg115.d.ts +13 -0
- package/dist/lint/post-synth/sqlpg115.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg116.d.ts +11 -0
- package/dist/lint/post-synth/sqlpg116.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg117.d.ts +12 -0
- package/dist/lint/post-synth/sqlpg117.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlpg118.d.ts +12 -0
- package/dist/lint/post-synth/sqlpg118.d.ts.map +1 -0
- package/dist/lint/rules/index.d.ts +12 -0
- package/dist/lint/rules/index.d.ts.map +1 -0
- package/dist/lint/rules/postgres-templates.d.ts +18 -0
- package/dist/lint/rules/postgres-templates.d.ts.map +1 -0
- package/dist/lint/rules/sqlch001.d.ts +12 -0
- package/dist/lint/rules/sqlch001.d.ts.map +1 -0
- package/dist/lint/rules/sqlch002.d.ts +11 -0
- package/dist/lint/rules/sqlch002.d.ts.map +1 -0
- package/dist/lint/rules/sqlch003.d.ts +12 -0
- package/dist/lint/rules/sqlch003.d.ts.map +1 -0
- package/dist/lint/rules/sqlpg001.d.ts +16 -0
- package/dist/lint/rules/sqlpg001.d.ts.map +1 -0
- package/dist/lint/rules/sqlpg002.d.ts +12 -0
- package/dist/lint/rules/sqlpg002.d.ts.map +1 -0
- package/dist/lint/rules/sqlpg003.d.ts +16 -0
- package/dist/lint/rules/sqlpg003.d.ts.map +1 -0
- package/dist/lint/rules/sqlpg004.d.ts +21 -0
- package/dist/lint/rules/sqlpg004.d.ts.map +1 -0
- package/dist/lint/rules/templates.d.ts +23 -0
- package/dist/lint/rules/templates.d.ts.map +1 -0
- package/dist/live-dialect.d.ts +25 -0
- package/dist/live-dialect.d.ts.map +1 -0
- package/dist/lsp/catalog.d.ts +22 -0
- package/dist/lsp/catalog.d.ts.map +1 -0
- package/dist/lsp/completions.d.ts +13 -0
- package/dist/lsp/completions.d.ts.map +1 -0
- package/dist/lsp/hover.d.ts +12 -0
- package/dist/lsp/hover.d.ts.map +1 -0
- package/dist/lsp/postgres-catalog.d.ts +85 -0
- package/dist/lsp/postgres-catalog.d.ts.map +1 -0
- package/dist/lsp/postgres-template.d.ts +35 -0
- package/dist/lsp/postgres-template.d.ts.map +1 -0
- package/dist/lsp/postgres.d.ts +20 -0
- package/dist/lsp/postgres.d.ts.map +1 -0
- package/dist/lsp/refs.d.ts +8 -0
- package/dist/lsp/refs.d.ts.map +1 -0
- package/dist/lsp/registry.d.ts +4 -0
- package/dist/lsp/registry.d.ts.map +1 -0
- package/dist/lsp/template.d.ts +34 -0
- package/dist/lsp/template.d.ts.map +1 -0
- package/dist/manifest.json +8 -0
- package/dist/mcp/index.d.ts +13 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/postgres.d.ts +32 -0
- package/dist/mcp/postgres.d.ts.map +1 -0
- package/dist/meta.json +67 -0
- package/dist/okf/index.md +67 -0
- package/dist/okf/rules/SQLCH001.md +11 -0
- package/dist/okf/rules/SQLCH002.md +11 -0
- package/dist/okf/rules/SQLCH003.md +11 -0
- package/dist/okf/rules/SQLCH101.md +15 -0
- package/dist/okf/rules/SQLCH102.md +11 -0
- package/dist/okf/rules/SQLCH103.md +11 -0
- package/dist/okf/rules/SQLCH104.md +11 -0
- package/dist/okf/rules/SQLCH105.md +11 -0
- package/dist/okf/rules/SQLCH106.md +11 -0
- package/dist/okf/rules/SQLCH107.md +11 -0
- package/dist/okf/rules/SQLCH108.md +15 -0
- package/dist/okf/rules/SQLCH109.md +11 -0
- package/dist/okf/rules/SQLCH110.md +11 -0
- package/dist/okf/rules/SQLCH111.md +11 -0
- package/dist/okf/rules/SQLCH112.md +11 -0
- package/dist/okf/rules/SQLCH113.md +11 -0
- package/dist/okf/rules/SQLCH114.md +11 -0
- package/dist/okf/rules/SQLCH115.md +11 -0
- package/dist/okf/rules/SQLCH116.md +11 -0
- package/dist/okf/rules/SQLCH117.md +15 -0
- package/dist/okf/rules/SQLCH118.md +15 -0
- package/dist/okf/rules/SQLCH119.md +15 -0
- package/dist/okf/rules/SQLCH120.md +15 -0
- package/dist/okf/rules/SQLPG001.md +11 -0
- package/dist/okf/rules/SQLPG002.md +11 -0
- package/dist/okf/rules/SQLPG003.md +11 -0
- package/dist/okf/rules/SQLPG004.md +11 -0
- package/dist/okf/rules/SQLPG101.md +11 -0
- package/dist/okf/rules/SQLPG102.md +11 -0
- package/dist/okf/rules/SQLPG103.md +11 -0
- package/dist/okf/rules/SQLPG104.md +11 -0
- package/dist/okf/rules/SQLPG105.md +11 -0
- package/dist/okf/rules/SQLPG106.md +11 -0
- package/dist/okf/rules/SQLPG107.md +11 -0
- package/dist/okf/rules/SQLPG108.md +11 -0
- package/dist/okf/rules/SQLPG109.md +11 -0
- package/dist/okf/rules/SQLPG110.md +11 -0
- package/dist/okf/rules/SQLPG111.md +11 -0
- package/dist/okf/rules/SQLPG112.md +11 -0
- package/dist/okf/rules/SQLPG113.md +24 -0
- package/dist/okf/rules/SQLPG114.md +11 -0
- package/dist/okf/rules/SQLPG115.md +11 -0
- package/dist/okf/rules/SQLPG116.md +15 -0
- package/dist/okf/rules/SQLPG117.md +11 -0
- package/dist/okf/rules/SQLPG118.md +11 -0
- package/dist/okf/types/Database.md +15 -0
- package/dist/okf/types/MaterializedView.md +14 -0
- package/dist/okf/types/PostgresDomain.md +13 -0
- package/dist/okf/types/PostgresEnum.md +13 -0
- package/dist/okf/types/PostgresExtension.md +13 -0
- package/dist/okf/types/PostgresIndex.md +9 -0
- package/dist/okf/types/PostgresMaterializedView.md +13 -0
- package/dist/okf/types/PostgresSchema.md +13 -0
- package/dist/okf/types/PostgresSequence.md +13 -0
- package/dist/okf/types/PostgresTable.md +13 -0
- package/dist/okf/types/PostgresView.md +13 -0
- package/dist/okf/types/Table.md +15 -0
- package/dist/okf/types/View.md +13 -0
- package/dist/op/activities/clickhouse-apply.d.ts +56 -0
- package/dist/op/activities/clickhouse-apply.d.ts.map +1 -0
- package/dist/op/activities/clickhouse-emulator.d.ts +26 -0
- package/dist/op/activities/clickhouse-emulator.d.ts.map +1 -0
- package/dist/op/activities/clickhouse-rebuild.d.ts +43 -0
- package/dist/op/activities/clickhouse-rebuild.d.ts.map +1 -0
- package/dist/op/activities/index.d.ts +19 -0
- package/dist/op/activities/index.d.ts.map +1 -0
- package/dist/op/activities/postgres-apply.d.ts +69 -0
- package/dist/op/activities/postgres-apply.d.ts.map +1 -0
- package/dist/op/activities/postgres-emulator.d.ts +33 -0
- package/dist/op/activities/postgres-emulator.d.ts.map +1 -0
- package/dist/op/activities/postgres-migration.d.ts +48 -0
- package/dist/op/activities/postgres-migration.d.ts.map +1 -0
- package/dist/op/activity-contracts.d.ts +464 -0
- package/dist/op/activity-contracts.d.ts.map +1 -0
- package/dist/package-cli.d.ts +3 -0
- package/dist/package-cli.d.ts.map +1 -0
- package/dist/plugin.d.ts +12 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/postgres/apply/apply.d.ts +163 -0
- package/dist/postgres/apply/apply.d.ts.map +1 -0
- package/dist/postgres/apply/statements.d.ts +138 -0
- package/dist/postgres/apply/statements.d.ts.map +1 -0
- package/dist/postgres/catalog-types.d.ts +50 -0
- package/dist/postgres/catalog-types.d.ts.map +1 -0
- package/dist/postgres/container.d.ts +23 -0
- package/dist/postgres/container.d.ts.map +1 -0
- package/dist/postgres/entities.d.ts +322 -0
- package/dist/postgres/entities.d.ts.map +1 -0
- package/dist/postgres/entity-types.d.ts +17 -0
- package/dist/postgres/entity-types.d.ts.map +1 -0
- package/dist/postgres/import/generator.d.ts +28 -0
- package/dist/postgres/import/generator.d.ts.map +1 -0
- package/dist/postgres/import/ir.d.ts +24 -0
- package/dist/postgres/import/ir.d.ts.map +1 -0
- package/dist/postgres/import/live-export.d.ts +26 -0
- package/dist/postgres/import/live-export.d.ts.map +1 -0
- package/dist/postgres/keywords.d.ts +22 -0
- package/dist/postgres/keywords.d.ts.map +1 -0
- package/dist/postgres/live/bind.d.ts +76 -0
- package/dist/postgres/live/bind.d.ts.map +1 -0
- package/dist/postgres/live/catalog.d.ts +98 -0
- package/dist/postgres/live/catalog.d.ts.map +1 -0
- package/dist/postgres/live/client.d.ts +32 -0
- package/dist/postgres/live/client.d.ts.map +1 -0
- package/dist/postgres/live/describe-resources.d.ts +41 -0
- package/dist/postgres/live/describe-resources.d.ts.map +1 -0
- package/dist/postgres/migrate/backfill.d.ts +103 -0
- package/dist/postgres/migrate/backfill.d.ts.map +1 -0
- package/dist/postgres/migrate/batches.d.ts +90 -0
- package/dist/postgres/migrate/batches.d.ts.map +1 -0
- package/dist/postgres/migrate/carry.d.ts +196 -0
- package/dist/postgres/migrate/carry.d.ts.map +1 -0
- package/dist/postgres/migrate/handoff.d.ts +46 -0
- package/dist/postgres/migrate/handoff.d.ts.map +1 -0
- package/dist/postgres/migrate/names.d.ts +55 -0
- package/dist/postgres/migrate/names.d.ts.map +1 -0
- package/dist/postgres/migrate/observe.d.ts +139 -0
- package/dist/postgres/migrate/observe.d.ts.map +1 -0
- package/dist/postgres/migrate/op.d.ts +128 -0
- package/dist/postgres/migrate/op.d.ts.map +1 -0
- package/dist/postgres/migrate/receipts.d.ts +63 -0
- package/dist/postgres/migrate/receipts.d.ts.map +1 -0
- package/dist/postgres/migrate/replication.d.ts +80 -0
- package/dist/postgres/migrate/replication.d.ts.map +1 -0
- package/dist/postgres/migrate/steps.d.ts +225 -0
- package/dist/postgres/migrate/steps.d.ts.map +1 -0
- package/dist/postgres/overlays/columns.d.ts +6 -0
- package/dist/postgres/overlays/columns.d.ts.map +1 -0
- package/dist/postgres/overlays/constraints.d.ts +8 -0
- package/dist/postgres/overlays/constraints.d.ts.map +1 -0
- package/dist/postgres/overlays/indexes.d.ts +8 -0
- package/dist/postgres/overlays/indexes.d.ts.map +1 -0
- package/dist/postgres/overlays/kinds.d.ts +48 -0
- package/dist/postgres/overlays/kinds.d.ts.map +1 -0
- package/dist/postgres/overlays/partitioning.d.ts +5 -0
- package/dist/postgres/overlays/partitioning.d.ts.map +1 -0
- package/dist/postgres/overlays/relations.d.ts +6 -0
- package/dist/postgres/overlays/relations.d.ts.map +1 -0
- package/dist/postgres/overlays/storage.d.ts +28 -0
- package/dist/postgres/overlays/storage.d.ts.map +1 -0
- package/dist/postgres/overlays/type-ddl.d.ts +7 -0
- package/dist/postgres/overlays/type-ddl.d.ts.map +1 -0
- package/dist/postgres/overlays/types.d.ts +24 -0
- package/dist/postgres/overlays/types.d.ts.map +1 -0
- package/dist/postgres/parser.d.ts +216 -0
- package/dist/postgres/parser.d.ts.map +1 -0
- package/dist/postgres/plan/commands.d.ts +61 -0
- package/dist/postgres/plan/commands.d.ts.map +1 -0
- package/dist/postgres/plan/deep.d.ts +33 -0
- package/dist/postgres/plan/deep.d.ts.map +1 -0
- package/dist/postgres/plan/diff.d.ts +45 -0
- package/dist/postgres/plan/diff.d.ts.map +1 -0
- package/dist/postgres/plan/disruption.d.ts +14 -0
- package/dist/postgres/plan/disruption.d.ts.map +1 -0
- package/dist/postgres/plan/normalize.d.ts +108 -0
- package/dist/postgres/plan/normalize.d.ts.map +1 -0
- package/dist/postgres/plan/report.d.ts +6 -0
- package/dist/postgres/plan/report.d.ts.map +1 -0
- package/dist/postgres/plan/rules.d.ts +84 -0
- package/dist/postgres/plan/rules.d.ts.map +1 -0
- package/dist/postgres/plan/schema.d.ts +50 -0
- package/dist/postgres/plan/schema.d.ts.map +1 -0
- package/dist/postgres/plan/server-normalize.d.ts +26 -0
- package/dist/postgres/plan/server-normalize.d.ts.map +1 -0
- package/dist/postgres/providers/aurora.d.ts +12 -0
- package/dist/postgres/providers/aurora.d.ts.map +1 -0
- package/dist/postgres/providers/azure.d.ts +14 -0
- package/dist/postgres/providers/azure.d.ts.map +1 -0
- package/dist/postgres/providers/cloud-sql.d.ts +11 -0
- package/dist/postgres/providers/cloud-sql.d.ts.map +1 -0
- package/dist/postgres/providers/index.d.ts +35 -0
- package/dist/postgres/providers/index.d.ts.map +1 -0
- package/dist/postgres/providers/neon.d.ts +13 -0
- package/dist/postgres/providers/neon.d.ts.map +1 -0
- package/dist/postgres/providers/rds.d.ts +10 -0
- package/dist/postgres/providers/rds.d.ts.map +1 -0
- package/dist/postgres/providers/supabase.d.ts +12 -0
- package/dist/postgres/providers/supabase.d.ts.map +1 -0
- package/dist/postgres/providers/types.d.ts +59 -0
- package/dist/postgres/providers/types.d.ts.map +1 -0
- package/dist/postgres/testing/fake-client.d.ts +38 -0
- package/dist/postgres/testing/fake-client.d.ts.map +1 -0
- package/dist/postgres/testing/migration.d.ts +25 -0
- package/dist/postgres/testing/migration.d.ts.map +1 -0
- package/dist/postgres/testing/roundtrip-schema.d.ts +11 -0
- package/dist/postgres/testing/roundtrip-schema.d.ts.map +1 -0
- package/dist/postgres/testing/server.d.ts +17 -0
- package/dist/postgres/testing/server.d.ts.map +1 -0
- package/dist/postgres/testing/writable-server.d.ts +45 -0
- package/dist/postgres/testing/writable-server.d.ts.map +1 -0
- package/dist/postgres/tokens.d.ts +26 -0
- package/dist/postgres/tokens.d.ts.map +1 -0
- package/dist/postgres.d.ts +13 -0
- package/dist/postgres.d.ts.map +1 -0
- package/dist/rules/audit-entries.ts +29 -0
- package/dist/rules/clickhouse-helpers.ts +206 -0
- package/dist/rules/postgres-audit-entries.ts +29 -0
- package/dist/rules/postgres-helpers.ts +126 -0
- package/dist/rules/postgres-templates.ts +36 -0
- package/dist/rules/sql-helpers.ts +53 -0
- package/dist/rules/sqlch001.ts +53 -0
- package/dist/rules/sqlch002.ts +115 -0
- package/dist/rules/sqlch003.ts +68 -0
- package/dist/rules/sqlch101.ts +35 -0
- package/dist/rules/sqlch102.ts +23 -0
- package/dist/rules/sqlch103.ts +45 -0
- package/dist/rules/sqlch104.ts +42 -0
- package/dist/rules/sqlch105.ts +35 -0
- package/dist/rules/sqlch106.ts +27 -0
- package/dist/rules/sqlch107.ts +35 -0
- package/dist/rules/sqlch108.ts +27 -0
- package/dist/rules/sqlch109.ts +21 -0
- package/dist/rules/sqlch110.ts +29 -0
- package/dist/rules/sqlch111.ts +40 -0
- package/dist/rules/sqlch112.ts +30 -0
- package/dist/rules/sqlch113.ts +20 -0
- package/dist/rules/sqlch114.ts +26 -0
- package/dist/rules/sqlch115.ts +31 -0
- package/dist/rules/sqlch116.ts +22 -0
- package/dist/rules/sqlch117.ts +25 -0
- package/dist/rules/sqlch118.ts +26 -0
- package/dist/rules/sqlch119.ts +31 -0
- package/dist/rules/sqlch120.ts +21 -0
- package/dist/rules/sqlpg001.ts +88 -0
- package/dist/rules/sqlpg002.ts +68 -0
- package/dist/rules/sqlpg003.ts +59 -0
- package/dist/rules/sqlpg004.ts +73 -0
- package/dist/rules/sqlpg101.ts +24 -0
- package/dist/rules/sqlpg102.ts +30 -0
- package/dist/rules/sqlpg103.ts +23 -0
- package/dist/rules/sqlpg104.ts +23 -0
- package/dist/rules/sqlpg105.ts +22 -0
- package/dist/rules/sqlpg106.ts +22 -0
- package/dist/rules/sqlpg107.ts +22 -0
- package/dist/rules/sqlpg108.ts +27 -0
- package/dist/rules/sqlpg109.ts +37 -0
- package/dist/rules/sqlpg110.ts +33 -0
- package/dist/rules/sqlpg111.ts +23 -0
- package/dist/rules/sqlpg112.ts +25 -0
- package/dist/rules/sqlpg113.ts +28 -0
- package/dist/rules/sqlpg114.ts +37 -0
- package/dist/rules/sqlpg115.ts +38 -0
- package/dist/rules/sqlpg116.ts +25 -0
- package/dist/rules/sqlpg117.ts +24 -0
- package/dist/rules/sqlpg118.ts +22 -0
- package/dist/rules/templates.ts +35 -0
- package/dist/serializer.d.ts +37 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/skill-defs.d.ts +3 -0
- package/dist/skill-defs.d.ts.map +1 -0
- package/dist/spec/catalog.d.ts +125 -0
- package/dist/spec/catalog.d.ts.map +1 -0
- package/dist/spec/fetch.d.ts +43 -0
- package/dist/spec/fetch.d.ts.map +1 -0
- package/dist/spec/pin.d.ts +39 -0
- package/dist/spec/pin.d.ts.map +1 -0
- package/dist/spec/postgres-catalog.d.ts +108 -0
- package/dist/spec/postgres-catalog.d.ts.map +1 -0
- package/dist/spec/postgres-fetch.d.ts +46 -0
- package/dist/spec/postgres-fetch.d.ts.map +1 -0
- package/dist/spec/postgres-pin.d.ts +67 -0
- package/dist/spec/postgres-pin.d.ts.map +1 -0
- package/dist/types/index.d.ts +4386 -0
- package/dist/validate-cli.d.ts +3 -0
- package/dist/validate-cli.d.ts.map +1 -0
- package/dist/validate.d.ts +15 -0
- package/dist/validate.d.ts.map +1 -0
- package/package.json +74 -4
- package/src/clickhouse/apply/apply.ts +288 -0
- package/src/clickhouse/apply/mutations.ts +90 -0
- package/src/clickhouse/apply/statements.ts +393 -0
- package/src/clickhouse/catalog-types.ts +84 -0
- package/src/clickhouse/container.ts +176 -0
- package/src/clickhouse/engine-syntax.test.ts +53 -0
- package/src/clickhouse/engine-syntax.ts +173 -0
- package/src/clickhouse/entities.test.ts +188 -0
- package/src/clickhouse/entities.ts +425 -0
- package/src/clickhouse/http.ts +76 -0
- package/src/clickhouse/import/generator.ts +153 -0
- package/src/clickhouse/import/import.test.ts +157 -0
- package/src/clickhouse/import/ir.ts +171 -0
- package/src/clickhouse/import/live-export.ts +53 -0
- package/src/clickhouse/import/parser.ts +27 -0
- package/src/clickhouse/import/roundtrip.test.ts +90 -0
- package/src/clickhouse/live/bind.ts +126 -0
- package/src/clickhouse/live/catalog.ts +96 -0
- package/src/clickhouse/live/describe-resources.ts +98 -0
- package/src/clickhouse/live/live.test.ts +143 -0
- package/src/clickhouse/live/roundtrip.e2e.test.ts +93 -0
- package/src/clickhouse/overlays/codecs.ts +68 -0
- package/src/clickhouse/overlays/engines.ts +108 -0
- package/src/clickhouse/overlays/kinds.ts +38 -0
- package/src/clickhouse/overlays/projections.ts +36 -0
- package/src/clickhouse/overlays/skip-indexes.ts +44 -0
- package/src/clickhouse/overlays/ttl.ts +55 -0
- package/src/clickhouse/overlays/types.ts +58 -0
- package/src/clickhouse/ownership.test.ts +20 -0
- package/src/clickhouse/ownership.ts +103 -0
- package/src/clickhouse/parser.test.ts +166 -0
- package/src/clickhouse/parser.ts +459 -0
- package/src/clickhouse/plan/commands.ts +101 -0
- package/src/clickhouse/plan/deep.ts +124 -0
- package/src/clickhouse/plan/diff.ts +203 -0
- package/src/clickhouse/plan/disruption.ts +61 -0
- package/src/clickhouse/plan/normalize.ts +352 -0
- package/src/clickhouse/plan/plan-wiring.test.ts +77 -0
- package/src/clickhouse/plan/plan.e2e.test.ts +77 -0
- package/src/clickhouse/plan/plan.test.ts +201 -0
- package/src/clickhouse/plan/rebuild-handoff.ts +59 -0
- package/src/clickhouse/plan/report.ts +19 -0
- package/src/clickhouse/plan/rules.ts +241 -0
- package/src/clickhouse/plan/schema.ts +56 -0
- package/src/clickhouse/plan/server-format.ts +39 -0
- package/src/clickhouse/rebuild/backfill.ts +186 -0
- package/src/clickhouse/rebuild/observe.ts +380 -0
- package/src/clickhouse/rebuild/op.ts +206 -0
- package/src/clickhouse/rebuild/partitions.ts +62 -0
- package/src/clickhouse/rebuild/rebuild-replicated.e2e.test.ts +513 -0
- package/src/clickhouse/rebuild/rebuild.e2e.test.ts +351 -0
- package/src/clickhouse/rebuild/rebuild.test.ts +190 -0
- package/src/clickhouse/rebuild/receipts.ts +143 -0
- package/src/clickhouse/rebuild/replicas.test.ts +70 -0
- package/src/clickhouse/rebuild/replicas.ts +148 -0
- package/src/clickhouse/rebuild/steps.ts +382 -0
- package/src/clickhouse/rebuild/verify.ts +124 -0
- package/src/clickhouse/testdata/NOTICE +5 -0
- package/src/clickhouse/testdata/clickhouse-tests-corpus.json +302 -0
- package/src/clickhouse/testing/fake-server.ts +65 -0
- package/src/clickhouse/testing/roundtrip-schema.ts +25 -0
- package/src/clickhouse/testing/writable-server.ts +141 -0
- package/src/clickhouse/tokens.ts +28 -0
- package/src/clickhouse.ts +63 -0
- package/src/codegen/classifier-page.test.ts +16 -0
- package/src/codegen/classifier-page.ts +76 -0
- package/src/codegen/clickhouse-module.test.ts +63 -0
- package/src/codegen/clickhouse-module.ts +269 -0
- package/src/codegen/docs-cli.ts +4 -0
- package/src/codegen/docs.ts +225 -0
- package/src/codegen/generate-cli.ts +13 -0
- package/src/codegen/generate.ts +126 -0
- package/src/codegen/package.ts +36 -0
- package/src/codegen/postgres-classifier-page.ts +81 -0
- package/src/codegen/postgres-module.test.ts +77 -0
- package/src/codegen/postgres-module.ts +434 -0
- package/src/codegen/registry.ts +36 -0
- package/src/composites/audit-log-table.ts +54 -0
- package/src/composites/catalog.test.ts +61 -0
- package/src/composites/catalog.ts +529 -0
- package/src/composites/cdc-mirror.ts +54 -0
- package/src/composites/clickhouse.ts +7 -0
- package/src/composites/composites.test.ts +758 -0
- package/src/composites/events-table.ts +49 -0
- package/src/composites/index.ts +9 -0
- package/src/composites/join-table.ts +57 -0
- package/src/composites/postgres.ts +7 -0
- package/src/composites/refreshed-view.ts +46 -0
- package/src/composites/replacing-table.ts +49 -0
- package/src/composites/rollup-view.ts +55 -0
- package/src/composites/sharded-table.ts +49 -0
- package/src/composites/soft-delete-table.ts +61 -0
- package/src/composites/tenant-table.ts +50 -0
- package/src/config.ts +157 -0
- package/src/core/apply.ts +153 -0
- package/src/core/classifier.ts +186 -0
- package/src/core/container.ts +93 -0
- package/src/core/core.test.ts +254 -0
- package/src/core/cursor.ts +189 -0
- package/src/core/diff.ts +72 -0
- package/src/core/entity.ts +85 -0
- package/src/core/find-templates.ts +158 -0
- package/src/core/handoff.ts +44 -0
- package/src/core/index.ts +61 -0
- package/src/core/interpolation.ts +225 -0
- package/src/core/normalize.ts +39 -0
- package/src/core/ownership.test.ts +36 -0
- package/src/core/ownership.ts +133 -0
- package/src/core/receipts.ts +29 -0
- package/src/core/references.ts +74 -0
- package/src/core/template.ts +83 -0
- package/src/core/testing/http-stub.ts +33 -0
- package/src/core/tokens.ts +252 -0
- package/src/coverage.ts +64 -0
- package/src/detect.ts +32 -0
- package/src/dialects.ts +21 -0
- package/src/generated/clickhouse-types.ts +4386 -0
- package/src/generated/clickhouse.ts +2476 -0
- package/src/generated/index.d.ts +4386 -0
- package/src/generated/lexicon-sql.json +67 -0
- package/src/generated/postgres-types.ts +1190 -0
- package/src/generated/postgres.ts +1039 -0
- package/src/import-generator.ts +18 -0
- package/src/index.ts +21 -0
- package/src/init-templates.test.ts +108 -0
- package/src/init-templates.ts +327 -0
- package/src/lint/audit-catalog.ts +73 -0
- package/src/lint/audit-lineage.ts +47 -0
- package/src/lint/post-synth/audit-entries.ts +29 -0
- package/src/lint/post-synth/clickhouse-checks.test.ts +278 -0
- package/src/lint/post-synth/clickhouse-helpers.ts +206 -0
- package/src/lint/post-synth/index.ts +81 -0
- package/src/lint/post-synth/post-synth.test.ts +33 -0
- package/src/lint/post-synth/postgres-audit-entries.ts +29 -0
- package/src/lint/post-synth/postgres-checks.test.ts +257 -0
- package/src/lint/post-synth/postgres-helpers.ts +126 -0
- package/src/lint/post-synth/sql-helpers.ts +53 -0
- package/src/lint/post-synth/sqlch101.ts +35 -0
- package/src/lint/post-synth/sqlch102.ts +23 -0
- package/src/lint/post-synth/sqlch103.ts +45 -0
- package/src/lint/post-synth/sqlch104.ts +42 -0
- package/src/lint/post-synth/sqlch105.ts +35 -0
- package/src/lint/post-synth/sqlch106.ts +27 -0
- package/src/lint/post-synth/sqlch107.ts +35 -0
- package/src/lint/post-synth/sqlch108.ts +27 -0
- package/src/lint/post-synth/sqlch109.ts +21 -0
- package/src/lint/post-synth/sqlch110.ts +29 -0
- package/src/lint/post-synth/sqlch111.ts +40 -0
- package/src/lint/post-synth/sqlch112.ts +30 -0
- package/src/lint/post-synth/sqlch113.ts +20 -0
- package/src/lint/post-synth/sqlch114.ts +26 -0
- package/src/lint/post-synth/sqlch115.ts +31 -0
- package/src/lint/post-synth/sqlch116.ts +22 -0
- package/src/lint/post-synth/sqlch117.ts +25 -0
- package/src/lint/post-synth/sqlch118.ts +26 -0
- package/src/lint/post-synth/sqlch119.ts +31 -0
- package/src/lint/post-synth/sqlch120.ts +21 -0
- package/src/lint/post-synth/sqlpg101.ts +24 -0
- package/src/lint/post-synth/sqlpg102.ts +30 -0
- package/src/lint/post-synth/sqlpg103.ts +23 -0
- package/src/lint/post-synth/sqlpg104.ts +23 -0
- package/src/lint/post-synth/sqlpg105.ts +22 -0
- package/src/lint/post-synth/sqlpg106.ts +22 -0
- package/src/lint/post-synth/sqlpg107.ts +22 -0
- package/src/lint/post-synth/sqlpg108.ts +27 -0
- package/src/lint/post-synth/sqlpg109.ts +37 -0
- package/src/lint/post-synth/sqlpg110.ts +33 -0
- package/src/lint/post-synth/sqlpg111.ts +23 -0
- package/src/lint/post-synth/sqlpg112.ts +25 -0
- package/src/lint/post-synth/sqlpg113.ts +28 -0
- package/src/lint/post-synth/sqlpg114.ts +37 -0
- package/src/lint/post-synth/sqlpg115.ts +38 -0
- package/src/lint/post-synth/sqlpg116.ts +25 -0
- package/src/lint/post-synth/sqlpg117.ts +24 -0
- package/src/lint/post-synth/sqlpg118.ts +22 -0
- package/src/lint/rules/index.ts +13 -0
- package/src/lint/rules/postgres-templates.ts +36 -0
- package/src/lint/rules/rules.test.ts +228 -0
- package/src/lint/rules/sqlch001.ts +53 -0
- package/src/lint/rules/sqlch002.ts +115 -0
- package/src/lint/rules/sqlch003.ts +68 -0
- package/src/lint/rules/sqlpg001.ts +88 -0
- package/src/lint/rules/sqlpg002.ts +68 -0
- package/src/lint/rules/sqlpg003.ts +59 -0
- package/src/lint/rules/sqlpg004.ts +73 -0
- package/src/lint/rules/templates.ts +35 -0
- package/src/live-dialect.ts +37 -0
- package/src/lsp/catalog.ts +60 -0
- package/src/lsp/completions.test.ts +111 -0
- package/src/lsp/completions.ts +128 -0
- package/src/lsp/diagnostics.test.ts +26 -0
- package/src/lsp/hover.test.ts +90 -0
- package/src/lsp/hover.ts +113 -0
- package/src/lsp/postgres-catalog.ts +234 -0
- package/src/lsp/postgres-template.ts +161 -0
- package/src/lsp/postgres.test.ts +150 -0
- package/src/lsp/postgres.ts +270 -0
- package/src/lsp/refs.ts +53 -0
- package/src/lsp/registry.ts +19 -0
- package/src/lsp/template.ts +166 -0
- package/src/mcp/index.ts +304 -0
- package/src/mcp/mcp.test.ts +184 -0
- package/src/mcp/postgres.ts +125 -0
- package/src/op/activities/clickhouse-apply.e2e.test.ts +150 -0
- package/src/op/activities/clickhouse-apply.test.ts +265 -0
- package/src/op/activities/clickhouse-apply.ts +113 -0
- package/src/op/activities/clickhouse-emulator.test.ts +23 -0
- package/src/op/activities/clickhouse-emulator.ts +37 -0
- package/src/op/activities/clickhouse-rebuild.ts +136 -0
- package/src/op/activities/index.ts +50 -0
- package/src/op/activities/postgres-apply.e2e.test.ts +184 -0
- package/src/op/activities/postgres-apply.test.ts +304 -0
- package/src/op/activities/postgres-apply.ts +170 -0
- package/src/op/activities/postgres-emulator.test.ts +26 -0
- package/src/op/activities/postgres-emulator.ts +44 -0
- package/src/op/activities/postgres-migration.ts +182 -0
- package/src/op/activity-contracts.ts +210 -0
- package/src/package-cli.ts +17 -0
- package/src/plugin.test.ts +74 -0
- package/src/plugin.ts +242 -0
- package/src/postgres/apply/apply.ts +582 -0
- package/src/postgres/apply/statements.test.ts +155 -0
- package/src/postgres/apply/statements.ts +603 -0
- package/src/postgres/catalog-types.ts +59 -0
- package/src/postgres/container.ts +72 -0
- package/src/postgres/entities.test.ts +170 -0
- package/src/postgres/entities.ts +1016 -0
- package/src/postgres/entity-types.ts +18 -0
- package/src/postgres/import/generator.ts +176 -0
- package/src/postgres/import/import.test.ts +71 -0
- package/src/postgres/import/ir.ts +67 -0
- package/src/postgres/import/live-export.ts +53 -0
- package/src/postgres/import/live-warnings.test.ts +45 -0
- package/src/postgres/keywords.ts +40 -0
- package/src/postgres/live/bind.ts +146 -0
- package/src/postgres/live/catalog.ts +581 -0
- package/src/postgres/live/client.ts +84 -0
- package/src/postgres/live/describe-resources.ts +111 -0
- package/src/postgres/live/live.test.ts +198 -0
- package/src/postgres/live/roundtrip.e2e.test.ts +111 -0
- package/src/postgres/migrate/backfill.ts +233 -0
- package/src/postgres/migrate/batches.e2e.test.ts +163 -0
- package/src/postgres/migrate/batches.test.ts +36 -0
- package/src/postgres/migrate/batches.ts +159 -0
- package/src/postgres/migrate/carry.e2e.test.ts +335 -0
- package/src/postgres/migrate/carry.test.ts +103 -0
- package/src/postgres/migrate/carry.ts +653 -0
- package/src/postgres/migrate/handoff.ts +73 -0
- package/src/postgres/migrate/kinds.e2e.test.ts +204 -0
- package/src/postgres/migrate/migrate.e2e.test.ts +362 -0
- package/src/postgres/migrate/migrate.test.ts +322 -0
- package/src/postgres/migrate/names.ts +93 -0
- package/src/postgres/migrate/observe.ts +521 -0
- package/src/postgres/migrate/op.ts +242 -0
- package/src/postgres/migrate/receipts.ts +135 -0
- package/src/postgres/migrate/replication.ts +151 -0
- package/src/postgres/migrate/steps.ts +657 -0
- package/src/postgres/overlays/columns.ts +34 -0
- package/src/postgres/overlays/constraints.ts +56 -0
- package/src/postgres/overlays/indexes.ts +27 -0
- package/src/postgres/overlays/kinds.ts +53 -0
- package/src/postgres/overlays/partitioning.ts +26 -0
- package/src/postgres/overlays/relations.ts +29 -0
- package/src/postgres/overlays/storage.ts +75 -0
- package/src/postgres/overlays/type-ddl.ts +38 -0
- package/src/postgres/overlays/types.ts +56 -0
- package/src/postgres/parser.test.ts +214 -0
- package/src/postgres/parser.ts +1062 -0
- package/src/postgres/plan/commands.ts +124 -0
- package/src/postgres/plan/deep.ts +177 -0
- package/src/postgres/plan/diff.ts +323 -0
- package/src/postgres/plan/disruption.ts +52 -0
- package/src/postgres/plan/normalize.test.ts +148 -0
- package/src/postgres/plan/normalize.ts +542 -0
- package/src/postgres/plan/plan.e2e.test.ts +117 -0
- package/src/postgres/plan/plan.test.ts +244 -0
- package/src/postgres/plan/report.ts +24 -0
- package/src/postgres/plan/rules.ts +276 -0
- package/src/postgres/plan/schema.ts +114 -0
- package/src/postgres/plan/server-normalize.ts +123 -0
- package/src/postgres/providers/aurora.ts +45 -0
- package/src/postgres/providers/azure.ts +54 -0
- package/src/postgres/providers/cloud-sql.ts +42 -0
- package/src/postgres/providers/index.ts +90 -0
- package/src/postgres/providers/neon.ts +45 -0
- package/src/postgres/providers/providers.test.ts +136 -0
- package/src/postgres/providers/rds.ts +48 -0
- package/src/postgres/providers/supabase.ts +46 -0
- package/src/postgres/providers/types.ts +70 -0
- package/src/postgres/testdata/NOTICE +31 -0
- package/src/postgres/testdata/postgres-regress-corpus.json +460 -0
- package/src/postgres/testing/fake-client.ts +42 -0
- package/src/postgres/testing/migration.ts +52 -0
- package/src/postgres/testing/roundtrip-schema.ts +46 -0
- package/src/postgres/testing/server.ts +58 -0
- package/src/postgres/testing/writable-server.ts +188 -0
- package/src/postgres/tokens.ts +46 -0
- package/src/postgres.ts +75 -0
- package/src/serializer.test.ts +128 -0
- package/src/serializer.ts +148 -0
- package/src/skill-defs.test.ts +81 -0
- package/src/skill-defs.ts +102 -0
- package/src/skills/chant-sql-plan.md +123 -0
- package/src/skills/chant-sql-postgres-migration.md +126 -0
- package/src/skills/chant-sql-postgres-plan.md +194 -0
- package/src/skills/chant-sql-postgres.md +165 -0
- package/src/skills/chant-sql-rebuild.md +68 -0
- package/src/skills/chant-sql.md +123 -0
- package/src/spec/catalog.e2e.test.ts +29 -0
- package/src/spec/catalog.test.ts +56 -0
- package/src/spec/catalog.ts +311 -0
- package/src/spec/clickhouse-catalog.snapshot.json +5246 -0
- package/src/spec/fetch.test.ts +77 -0
- package/src/spec/fetch.ts +112 -0
- package/src/spec/pin.ts +47 -0
- package/src/spec/postgres-catalog-14.snapshot.json +3494 -0
- package/src/spec/postgres-catalog-15.snapshot.json +3529 -0
- package/src/spec/postgres-catalog-16.snapshot.json +3597 -0
- package/src/spec/postgres-catalog-17.snapshot.json +3656 -0
- package/src/spec/postgres-catalog-18.snapshot.json +3747 -0
- package/src/spec/postgres-catalog.test.ts +43 -0
- package/src/spec/postgres-catalog.ts +301 -0
- package/src/spec/postgres-fetch.test.ts +75 -0
- package/src/spec/postgres-fetch.ts +112 -0
- package/src/spec/postgres-pin.test.ts +64 -0
- package/src/spec/postgres-pin.ts +101 -0
- package/src/typecheck.test.ts +104 -0
- package/src/validate-cli.ts +6 -0
- package/src/validate.ts +149 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ClickHouse entities: `database`, `table` and `view` tagged templates that
|
|
3
|
+
* parse their DDL at fold time into one Declarable each (chant #3196, #3197).
|
|
4
|
+
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { table, view } from "@intentius/chant-lexicon-sql/clickhouse";
|
|
7
|
+
*
|
|
8
|
+
* export const events = table`
|
|
9
|
+
* CREATE TABLE events (user_id UUID, kind LowCardinality(String), ts DateTime)
|
|
10
|
+
* ENGINE = MergeTree ORDER BY (user_id, ts)`;
|
|
11
|
+
*
|
|
12
|
+
* export const activeUsers = view`
|
|
13
|
+
* CREATE MATERIALIZED VIEW active_users
|
|
14
|
+
* ENGINE = AggregatingMergeTree ORDER BY ${events.columns.user_id} AS
|
|
15
|
+
* SELECT ${events.columns.user_id}, count() AS n FROM ${events} GROUP BY ${events.columns.user_id}`;
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* The export name is the object's identity in chant; the name in the SQL is the
|
|
19
|
+
* object's name in the database.
|
|
20
|
+
*
|
|
21
|
+
* What an interpolation means is decided by its value:
|
|
22
|
+
*
|
|
23
|
+
* - a `table`, `view` or `database` entity is a reference to that object, and
|
|
24
|
+
* renders as its (database-qualified) name;
|
|
25
|
+
* - `entity.columns.<name>` is a reference to one column, and renders as the
|
|
26
|
+
* column's name;
|
|
27
|
+
* - a string is SQL text, spliced into the statement before it is parsed, so a
|
|
28
|
+
* composite can supply a name, a type, an engine or an expression;
|
|
29
|
+
* - a number or bigint is a numeric literal, a boolean `true`/`false`, `null`
|
|
30
|
+
* is `NULL`;
|
|
31
|
+
* - `literal(value)` is a quoted, escaped string literal, for the case where a
|
|
32
|
+
* string is meant as a value (`DEFAULT ${literal(plan)}`).
|
|
33
|
+
*
|
|
34
|
+
* Anything else, `undefined` included, is refused with the position it was
|
|
35
|
+
* interpolated at. `${events.user_id}` is `undefined` (columns are reached
|
|
36
|
+
* through `.columns`), and the refusal says so.
|
|
37
|
+
*/
|
|
38
|
+
import type { AttrRef } from "@intentius/chant/attrref";
|
|
39
|
+
import { type TemplateDialect } from "../core/interpolation.js";
|
|
40
|
+
import { SqlObject } from "../core/entity.js";
|
|
41
|
+
import type { LineageEdge } from "../core/references.js";
|
|
42
|
+
import { SqlLiteral } from "../core/template.js";
|
|
43
|
+
export { SQL_LEXICON } from "../core/entity.js";
|
|
44
|
+
export type { LineageEdge } from "../core/references.js";
|
|
45
|
+
export { SqlLiteral, SqlTemplateError, templateParts, unescapeTemplateDelimiters } from "../core/template.js";
|
|
46
|
+
export declare const CLICKHOUSE_ENTITY_TYPES: {
|
|
47
|
+
readonly database: "ClickHouse::Database";
|
|
48
|
+
readonly table: "ClickHouse::Table";
|
|
49
|
+
readonly view: "ClickHouse::View";
|
|
50
|
+
readonly materializedView: "ClickHouse::MaterializedView";
|
|
51
|
+
};
|
|
52
|
+
export type ClickHouseEntityType = (typeof CLICKHOUSE_ENTITY_TYPES)[keyof typeof CLICKHOUSE_ENTITY_TYPES];
|
|
53
|
+
/** A column of a table or view, as declared. Expressions are the source text with interpolations rendered. */
|
|
54
|
+
export interface ColumnDef {
|
|
55
|
+
name: string;
|
|
56
|
+
type?: string;
|
|
57
|
+
nullable?: boolean;
|
|
58
|
+
default?: {
|
|
59
|
+
kind: "DEFAULT" | "MATERIALIZED" | "ALIAS" | "EPHEMERAL";
|
|
60
|
+
expr?: string;
|
|
61
|
+
};
|
|
62
|
+
codec?: string;
|
|
63
|
+
ttl?: string;
|
|
64
|
+
comment?: string;
|
|
65
|
+
statistics?: string;
|
|
66
|
+
settings?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface EngineDef {
|
|
69
|
+
name: string;
|
|
70
|
+
/** Each argument's text, as written. Absent when the engine is written without parentheses. */
|
|
71
|
+
args?: string[];
|
|
72
|
+
}
|
|
73
|
+
interface StorageProps {
|
|
74
|
+
engine?: EngineDef;
|
|
75
|
+
orderBy?: string;
|
|
76
|
+
primaryKey?: string;
|
|
77
|
+
partitionBy?: string;
|
|
78
|
+
sampleBy?: string;
|
|
79
|
+
ttl?: string;
|
|
80
|
+
settings?: Record<string, string>;
|
|
81
|
+
}
|
|
82
|
+
interface CommonProps {
|
|
83
|
+
/** The object's name in the database, unquoted. */
|
|
84
|
+
name: string;
|
|
85
|
+
/** The database it is created in, when the DDL qualifies it. */
|
|
86
|
+
database?: string;
|
|
87
|
+
onCluster?: string;
|
|
88
|
+
comment?: string;
|
|
89
|
+
/** The statement as it will be sent: the author's text, interpolations rendered. */
|
|
90
|
+
ddl: string;
|
|
91
|
+
/** The template's raw parts, as written, for a source round trip. */
|
|
92
|
+
source: {
|
|
93
|
+
strings: string[];
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export interface DatabaseProps extends CommonProps {
|
|
97
|
+
engine?: EngineDef;
|
|
98
|
+
settings?: Record<string, string>;
|
|
99
|
+
}
|
|
100
|
+
export interface TableProps extends CommonProps, StorageProps {
|
|
101
|
+
columns: ColumnDef[];
|
|
102
|
+
indexes: Array<{
|
|
103
|
+
name: string;
|
|
104
|
+
expr: string;
|
|
105
|
+
type: string;
|
|
106
|
+
granularity?: string;
|
|
107
|
+
}>;
|
|
108
|
+
projections: Array<{
|
|
109
|
+
name: string;
|
|
110
|
+
definition: string;
|
|
111
|
+
}>;
|
|
112
|
+
constraints: Array<{
|
|
113
|
+
name: string;
|
|
114
|
+
kind: "CHECK" | "ASSUME";
|
|
115
|
+
expr: string;
|
|
116
|
+
}>;
|
|
117
|
+
orReplace?: boolean;
|
|
118
|
+
ifNotExists?: boolean;
|
|
119
|
+
}
|
|
120
|
+
export interface ViewProps extends CommonProps, StorageProps {
|
|
121
|
+
/** Declared output columns; empty when the view infers them from its SELECT. */
|
|
122
|
+
columns: ColumnDef[];
|
|
123
|
+
/** For a refreshable materialized view, the `REFRESH` clause. */
|
|
124
|
+
refresh?: string;
|
|
125
|
+
append?: boolean;
|
|
126
|
+
/** The target a materialized view writes into: the entity when it is declared, else its name. */
|
|
127
|
+
to?: ClickHouseObject | string;
|
|
128
|
+
populate?: boolean;
|
|
129
|
+
empty?: boolean;
|
|
130
|
+
security?: string;
|
|
131
|
+
select: string;
|
|
132
|
+
/** The tables and views the SELECT reads, as references. */
|
|
133
|
+
reads: ClickHouseObject[];
|
|
134
|
+
/** Per output column of the top-level select list, the columns it reads. */
|
|
135
|
+
lineage: LineageEdge[];
|
|
136
|
+
orReplace?: boolean;
|
|
137
|
+
ifNotExists?: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* A string as a quoted, escaped ClickHouse string literal. An interpolated
|
|
141
|
+
* plain string is SQL text; wrap it in `literal()` when it is a value.
|
|
142
|
+
*/
|
|
143
|
+
export declare function literal(value: string | number | boolean | null): SqlLiteral;
|
|
144
|
+
/** The members a ClickHouse entity has besides its props (the shared core's {@link SqlObject}). */
|
|
145
|
+
export declare abstract class ClickHouseObject extends SqlObject {
|
|
146
|
+
readonly entityType: ClickHouseEntityType;
|
|
147
|
+
/** The name the object is referred to by in SQL: `name`, or `database.name`. */
|
|
148
|
+
readonly sqlName: string;
|
|
149
|
+
}
|
|
150
|
+
export interface ClickHouseDatabase extends ClickHouseObject {
|
|
151
|
+
readonly entityType: "ClickHouse::Database";
|
|
152
|
+
readonly props: DatabaseProps;
|
|
153
|
+
}
|
|
154
|
+
/** A table or a view: something with columns that SQL can reference. */
|
|
155
|
+
export interface ClickHouseRelation extends ClickHouseObject {
|
|
156
|
+
/** One reference per column, by name: `${events.columns.user_id}`. */
|
|
157
|
+
readonly columns: Readonly<Record<string, AttrRef>>;
|
|
158
|
+
}
|
|
159
|
+
export interface ClickHouseTable extends ClickHouseRelation {
|
|
160
|
+
readonly entityType: "ClickHouse::Table";
|
|
161
|
+
readonly props: TableProps;
|
|
162
|
+
}
|
|
163
|
+
export interface ClickHouseView extends ClickHouseRelation {
|
|
164
|
+
readonly entityType: "ClickHouse::View" | "ClickHouse::MaterializedView";
|
|
165
|
+
readonly props: ViewProps;
|
|
166
|
+
}
|
|
167
|
+
export declare function isClickHouseObject(value: unknown): value is ClickHouseObject;
|
|
168
|
+
/** A column reference: an AttrRef whose parent is a ClickHouse table or view. */
|
|
169
|
+
export declare function isColumnRef(value: unknown): value is AttrRef;
|
|
170
|
+
/** A name as ClickHouse reads it: bare when it is a plain identifier, backquoted otherwise. */
|
|
171
|
+
export declare function quoteIdentifier(name: string): string;
|
|
172
|
+
/** ClickHouse as the shared template machinery reads it (`../core/interpolation.ts`). */
|
|
173
|
+
export declare const CLICKHOUSE_TEMPLATES: TemplateDialect;
|
|
174
|
+
/** `` database`CREATE DATABASE ...` ``: one ClickHouse database, parsed at build time. */
|
|
175
|
+
export declare function database(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseDatabase;
|
|
176
|
+
/** `` table`CREATE TABLE ...` ``: one ClickHouse table, parsed at build time. */
|
|
177
|
+
export declare function table(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseTable;
|
|
178
|
+
/**
|
|
179
|
+
* `` view`CREATE [MATERIALIZED] VIEW ...` ``: one view or materialized view,
|
|
180
|
+
* with the tables it reads and its column lineage.
|
|
181
|
+
*/
|
|
182
|
+
export declare function view(strings: TemplateStringsArray, ...values: unknown[]): ClickHouseView;
|
|
183
|
+
//# sourceMappingURL=entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/clickhouse/entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The smallest ClickHouse client chant needs: one SQL statement over the HTTP
|
|
3
|
+
* interface, rows back as JSON objects.
|
|
4
|
+
*
|
|
5
|
+
* No driver dependency. ClickHouse's HTTP interface takes the statement as the
|
|
6
|
+
* request body and `default_format=JSONEachRow` returns one JSON object per
|
|
7
|
+
* line, which is all generation (and, later, observation and import) reads.
|
|
8
|
+
*/
|
|
9
|
+
/** Where a server answers, and as whom. */
|
|
10
|
+
export interface ClickHouseEndpoint {
|
|
11
|
+
/** Base URL of the HTTP interface, e.g. `http://127.0.0.1:8123`. */
|
|
12
|
+
url: string;
|
|
13
|
+
user?: string;
|
|
14
|
+
password?: string;
|
|
15
|
+
}
|
|
16
|
+
/** A query the server refused, with the server's own message. */
|
|
17
|
+
export declare class ClickHouseQueryError extends Error {
|
|
18
|
+
readonly status: number;
|
|
19
|
+
readonly serverMessage: string;
|
|
20
|
+
readonly sql: string;
|
|
21
|
+
constructor(status: number, serverMessage: string, sql: string);
|
|
22
|
+
}
|
|
23
|
+
/** Per-query options. */
|
|
24
|
+
export interface QueryOptions {
|
|
25
|
+
/**
|
|
26
|
+
* The query's id on the server (`system.processes`, `KILL QUERY`). The
|
|
27
|
+
* server refuses a second query with an id that is still running, which is
|
|
28
|
+
* what a caller that must never run one statement twice at once relies on.
|
|
29
|
+
*/
|
|
30
|
+
queryId?: string;
|
|
31
|
+
/** Server settings for this query alone, e.g. `{ mutations_sync: "2" }`. */
|
|
32
|
+
settings?: Record<string, string>;
|
|
33
|
+
/** Abandons the request. The server may go on running a statement it already started. */
|
|
34
|
+
signal?: AbortSignal;
|
|
35
|
+
}
|
|
36
|
+
/** Run one statement and return its rows. A statement that returns nothing yields `[]`. */
|
|
37
|
+
export declare function clickhouseQuery<Row = Record<string, unknown>>(endpoint: ClickHouseEndpoint, sql: string, opts?: QueryOptions): Promise<Row[]>;
|
|
38
|
+
/** True when the server answers `/ping`. */
|
|
39
|
+
export declare function clickhousePing(endpoint: ClickHouseEndpoint): Promise<boolean>;
|
|
40
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/clickhouse/http.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iEAAiE;AACjE,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAFX,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM;CAKvB;AAED,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,yFAAyF;IACzF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,2FAA2F;AAC3F,wBAAsB,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,GAAG,EAAE,CAAC,CAiBhB;AAED,4CAA4C;AAC5C,wBAAsB,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The import IR as TypeScript: one `schema.ts` holding every imported
|
|
3
|
+
* object as a `database`, `table` or `view` declaration, in dependency order,
|
|
4
|
+
* with references between them interpolated. One file because the references
|
|
5
|
+
* cross databases freely, and declarations in one file reference each other
|
|
6
|
+
* without import cycles.
|
|
7
|
+
*/
|
|
8
|
+
import type { GeneratedFile, TypeScriptGenerator } from "@intentius/chant/import/generator";
|
|
9
|
+
import type { TemplateIR } from "@intentius/chant/import/parser";
|
|
10
|
+
export declare class ClickHouseGenerator implements TypeScriptGenerator {
|
|
11
|
+
private readonly header?;
|
|
12
|
+
readonly ownsLayout = true;
|
|
13
|
+
constructor(header?: string | undefined);
|
|
14
|
+
generate(ir: TemplateIR): GeneratedFile[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AA2FjE,qBAAa,mBAAoB,YAAW,mBAAmB;IAGjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAFpC,QAAQ,CAAC,UAAU,QAAQ;gBAEE,MAAM,CAAC,EAAE,MAAM,YAAA;IAE5C,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,aAAa,EAAE;CA+C1C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickHouse DDL into the import IR, and back out as `database`, `table` and
|
|
3
|
+
* `view` declarations.
|
|
4
|
+
*
|
|
5
|
+
* `chant import --from <env>` reads each object's `SHOW CREATE` and `chant
|
|
6
|
+
* import schema.sql` reads a file of CREATE statements; both arrive here as
|
|
7
|
+
* statements. The generated declaration is the statement itself, the
|
|
8
|
+
* server's canonical form when it came from a server (#3046 question 5), with
|
|
9
|
+
* two changes:
|
|
10
|
+
*
|
|
11
|
+
* - a qualified name of another imported object becomes a reference to its
|
|
12
|
+
* export (`FROM analytics.events` is `FROM ${events}`), and the database
|
|
13
|
+
* part of an object's own name becomes a reference to the database's export,
|
|
14
|
+
* so dependency order survives the import;
|
|
15
|
+
* - a backquoted identifier that needs no quoting is written bare, and one that
|
|
16
|
+
* does is double-quoted, so the template has no backquotes to escape.
|
|
17
|
+
*
|
|
18
|
+
* Columns written by name inside a view's SELECT stay text: which table a
|
|
19
|
+
* bare name belongs to is the server's to resolve, and a guess would be
|
|
20
|
+
* wrong lineage. An imported view therefore records its reads, not its column
|
|
21
|
+
* lineage, until its column references are written as `${t.columns.c}`.
|
|
22
|
+
*/
|
|
23
|
+
import type { TemplateIR } from "@intentius/chant/import/parser";
|
|
24
|
+
import { type ClickHouseEntityType } from "../entities.js";
|
|
25
|
+
export interface ImportedObject {
|
|
26
|
+
type: ClickHouseEntityType;
|
|
27
|
+
database?: string;
|
|
28
|
+
name: string;
|
|
29
|
+
/** The CREATE statement. */
|
|
30
|
+
ddl: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Export names for a set of objects. A table or view is its name in camel
|
|
34
|
+
* case, prefixed with its database when two databases share a name; a
|
|
35
|
+
* database is its name with `Db` after it, so `analytics` the database and
|
|
36
|
+
* `analytics` a table do not collide.
|
|
37
|
+
*/
|
|
38
|
+
export declare function exportNames(objects: readonly ImportedObject[]): string[];
|
|
39
|
+
/** Split a file of statements on top-level `;`. */
|
|
40
|
+
export declare function splitStatements(text: string): string[];
|
|
41
|
+
/** Read a statement's kind and name. Throws the parser's error when it does not parse. */
|
|
42
|
+
export declare function describeStatement(ddl: string): ImportedObject;
|
|
43
|
+
/**
|
|
44
|
+
* Leave out what the server adds and the declaration would not say: settings
|
|
45
|
+
* at the pinned server's default (`index_granularity = 8192`), and a view's
|
|
46
|
+
* column list, which the server infers from the SELECT. A server re-adds both
|
|
47
|
+
* on create, so the stripped statement creates the same object.
|
|
48
|
+
*/
|
|
49
|
+
export declare function stripServerDefaults(ddl: string): string;
|
|
50
|
+
/** The IR for a set of objects. */
|
|
51
|
+
export declare function objectsToIR(objects: readonly ImportedObject[], warnings?: string[]): TemplateIR;
|
|
52
|
+
//# sourceMappingURL=ir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/ir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAeD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAkBxE;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CActD;AAmBD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoCvD;AAED,mCAAmC;AACnC,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,UAAU,CAQnG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live export: `chant import --from <env>` writes the server's schema as
|
|
3
|
+
* `database`, `table` and `view` declarations.
|
|
4
|
+
*
|
|
5
|
+
* Every object in the environment's databases is read with `SHOW CREATE`, the
|
|
6
|
+
* server's canonical form, which is the baseline #3046 question 5 asks for.
|
|
7
|
+
* By default what the server adds on its own is left out (settings at their
|
|
8
|
+
* default, a view's inferred column list), so the declaration says what an
|
|
9
|
+
* author would; `verbatim` keeps the statement as the server printed it.
|
|
10
|
+
*
|
|
11
|
+
* - `selector.type` is an entity type (`ClickHouse::Table`); `selector.name` is
|
|
12
|
+
* an object name, `db.name` or `name`.
|
|
13
|
+
* - `owned` keeps the objects whose comment carries chant's ownership marker
|
|
14
|
+
* (`../ownership.ts`), the trailer the applier stamps. The trailer itself is
|
|
15
|
+
* never written into a declaration: `readLiveSchema` takes it off.
|
|
16
|
+
*/
|
|
17
|
+
import type { ExportedTemplate, ResourceSelector } from "@intentius/chant/lexicon";
|
|
18
|
+
import { type BindOptions } from "../live/bind.js";
|
|
19
|
+
export interface ExportOptions extends Omit<BindOptions, "environment"> {
|
|
20
|
+
environment: string;
|
|
21
|
+
stack?: string;
|
|
22
|
+
region?: string;
|
|
23
|
+
selector?: ResourceSelector;
|
|
24
|
+
owned?: boolean;
|
|
25
|
+
verbatim?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function exportResources(options: ExportOptions): Promise<ExportedTemplate>;
|
|
28
|
+
//# sourceMappingURL=live-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-export.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/live-export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoBvF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `chant import schema.sql`: a file of ClickHouse CREATE statements into the
|
|
3
|
+
* import IR. Each statement must parse; one that does not is reported in the
|
|
4
|
+
* IR's warnings and left out, with the parser's message.
|
|
5
|
+
*/
|
|
6
|
+
import type { TemplateIR, TemplateParser } from "@intentius/chant/import/parser";
|
|
7
|
+
export declare class ClickHouseSqlParser implements TemplateParser {
|
|
8
|
+
parse(content: string): TemplateIR;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/import/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGjF,qBAAa,mBAAoB,YAAW,cAAc;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;CAgBnC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which ClickHouse server a chant environment reads: the config lookup and
|
|
3
|
+
* the binding, shared by observation and live export so both read the same
|
|
4
|
+
* server.
|
|
5
|
+
*/
|
|
6
|
+
import type { ChantConfig } from "@intentius/chant/config";
|
|
7
|
+
import type { UnobservedReason } from "@intentius/chant/observation";
|
|
8
|
+
import { type ClickHouseEndpoint } from "../http.js";
|
|
9
|
+
export interface ClickHouseTarget {
|
|
10
|
+
endpoint: ClickHouseEndpoint;
|
|
11
|
+
/** Where the binding came from: `sql.profiles.prod` or `env CLICKHOUSE_URL`. */
|
|
12
|
+
source: string;
|
|
13
|
+
/** The databases in scope; undefined is every database but the server's own. */
|
|
14
|
+
databases?: string[];
|
|
15
|
+
defaultDatabase: string;
|
|
16
|
+
}
|
|
17
|
+
export interface UnresolvedTarget {
|
|
18
|
+
reason: "no-binding" | "no-credentials";
|
|
19
|
+
detail: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const isUnresolvedTarget: (v: ClickHouseTarget | UnresolvedTarget) => v is UnresolvedTarget;
|
|
22
|
+
/**
|
|
23
|
+
* The server an environment reads. Pure: `config` and `env` are passed in.
|
|
24
|
+
*
|
|
25
|
+
* 1. `sql.profiles.<environment>`. A profile naming a credential variable that
|
|
26
|
+
* is not set is `no-credentials`: the profile said how to authenticate.
|
|
27
|
+
* 2. `CLICKHOUSE_URL`, with `CLICKHOUSE_USER` and `CLICKHOUSE_PASSWORD` when set.
|
|
28
|
+
* 3. Otherwise `no-binding`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveClickHouseTarget(input: {
|
|
31
|
+
environment?: string;
|
|
32
|
+
config?: Pick<ChantConfig, "sql">;
|
|
33
|
+
env?: Record<string, string | undefined>;
|
|
34
|
+
}): ClickHouseTarget | UnresolvedTarget;
|
|
35
|
+
/** A target that could not be resolved. */
|
|
36
|
+
export declare class ClickHouseBindingError extends Error {
|
|
37
|
+
readonly unresolved: UnresolvedTarget;
|
|
38
|
+
constructor(unresolved: UnresolvedTarget);
|
|
39
|
+
}
|
|
40
|
+
export interface BindOptions {
|
|
41
|
+
environment?: string;
|
|
42
|
+
/** The project's config; loaded from `cwd` when omitted. */
|
|
43
|
+
config?: Pick<ChantConfig, "sql">;
|
|
44
|
+
cwd?: string;
|
|
45
|
+
env?: Record<string, string | undefined>;
|
|
46
|
+
}
|
|
47
|
+
/** Resolve the environment's server. Throws {@link ClickHouseBindingError} when there is none. */
|
|
48
|
+
export declare function bindClickHouse(options?: BindOptions): Promise<ClickHouseTarget>;
|
|
49
|
+
/** What a failed bind or read means, in the observation vocabulary. */
|
|
50
|
+
export declare function classifyClickHouseFailure(err: unknown): {
|
|
51
|
+
reason: UnobservedReason;
|
|
52
|
+
detail: string;
|
|
53
|
+
};
|
|
54
|
+
/** `SELECT version()` on the target. */
|
|
55
|
+
export declare function serverVersion(target: ClickHouseTarget): Promise<string>;
|
|
56
|
+
//# sourceMappingURL=bind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/bind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,gBAAgB,GAAG,gBAAgB,KAAG,CAAC,IAAI,gBAAiC,CAAC;AAEnH;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,gBAAgB,GAAG,gBAAgB,CAkCtC;AAED,2CAA2C;AAC3C,qBAAa,sBAAuB,SAAQ,KAAK;IACnC,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAA5B,UAAU,EAAE,gBAAgB;CAIlD;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AAYD,kGAAkG;AAClG,wBAAsB,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAKzF;AAED,uEAAuE;AACvE,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAUpG;AAED,wCAAwC;AACxC,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading a live server's schema: the databases and the tables, views and
|
|
3
|
+
* materialized views in them, from `system.databases`, `system.tables` and
|
|
4
|
+
* `SHOW CREATE`.
|
|
5
|
+
*/
|
|
6
|
+
import type { ClickHouseTarget } from "./bind.js";
|
|
7
|
+
import { type ClickHouseEntityType } from "../entities.js";
|
|
8
|
+
/** The server's own databases, never part of a declared schema. */
|
|
9
|
+
export declare const SYSTEM_DATABASES: Set<string>;
|
|
10
|
+
export interface LiveObject {
|
|
11
|
+
type: ClickHouseEntityType;
|
|
12
|
+
database?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
/** The engine `system.tables` / `system.databases` report: `MergeTree`, `View`, `MaterializedView`, `Atomic`. */
|
|
15
|
+
engine: string;
|
|
16
|
+
uuid?: string;
|
|
17
|
+
/** The object's comment as the server holds it, chant's ownership trailer included (`../ownership.ts`). */
|
|
18
|
+
comment?: string;
|
|
19
|
+
/** `SHOW CREATE` as the server prints it, less chant's ownership trailer, so it reads as the declaration. */
|
|
20
|
+
statement: string;
|
|
21
|
+
}
|
|
22
|
+
/** The entity type a `system.tables` engine stands for. */
|
|
23
|
+
export declare function entityTypeOfEngine(engine: string): ClickHouseEntityType;
|
|
24
|
+
/**
|
|
25
|
+
* Every object in the target's databases, sorted by database then name.
|
|
26
|
+
* A materialized view's inner table (`.inner_id.<uuid>`, `.inner.<name>`)
|
|
27
|
+
* belongs to its view and is left out, as are temporary tables and
|
|
28
|
+
* dictionaries (not declared in slice 1).
|
|
29
|
+
*
|
|
30
|
+
* So are chant's own working objects (`../ownership.ts`
|
|
31
|
+
* `isChantWorkingObject`): a rebuild migration's new, dual-write and retained
|
|
32
|
+
* tables, and the effect receipts database. None of them is a declaration, so
|
|
33
|
+
* a plan, an import or a prune that saw them would propose dropping, importing
|
|
34
|
+
* or pruning the very objects a rebuild in progress depends on.
|
|
35
|
+
*/
|
|
36
|
+
export declare function readLiveSchema(target: ClickHouseTarget, opts?: {
|
|
37
|
+
withStatements?: boolean;
|
|
38
|
+
}): Promise<LiveObject[]>;
|
|
39
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGjF,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,aAAkE,CAAC;AAEhG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iHAAiH;IACjH,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAIvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA8C7H"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `describeResources()` for the ClickHouse dialect: which declared databases,
|
|
3
|
+
* tables and views exist on the environment's server.
|
|
4
|
+
*
|
|
5
|
+
* One read of `system.databases` and `system.tables` per run, then a lookup
|
|
6
|
+
* per declared entity, so N entities are two queries, not N. An object the
|
|
7
|
+
* catalog does not list is absent, and the `queried` address says which
|
|
8
|
+
* server and name were asked. A server that cannot be reached, or refuses the
|
|
9
|
+
* credentials, leaves every entity unobserved with that reason: never absent.
|
|
10
|
+
*
|
|
11
|
+
* Ownership is read from chant's marker, the trailer the applier appends to
|
|
12
|
+
* the object's comment (`../ownership.ts`): `owned` when the comment carries
|
|
13
|
+
* it, `foreign` when it does not. With `owned: true` a foreign object is
|
|
14
|
+
* withheld as `filtered`, which says it exists and is not chant's, never that
|
|
15
|
+
* it is absent.
|
|
16
|
+
*/
|
|
17
|
+
import { type DeclaredEntity, type DescribeResourcesResult } from "@intentius/chant/observation";
|
|
18
|
+
import { type BindOptions } from "./bind.js";
|
|
19
|
+
/** The database and name a declared entity is created as. */
|
|
20
|
+
export declare function declaredAddress(entity: DeclaredEntity, defaultDatabase: string): {
|
|
21
|
+
database?: string;
|
|
22
|
+
name: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function describeResources(options: {
|
|
25
|
+
environment: string;
|
|
26
|
+
entityNames: string[];
|
|
27
|
+
entities: Map<string, {
|
|
28
|
+
entityType: string;
|
|
29
|
+
props: Record<string, unknown>;
|
|
30
|
+
}>;
|
|
31
|
+
/** Withhold objects that do not carry chant's ownership marker. */
|
|
32
|
+
owned?: boolean;
|
|
33
|
+
} & Omit<BindOptions, "environment">): Promise<DescribeResourcesResult>;
|
|
34
|
+
//# sourceMappingURL=describe-resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/live/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAG7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAA6C,KAAK,WAAW,EAAyB,MAAM,QAAQ,CAAC;AAY5G,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAIpH;AA0CD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GACnC,OAAO,CAAC,uBAAuB,CAAC,CAMlC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codec parameters and chaining: the overlay half.
|
|
3
|
+
*
|
|
4
|
+
* `system.codecs` gives the 17 names and their flags (compression, generic,
|
|
5
|
+
* encryption, time series, experimental). The parameters (`ZSTD(level)`,
|
|
6
|
+
* `Delta(bytes)`) and the order a chain like `CODEC(Delta, ZSTD(3))` must
|
|
7
|
+
* follow are in no table.
|
|
8
|
+
*
|
|
9
|
+
* Every codec at the pin has an entry, and generation fails when one does not,
|
|
10
|
+
* so a codec a pin move adds is a decision rather than a silent `string`.
|
|
11
|
+
* `"unknown"` is that decision for the experimental codecs whose parameters
|
|
12
|
+
* are not documented: they are accepted as written and not checked.
|
|
13
|
+
*/
|
|
14
|
+
import type { ArgumentOverlay } from "./kinds.js";
|
|
15
|
+
export interface CodecOverlay {
|
|
16
|
+
/** Positional parameters, all optional unless marked otherwise; `"unknown"` when undocumented. */
|
|
17
|
+
parameters: readonly (ArgumentOverlay & {
|
|
18
|
+
name: string;
|
|
19
|
+
})[] | "unknown";
|
|
20
|
+
/**
|
|
21
|
+
* Where the codec sits in a chain. A `preprocessing` codec transforms values
|
|
22
|
+
* for the compression codec that must follow it; `encryption` comes last;
|
|
23
|
+
* `internal` is never written by hand.
|
|
24
|
+
*/
|
|
25
|
+
role: "preprocessing" | "compression" | "encryption" | "none" | "internal";
|
|
26
|
+
}
|
|
27
|
+
export declare const CODEC_OVERLAY: Record<string, CodecOverlay>;
|
|
28
|
+
//# sourceMappingURL=codecs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/overlays/codecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,kGAAkG;IAClG,UAAU,EAAE,SAAS,CAAC,eAAe,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IACxE;;;;OAIG;IACH,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;CAC5E;AASD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAiCtD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine arguments: the overlay half (chant #3195).
|
|
3
|
+
*
|
|
4
|
+
* The generator reads each engine's argument names, positions and optionality
|
|
5
|
+
* from the server's `syntax` line (`engine-syntax.ts`). This table adds what
|
|
6
|
+
* that line cannot say: whether `ver` is a column, `cluster` a name, `min_time`
|
|
7
|
+
* a number. Keys are the argument names exactly as the syntax line spells
|
|
8
|
+
* them, and generation fails when one no longer appears there, so a pin move
|
|
9
|
+
* that renames or drops an argument is caught rather than mistyped.
|
|
10
|
+
*
|
|
11
|
+
* Covered: the MergeTree family and its Replicated twins, and the engines a
|
|
12
|
+
* schema commonly declares beside them (Distributed, Buffer, Join, Merge,
|
|
13
|
+
* Dictionary, File, URL, Alias, KeeperMap, EmbeddedRocksDB, GenerateRandom).
|
|
14
|
+
* Integration engines (S3, Kafka, the lake engines, the database bridges) keep
|
|
15
|
+
* their arguments untyped: they are connection strings and credentials, which
|
|
16
|
+
* lint has no business guessing at.
|
|
17
|
+
*/
|
|
18
|
+
import type { ArgumentOverlay } from "./kinds.js";
|
|
19
|
+
export declare const ENGINE_ARGUMENTS: Record<string, Record<string, ArgumentOverlay>>;
|
|
20
|
+
//# sourceMappingURL=engines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/overlays/engines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmB/C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAsE5E,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What kind of value an argument or parameter takes. The catalog names an
|
|
3
|
+
* argument (`ver`, `cluster`); it never says whether `ver` is a column and
|
|
4
|
+
* `cluster` a name, which is what these say.
|
|
5
|
+
*/
|
|
6
|
+
export type ArgumentKind =
|
|
7
|
+
/** One column of the table, by name. */
|
|
8
|
+
"column"
|
|
9
|
+
/** A column, or a tuple of columns. */
|
|
10
|
+
| "columns"
|
|
11
|
+
/** Any expression over the table's columns. */
|
|
12
|
+
| "expression"
|
|
13
|
+
/** A database, table, cluster or dictionary name. */
|
|
14
|
+
| "identifier"
|
|
15
|
+
/** A string literal. */
|
|
16
|
+
| "string"
|
|
17
|
+
/** A numeric literal. */
|
|
18
|
+
| "number"
|
|
19
|
+
/** A bare keyword from a fixed set (`values`). */
|
|
20
|
+
| "keyword"
|
|
21
|
+
/** A column type (`Nullable(T)`'s `T`). */
|
|
22
|
+
| "type"
|
|
23
|
+
/** An aggregate function name with its parameters (`AggregateFunction(uniq, UUID)`'s `uniq`). */
|
|
24
|
+
| "function"
|
|
25
|
+
/** A codec, as written inside `CODEC(...)`. */
|
|
26
|
+
| "codec";
|
|
27
|
+
export interface ArgumentOverlay {
|
|
28
|
+
kind: ArgumentKind;
|
|
29
|
+
/** Overrides the syntax line's optionality, with `note` saying why. */
|
|
30
|
+
optional?: boolean;
|
|
31
|
+
/** The legal values of a `keyword`. */
|
|
32
|
+
values?: readonly string[];
|
|
33
|
+
/** The inclusive range of a `number`. */
|
|
34
|
+
range?: readonly [number, number];
|
|
35
|
+
/** Where the overlay knows something the syntax line does not. */
|
|
36
|
+
note?: string;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=kinds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../../../src/clickhouse/overlays/kinds.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,YAAY;AACtB,wCAAwC;AACtC,QAAQ;AACV,uCAAuC;GACrC,SAAS;AACX,+CAA+C;GAC7C,YAAY;AACd,qDAAqD;GACnD,YAAY;AACd,wBAAwB;GACtB,QAAQ;AACV,yBAAyB;GACvB,QAAQ;AACV,kDAAkD;GAChD,SAAS;AACX,2CAA2C;GACzC,MAAM;AACR,iGAAiG;GAC/F,UAAU;AACZ,+CAA+C;GAC7C,OAAO,CAAC;AAEZ,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,yCAAyC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projections: the overlay half.
|
|
3
|
+
*
|
|
4
|
+
* `system.table_engines.supports_projections` says which engines accept a
|
|
5
|
+
* projection, and is generated. The projection's own grammar is fixed and in
|
|
6
|
+
* no table: a name and a parenthesised query over the table, either a
|
|
7
|
+
* reordering (`SELECT * ORDER BY x`) or an aggregation (`SELECT k, sum(v)
|
|
8
|
+
* GROUP BY k`). `system.projections` is runtime state, not grammar.
|
|
9
|
+
*
|
|
10
|
+
* PROJECTION name (SELECT <columns or *> [GROUP BY ...] [ORDER BY ...])
|
|
11
|
+
*/
|
|
12
|
+
export interface ProjectionForm {
|
|
13
|
+
form: "normal" | "aggregate";
|
|
14
|
+
/** The clause that makes a projection this form. */
|
|
15
|
+
marker: "ORDER BY" | "GROUP BY";
|
|
16
|
+
summary: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const PROJECTION_FORMS: readonly ProjectionForm[];
|
|
19
|
+
/**
|
|
20
|
+
* MergeTree settings that decide what a mutation or deduplicating merge does to
|
|
21
|
+
* a table with projections. Changing either is metadata only; leaving them at
|
|
22
|
+
* their defaults makes `ALTER ... UPDATE` on such a table an error.
|
|
23
|
+
*/
|
|
24
|
+
export declare const PROJECTION_SETTINGS: readonly string[];
|
|
25
|
+
/** Clauses a projection's query may not carry. */
|
|
26
|
+
export declare const PROJECTION_FORBIDDEN_CLAUSES: readonly string[];
|
|
27
|
+
//# sourceMappingURL=projections.d.ts.map
|