@intentius/chant-lexicon-sql 0.124.46 → 0.124.49
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/dist/change-set.d.ts +1 -1
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +2 -1
- package/dist/clickhouse/apply/statements.d.ts +9 -0
- package/dist/clickhouse/apply/statements.d.ts.map +1 -1
- package/dist/clickhouse/apply/statements.js +24 -0
- package/dist/clickhouse/import/live-export.d.ts +7 -3
- package/dist/clickhouse/import/live-export.d.ts.map +1 -1
- package/dist/clickhouse/import/live-export.js +21 -5
- package/dist/clickhouse/live/named-collections.d.ts +27 -0
- package/dist/clickhouse/live/named-collections.d.ts.map +1 -0
- package/dist/clickhouse/live/named-collections.js +53 -0
- package/dist/clickhouse/live/undeclarable.d.ts +15 -3
- package/dist/clickhouse/live/undeclarable.d.ts.map +1 -1
- package/dist/clickhouse/live/undeclarable.js +18 -4
- package/dist/clickhouse/named-collections.d.ts +83 -0
- package/dist/clickhouse/named-collections.d.ts.map +1 -0
- package/dist/clickhouse/named-collections.js +203 -0
- package/dist/clickhouse/parser.d.ts.map +1 -1
- package/dist/clickhouse/parser.js +1 -1
- package/dist/clickhouse/plan/commands.d.ts +2 -1
- package/dist/clickhouse/plan/commands.d.ts.map +1 -1
- package/dist/clickhouse/plan/commands.js +17 -2
- package/dist/clickhouse/plan/diff.d.ts +15 -0
- package/dist/clickhouse/plan/diff.d.ts.map +1 -1
- package/dist/clickhouse/plan/diff.js +43 -1
- package/dist/clickhouse/plan/disruption.d.ts.map +1 -1
- package/dist/clickhouse/plan/disruption.js +5 -0
- package/dist/clickhouse/plan/rebuild-handoff.d.ts.map +1 -1
- package/dist/clickhouse/plan/rebuild-handoff.js +4 -0
- package/dist/clickhouse/plan/report.d.ts.map +1 -1
- package/dist/clickhouse/plan/report.js +6 -1
- package/dist/clickhouse/plan/rules.d.ts +5 -1
- package/dist/clickhouse/plan/rules.d.ts.map +1 -1
- package/dist/clickhouse/plan/rules.js +7 -3
- package/dist/clickhouse/plan/statements.d.ts +29 -0
- package/dist/clickhouse/plan/statements.d.ts.map +1 -0
- package/dist/clickhouse/plan/statements.js +334 -0
- package/dist/clickhouse/plan/stream.d.ts +40 -0
- package/dist/clickhouse/plan/stream.d.ts.map +1 -0
- package/dist/clickhouse/plan/stream.js +107 -0
- package/dist/clickhouse/rebuild/observe.d.ts +3 -1
- package/dist/clickhouse/rebuild/observe.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/observe.js +14 -1
- package/dist/clickhouse/review-catalog.d.ts +213 -0
- package/dist/clickhouse/review-catalog.d.ts.map +1 -0
- package/dist/clickhouse/review-catalog.js +330 -0
- package/dist/codegen/classifier-page.d.ts.map +1 -1
- package/dist/codegen/classifier-page.js +44 -4
- package/dist/codegen/clickhouse-module.d.ts.map +1 -1
- package/dist/codegen/clickhouse-module.js +3 -0
- package/dist/codegen/coverage-page.d.ts.map +1 -1
- package/dist/codegen/coverage-page.js +5 -3
- package/dist/codegen/docs.js +1 -1
- package/dist/codegen/postgres-classifier-page.js +2 -2
- package/dist/codegen/registry.d.ts.map +1 -1
- package/dist/codegen/registry.js +10 -0
- package/dist/composites/catalog.d.ts.map +1 -1
- package/dist/composites/catalog.js +100 -0
- package/dist/composites/clickhouse.d.ts +2 -0
- package/dist/composites/clickhouse.d.ts.map +1 -1
- package/dist/composites/clickhouse.js +2 -0
- package/dist/composites/otel-tables.d.ts +100 -0
- package/dist/composites/otel-tables.d.ts.map +1 -0
- package/dist/composites/otel-tables.js +282 -0
- package/dist/composites/stream-ingest.d.ts +63 -0
- package/dist/composites/stream-ingest.d.ts.map +1 -0
- package/dist/composites/stream-ingest.js +39 -0
- package/dist/core/statement-class.d.ts +55 -0
- package/dist/core/statement-class.d.ts.map +1 -0
- package/dist/core/statement-class.js +43 -0
- package/dist/coverage/clickhouse.json +1 -1
- package/dist/coverage/postgres.json +12 -12
- package/dist/coverage.d.ts +16 -6
- package/dist/coverage.d.ts.map +1 -1
- package/dist/coverage.js +10 -5
- package/dist/drizzle-command.d.ts +17 -0
- package/dist/drizzle-command.d.ts.map +1 -0
- package/dist/drizzle-command.js +91 -0
- package/dist/drizzle.d.ts +70 -0
- package/dist/drizzle.d.ts.map +1 -0
- package/dist/drizzle.js +689 -0
- package/dist/files/clickhouse.d.ts.map +1 -1
- package/dist/files/clickhouse.js +8 -1
- package/dist/files/common.d.ts +13 -0
- package/dist/files/common.d.ts.map +1 -1
- package/dist/files/common.js +5 -0
- package/dist/files/postgres.d.ts.map +1 -1
- package/dist/files/postgres.js +35 -3
- package/dist/generated/clickhouse.d.ts +2 -0
- package/dist/generated/clickhouse.d.ts.map +1 -1
- package/dist/generated/clickhouse.js +2 -0
- package/dist/import-parser.d.ts +21 -1
- package/dist/import-parser.d.ts.map +1 -1
- package/dist/import-parser.js +79 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/integrity.json +7 -6
- package/dist/lint/post-synth/audit-entries.d.ts.map +1 -1
- package/dist/lint/post-synth/audit-entries.js +1 -0
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/post-synth/index.js +2 -0
- package/dist/lint/post-synth/postgres-names.d.ts.map +1 -1
- package/dist/lint/post-synth/postgres-names.js +3 -0
- package/dist/lint/post-synth/sqlch128.d.ts +18 -0
- package/dist/lint/post-synth/sqlch128.d.ts.map +1 -0
- package/dist/lint/post-synth/sqlch128.js +222 -0
- package/dist/lint/rules/postgres-templates.js +2 -2
- package/dist/lsp/postgres-template.d.ts.map +1 -1
- package/dist/lsp/postgres-template.js +21 -0
- package/dist/manifest.json +1 -1
- package/dist/mcp/postgres.js +1 -1
- package/dist/meta.json +50 -0
- package/dist/migrate/from-postgres/detect.d.ts +4 -0
- package/dist/migrate/from-postgres/detect.d.ts.map +1 -0
- package/dist/migrate/from-postgres/detect.js +7 -0
- package/dist/migrate/from-postgres/emit.d.ts +26 -0
- package/dist/migrate/from-postgres/emit.d.ts.map +1 -0
- package/dist/migrate/from-postgres/emit.js +86 -0
- package/dist/migrate/from-postgres/index.d.ts +51 -0
- package/dist/migrate/from-postgres/index.d.ts.map +1 -0
- package/dist/migrate/from-postgres/index.js +115 -0
- package/dist/migrate/from-postgres/translate.d.ts +73 -0
- package/dist/migrate/from-postgres/translate.d.ts.map +1 -0
- package/dist/migrate/from-postgres/translate.js +261 -0
- package/dist/migrate/from-postgres/types.d.ts +51 -0
- package/dist/migrate/from-postgres/types.d.ts.map +1 -0
- package/dist/migrate/from-postgres/types.js +211 -0
- package/dist/migration-classify.d.ts +23 -0
- package/dist/migration-classify.d.ts.map +1 -0
- package/dist/migration-classify.js +44 -0
- package/dist/migration-replay.d.ts +73 -0
- package/dist/migration-replay.d.ts.map +1 -0
- package/dist/migration-replay.js +294 -0
- package/dist/okf/index.md +11 -0
- package/dist/okf/rules/SQLCH128.md +11 -0
- package/dist/okf/types/PostgresForeignDataWrapper.md +9 -0
- package/dist/okf/types/PostgresForeignServer.md +9 -0
- package/dist/okf/types/PostgresForeignTable.md +9 -0
- package/dist/okf/types/PostgresOperator.md +9 -0
- package/dist/okf/types/PostgresOperatorClass.md +9 -0
- package/dist/okf/types/PostgresOperatorFamily.md +9 -0
- package/dist/okf/types/PostgresPublication.md +9 -0
- package/dist/okf/types/PostgresStatistics.md +9 -0
- package/dist/okf/types/PostgresTextSearchConfiguration.md +9 -0
- package/dist/okf/types/PostgresTextSearchDictionary.md +9 -0
- package/dist/op/activities/postgres-migration.d.ts.map +1 -1
- package/dist/op/activities/postgres-migration.js +4 -0
- package/dist/op/activity-contracts.d.ts +20 -0
- package/dist/op/activity-contracts.d.ts.map +1 -1
- package/dist/op/activity-contracts.js +2 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +49 -2
- package/dist/postgres/access/acl.js +1 -1
- package/dist/postgres/access/import.js +1 -1
- package/dist/postgres/apply/apply.js +13 -1
- package/dist/postgres/apply/statements.d.ts.map +1 -1
- package/dist/postgres/apply/statements.js +243 -4
- package/dist/postgres/constraint-names.d.ts +30 -0
- package/dist/postgres/constraint-names.d.ts.map +1 -0
- package/dist/postgres/constraint-names.js +72 -0
- package/dist/postgres/entities.d.ts +229 -2
- package/dist/postgres/entities.d.ts.map +1 -1
- package/dist/postgres/entities.js +326 -5
- package/dist/postgres/entity-types.d.ts +10 -0
- package/dist/postgres/entity-types.d.ts.map +1 -1
- package/dist/postgres/entity-types.js +10 -0
- package/dist/postgres/import/generator.d.ts.map +1 -1
- package/dist/postgres/import/generator.js +65 -2
- package/dist/postgres/import/live-export.d.ts.map +1 -1
- package/dist/postgres/import/live-export.js +2 -0
- package/dist/postgres/live/catalog-kinds.d.ts +20 -0
- package/dist/postgres/live/catalog-kinds.d.ts.map +1 -1
- package/dist/postgres/live/catalog-kinds.js +452 -0
- package/dist/postgres/live/catalog.d.ts +2 -0
- package/dist/postgres/live/catalog.d.ts.map +1 -1
- package/dist/postgres/live/catalog.js +3 -1
- package/dist/postgres/live/describe-resources.d.ts.map +1 -1
- package/dist/postgres/live/describe-resources.js +12 -2
- package/dist/postgres/migrate/backfill.d.ts +2 -0
- package/dist/postgres/migrate/backfill.d.ts.map +1 -1
- package/dist/postgres/migrate/backfill.js +7 -1
- package/dist/postgres/migrate/carry.d.ts +45 -1
- package/dist/postgres/migrate/carry.d.ts.map +1 -1
- package/dist/postgres/migrate/carry.js +72 -8
- package/dist/postgres/migrate/observe.d.ts +28 -4
- package/dist/postgres/migrate/observe.d.ts.map +1 -1
- package/dist/postgres/migrate/observe.js +45 -13
- package/dist/postgres/migrate/op.d.ts +26 -1
- package/dist/postgres/migrate/op.d.ts.map +1 -1
- package/dist/postgres/migrate/op.js +3 -1
- package/dist/postgres/migrate/replication.d.ts +42 -0
- package/dist/postgres/migrate/replication.d.ts.map +1 -1
- package/dist/postgres/migrate/replication.js +53 -0
- package/dist/postgres/migrate/steps.d.ts +35 -2
- package/dist/postgres/migrate/steps.d.ts.map +1 -1
- package/dist/postgres/migrate/steps.js +158 -12
- package/dist/postgres/parser.d.ts +144 -1
- package/dist/postgres/parser.d.ts.map +1 -1
- package/dist/postgres/parser.js +370 -4
- package/dist/postgres/plan/deep.d.ts.map +1 -1
- package/dist/postgres/plan/deep.js +43 -4
- package/dist/postgres/plan/diff.d.ts.map +1 -1
- package/dist/postgres/plan/diff.js +154 -1
- package/dist/postgres/plan/normalize.d.ts +28 -2
- package/dist/postgres/plan/normalize.d.ts.map +1 -1
- package/dist/postgres/plan/normalize.js +260 -1
- package/dist/postgres/plan/rules.d.ts +4 -0
- package/dist/postgres/plan/rules.d.ts.map +1 -1
- package/dist/postgres/plan/rules.js +6 -2
- package/dist/postgres/plan/schema.js +1 -1
- package/dist/postgres/plan/statements.d.ts +26 -0
- package/dist/postgres/plan/statements.d.ts.map +1 -0
- package/dist/postgres/plan/statements.js +364 -0
- package/dist/postgres/secret-options.d.ts +10 -0
- package/dist/postgres/secret-options.d.ts.map +1 -0
- package/dist/postgres/secret-options.js +9 -0
- package/dist/postgres/testing/roundtrip-schema.d.ts +4 -2
- package/dist/postgres/testing/roundtrip-schema.d.ts.map +1 -1
- package/dist/postgres/testing/roundtrip-schema.js +24 -1
- package/dist/postgres.d.ts +1 -1
- package/dist/postgres.d.ts.map +1 -1
- package/dist/postgres.js +1 -1
- package/dist/rules/audit-entries.ts +1 -0
- package/dist/rules/postgres-names.ts +2 -0
- package/dist/rules/postgres-templates.ts +2 -2
- package/dist/rules/sqlch128.ts +230 -0
- package/dist/serializer.d.ts +5 -0
- package/dist/serializer.d.ts.map +1 -1
- package/dist/serializer.js +13 -2
- package/dist/sql-types-command.d.ts +13 -0
- package/dist/sql-types-command.d.ts.map +1 -1
- package/dist/sql-types-command.js +31 -16
- package/dist/sql-types.d.ts +22 -0
- package/dist/sql-types.d.ts.map +1 -1
- package/dist/sql-types.js +10 -6
- package/dist/sqlserver/lexer.d.ts +37 -0
- package/dist/sqlserver/lexer.d.ts.map +1 -0
- package/dist/sqlserver/lexer.js +254 -0
- package/dist/sqlserver/parse.d.ts +185 -0
- package/dist/sqlserver/parse.d.ts.map +1 -0
- package/dist/sqlserver/parse.js +767 -0
- package/dist/sqlserver/translate.d.ts +34 -0
- package/dist/sqlserver/translate.d.ts.map +1 -0
- package/dist/sqlserver/translate.js +495 -0
- package/dist/sqlserver/types.d.ts +44 -0
- package/dist/sqlserver/types.d.ts.map +1 -0
- package/dist/sqlserver/types.js +133 -0
- package/dist/sqlserver/validate.d.ts +31 -0
- package/dist/sqlserver/validate.d.ts.map +1 -0
- package/dist/sqlserver/validate.js +67 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +10 -0
- package/package.json +2 -2
- package/src/change-set.ts +2 -1
- package/src/clickhouse/apply/statements.ts +25 -0
- package/src/clickhouse/import/live-export.ts +20 -5
- package/src/clickhouse/live/named-collections.e2e.test.ts +88 -0
- package/src/clickhouse/live/named-collections.ts +61 -0
- package/src/clickhouse/live/undeclarable.e2e.test.ts +5 -3
- package/src/clickhouse/live/undeclarable.ts +20 -4
- package/src/clickhouse/named-collections.test.ts +187 -0
- package/src/clickhouse/named-collections.ts +224 -0
- package/src/clickhouse/parser.ts +2 -1
- package/src/clickhouse/plan/commands.ts +17 -2
- package/src/clickhouse/plan/diff.ts +57 -1
- package/src/clickhouse/plan/disruption.ts +5 -0
- package/src/clickhouse/plan/rebuild-handoff.ts +3 -0
- package/src/clickhouse/plan/report.ts +6 -1
- package/src/clickhouse/plan/rules.ts +14 -4
- package/src/clickhouse/plan/statements.test.ts +61 -0
- package/src/clickhouse/plan/statements.ts +306 -0
- package/src/clickhouse/plan/stream-s3queue.e2e.test.ts +148 -0
- package/src/clickhouse/plan/stream.test.ts +237 -0
- package/src/clickhouse/plan/stream.ts +111 -0
- package/src/clickhouse/rebuild/observe.ts +15 -1
- package/src/clickhouse/review-catalog.test.ts +181 -0
- package/src/clickhouse/review-catalog.ts +489 -0
- package/src/codegen/classifier-page.ts +44 -4
- package/src/codegen/clickhouse-module.ts +3 -0
- package/src/codegen/coverage-page.ts +5 -3
- package/src/codegen/docs.ts +1 -1
- package/src/codegen/postgres-classifier-page.ts +2 -2
- package/src/codegen/registry.ts +10 -0
- package/src/composites/catalog.test.ts +6 -1
- package/src/composites/catalog.ts +100 -0
- package/src/composites/clickhouse.ts +2 -0
- package/src/composites/composites.test.ts +1 -1
- package/src/composites/otel-tables.test.ts +118 -0
- package/src/composites/otel-tables.ts +339 -0
- package/src/composites/stream-ingest.test.ts +114 -0
- package/src/composites/stream-ingest.ts +82 -0
- package/src/core/statement-class.ts +88 -0
- package/src/core/undeclarable.test.ts +6 -5
- package/src/coverage/clickhouse.json +1 -1
- package/src/coverage/postgres.json +12 -12
- package/src/coverage.test.ts +27 -2
- package/src/coverage.ts +18 -7
- package/src/drizzle-command.ts +94 -0
- package/src/drizzle-kit.e2e.test.ts +89 -0
- package/src/drizzle-types.e2e.test.ts +67 -0
- package/src/drizzle.test.ts +358 -0
- package/src/drizzle.ts +742 -0
- package/src/files/clickhouse.ts +8 -1
- package/src/files/common.ts +14 -1
- package/src/files/postgres.ts +34 -3
- package/src/generated/clickhouse.ts +3 -0
- package/src/generated/lexicon-sql.json +50 -0
- package/src/import-parser.sqlserver.test.ts +92 -0
- package/src/import-parser.ts +79 -5
- package/src/index.ts +1 -1
- package/src/lint/post-synth/audit-entries.ts +1 -0
- package/src/lint/post-synth/index.ts +2 -0
- package/src/lint/post-synth/postgres-checks.test.ts +8 -1
- package/src/lint/post-synth/postgres-names.ts +2 -0
- package/src/lint/post-synth/sqlch128.test.ts +107 -0
- package/src/lint/post-synth/sqlch128.ts +230 -0
- package/src/lint/rules/postgres-templates.ts +2 -2
- package/src/lsp/postgres-template.ts +20 -0
- package/src/mcp/postgres.ts +1 -1
- package/src/migrate/from-postgres/cli.test.ts +165 -0
- package/src/migrate/from-postgres/detect.ts +7 -0
- package/src/migrate/from-postgres/emit.ts +96 -0
- package/src/migrate/from-postgres/example.test.ts +205 -0
- package/src/migrate/from-postgres/index.ts +122 -0
- package/src/migrate/from-postgres/translate.test.ts +242 -0
- package/src/migrate/from-postgres/translate.ts +359 -0
- package/src/migrate/from-postgres/types.test.ts +116 -0
- package/src/migrate/from-postgres/types.ts +236 -0
- package/src/migrate/from-postgres/validate.e2e.test.ts +44 -0
- package/src/migrate/from-postgres/workspace.e2e.test.ts +114 -0
- package/src/migration-classify.test.ts +150 -0
- package/src/migration-classify.ts +45 -0
- package/src/migration-replay.e2e.test.ts +155 -0
- package/src/migration-replay.test.ts +173 -0
- package/src/migration-replay.ts +289 -0
- package/src/op/__snapshots__/watch-pipeline.test.ts.snap +2 -2
- package/src/op/activities/postgres-migration.ts +4 -0
- package/src/op/activity-contracts.ts +2 -0
- package/src/op/watch-pipeline.test.ts +8 -1
- package/src/plugin.ts +51 -2
- package/src/postgres/access/acl.ts +1 -1
- package/src/postgres/access/import.ts +1 -1
- package/src/postgres/apply/apply.ts +14 -1
- package/src/postgres/apply/statements.ts +225 -4
- package/src/postgres/constraint-names.ts +71 -0
- package/src/postgres/database-kinds.test.ts +865 -0
- package/src/postgres/entities.ts +541 -5
- package/src/postgres/entity-types.ts +10 -0
- package/src/postgres/import/generator.ts +54 -2
- package/src/postgres/import/live-export.ts +1 -0
- package/src/postgres/live/catalog-kinds.ts +494 -0
- package/src/postgres/live/catalog.ts +6 -1
- package/src/postgres/live/database-kinds.e2e.test.ts +164 -0
- package/src/postgres/live/describe-resources.ts +13 -2
- package/src/postgres/live/undeclarable.e2e.test.ts +13 -6
- package/src/postgres/migrate/backfill.ts +13 -1
- package/src/postgres/migrate/carry.ts +103 -8
- package/src/postgres/migrate/followups.e2e.test.ts +218 -0
- package/src/postgres/migrate/followups.test.ts +199 -0
- package/src/postgres/migrate/kinds.e2e.test.ts +5 -5
- package/src/postgres/migrate/observe.ts +56 -15
- package/src/postgres/migrate/op.ts +28 -1
- package/src/postgres/migrate/partition.e2e.test.ts +129 -0
- package/src/postgres/migrate/partition.test.ts +206 -0
- package/src/postgres/migrate/replication.ts +66 -0
- package/src/postgres/migrate/steps.ts +157 -12
- package/src/postgres/migrate/subscriber.e2e.test.ts +141 -0
- package/src/postgres/migrate/subscriber.test.ts +59 -0
- package/src/postgres/parser.ts +455 -4
- package/src/postgres/plan/deep.ts +42 -4
- package/src/postgres/plan/diff.ts +137 -1
- package/src/postgres/plan/normalize.ts +277 -1
- package/src/postgres/plan/rules.ts +32 -4
- package/src/postgres/plan/schema.ts +1 -1
- package/src/postgres/plan/statements.test.ts +78 -0
- package/src/postgres/plan/statements.ts +299 -0
- package/src/postgres/secret-options.ts +10 -0
- package/src/postgres/testing/roundtrip-schema.ts +24 -1
- package/src/postgres.ts +33 -0
- package/src/serializer.ts +13 -2
- package/src/skills/chant-sql-postgres-migration.md +4 -3
- package/src/skills/chant-sql-postgres.md +11 -1
- package/src/skills/chant-sql.md +2 -1
- package/src/sql-files.test.ts +33 -0
- package/src/sql-types-command.ts +38 -16
- package/src/sql-types.ts +11 -6
- package/src/sqlserver/fixture.test.ts +186 -0
- package/src/sqlserver/import-cli.test.ts +61 -0
- package/src/sqlserver/lexer.ts +260 -0
- package/src/sqlserver/parse.ts +865 -0
- package/src/sqlserver/translate.test.ts +396 -0
- package/src/sqlserver/translate.ts +558 -0
- package/src/sqlserver/types.test.ts +102 -0
- package/src/sqlserver/types.ts +154 -0
- package/src/sqlserver/validate.e2e.test.ts +32 -0
- package/src/sqlserver/validate.test.ts +49 -0
- package/src/sqlserver/validate.ts +76 -0
- package/src/validate.ts +10 -0
- package/src/workspace-kinds.test.ts +11 -0
- package/workspace-kinds.json +100 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse.d.ts","sourceRoot":"","sources":["../../src/files/clickhouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAO9D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"clickhouse.d.ts","sourceRoot":"","sources":["../../src/files/clickhouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAO9D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAmH,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5K,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC;AA2D/E,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAG3D;AAED,sHAAsH;AACtH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,CA8CtH"}
|
package/dist/files/clickhouse.js
CHANGED
|
@@ -18,7 +18,8 @@ import { CLICKHOUSE_ENTITY_TYPES, database, dictionary, func, grant, policy, quo
|
|
|
18
18
|
import { isAccessStatement, parseAccess } from "../clickhouse/access.js";
|
|
19
19
|
import { CLICKHOUSE_TAG_OF } from "../clickhouse/import/generator.js";
|
|
20
20
|
import { describeStatement } from "../clickhouse/import/ir.js";
|
|
21
|
-
import { fileUnparsed, firstLine, lineAt, quoteBare, splitTokens, tokensText, undeclarableStatement } from "./common.js";
|
|
21
|
+
import { fileUnparsed, firstLine, lineAt, quoteBare, referencedStatement, splitTokens, tokensText, undeclarableStatement } from "./common.js";
|
|
22
|
+
import { createdCollectionName } from "../clickhouse/named-collections.js";
|
|
22
23
|
import { templateSafe, templateStrings } from "./postgres.js";
|
|
23
24
|
const TAGS = { database, table, view, dictionary, func, user, role, policy, quota, settingsProfile, grant };
|
|
24
25
|
/** The tag an access statement's words name: `CREATE USER`, `CREATE SETTINGS PROFILE`, `GRANT`. */
|
|
@@ -96,6 +97,12 @@ export function readClickHouse(ddl, options, problems) {
|
|
|
96
97
|
for (const stmt of splitTokens(tokenizeText(ddl, 0), isTrivia)) {
|
|
97
98
|
let sql = tokensText(stmt);
|
|
98
99
|
const line = lineAt(ddl, stmt[0].start);
|
|
100
|
+
const referenced = options.prerequisites ? referencedStatement("clickhouse", sql) : undefined;
|
|
101
|
+
const collection = referenced ? createdCollectionName(sql) : undefined;
|
|
102
|
+
if (referenced && collection !== undefined) {
|
|
103
|
+
options.prerequisites.push({ kind: referenced.kind, name: collection });
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
99
106
|
const undeclarable = undeclarableStatement("clickhouse", sql);
|
|
100
107
|
if (undeclarable) {
|
|
101
108
|
(options.undeclarable ?? problems).push(undeclarable);
|
package/dist/files/common.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import type { Token } from "../core/tokens.js";
|
|
3
3
|
import type { UnknownClause } from "../core/cursor.js";
|
|
4
4
|
import type { SqlDialect } from "../dialects.js";
|
|
5
|
+
import { type KindRow } from "../coverage.js";
|
|
5
6
|
export interface ReadOptions {
|
|
6
7
|
/** Names the DDL in errors: a file's path, a command. */
|
|
7
8
|
origin: string;
|
|
@@ -16,7 +17,19 @@ export interface ReadOptions {
|
|
|
16
17
|
* --parser-option skipUndeclarable` lists them as warnings.
|
|
17
18
|
*/
|
|
18
19
|
undeclarable?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Where a statement of a referenced kind goes (#4395), as the name it
|
|
22
|
+
* creates: `chant import` lists a named collection's `CREATE` as an
|
|
23
|
+
* environment prerequisite. Without it, such a statement is a problem, as
|
|
24
|
+
* in a build's `.sql` file, which never declares one.
|
|
25
|
+
*/
|
|
26
|
+
prerequisites?: Array<{
|
|
27
|
+
kind: string;
|
|
28
|
+
name: string;
|
|
29
|
+
}>;
|
|
19
30
|
}
|
|
31
|
+
/** The coverage row of a `CREATE` of a referenced kind (#4395), or undefined for any other statement. */
|
|
32
|
+
export declare function referencedStatement(dialect: SqlDialect, sql: string): KindRow | undefined;
|
|
20
33
|
/**
|
|
21
34
|
* A `CREATE` of a kind the coverage table does not mark declared, as the line
|
|
22
35
|
* that names it with why, or undefined for any other statement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/files/common.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/files/common.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD;AAED,yGAAyG;AACzG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGzF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1F;AAED,2GAA2G;AAC3G,qBAAa,YAAa,SAAQ,KAAK;IAEnC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;gBAD3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,MAAM,EAAE;CAOvC;AAED,sHAAsH;AACtH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,KAAK,EAAE,EAAE,CAiBhG;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,KAAK,EAAE,KAAG,MAA4C,CAAC;AAEnG,yGAAyG;AACzG,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yGAAyG;IACzG,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED,kIAAkI;AAClI,wBAAgB,YAAY,CAC1B,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,EAC7C,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,QAAQ,CAAC,UAAU,CAAC,CAGtB;AAED,0DAA0D;AAC1D,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,IAAI,MAAM,KAAG,MAA8C,CAAC;AAEjG,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAgD,CAAC;AAEvF,6FAA6F;AAC7F,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAoF,CAAC"}
|
package/dist/files/common.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/** What reading a file of DDL shares across dialects. */
|
|
2
2
|
import { statementKind } from "../coverage.js";
|
|
3
|
+
/** The coverage row of a `CREATE` of a referenced kind (#4395), or undefined for any other statement. */
|
|
4
|
+
export function referencedStatement(dialect, sql) {
|
|
5
|
+
const row = statementKind(dialect, sql);
|
|
6
|
+
return row?.status === "referenced" ? row : undefined;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* A `CREATE` of a kind the coverage table does not mark declared, as the line
|
|
5
10
|
* that names it with why, or undefined for any other statement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/files/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAM9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAA8F,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvJ,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC;AAE/E,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAGzD;AAED,0GAA0G;AAC1G,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAE9E;AAKD,8EAA8E;AAC9E,8EAA8E;AAC9E,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,WAAqF,CAAC;AAsB5H;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/files/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAM9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAA8F,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvJ,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC;AAE/E,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAGzD;AAED,0GAA0G;AAC1G,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAE9E;AAKD,8EAA8E;AAC9E,8EAA8E;AAC9E,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,WAAqF,CAAC;AAsB5H;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAoJtH"}
|
package/dist/files/postgres.js
CHANGED
|
@@ -118,7 +118,7 @@ export function readPostgres(ddl, options, problems) {
|
|
|
118
118
|
};
|
|
119
119
|
switch (node.statement) {
|
|
120
120
|
case "comment":
|
|
121
|
-
if (!["SCHEMA", "EXTENSION", "ROLE", "TRIGGER", "POLICY", "CONSTRAINT", "COLUMN", "CAST", "EVENT TRIGGER"].includes(node.objectType))
|
|
121
|
+
if (!["SCHEMA", "EXTENSION", "ROLE", "TRIGGER", "POLICY", "CONSTRAINT", "COLUMN", "CAST", "EVENT TRIGGER", "FOREIGN DATA WRAPPER", "SERVER", "PUBLICATION"].includes(node.objectType))
|
|
122
122
|
mark(node.target);
|
|
123
123
|
if (node.objectType === "COLUMN" && nameOf(tokens, node.target).length === 2 && options.schema) {
|
|
124
124
|
const first = tokens.slice(node.target.span.from, node.target.span.to).find((t) => !isTrivia(t));
|
|
@@ -132,6 +132,10 @@ export function readPostgres(ddl, options, problems) {
|
|
|
132
132
|
mark(node.table);
|
|
133
133
|
followOns.push({ tokens, node, inserts });
|
|
134
134
|
continue;
|
|
135
|
+
case "textSearchMapping":
|
|
136
|
+
mark(node.name);
|
|
137
|
+
followOns.push({ tokens, node, inserts });
|
|
138
|
+
continue;
|
|
135
139
|
case "index":
|
|
136
140
|
case "trigger":
|
|
137
141
|
case "policy":
|
|
@@ -162,7 +166,7 @@ export function readPostgres(ddl, options, problems) {
|
|
|
162
166
|
problems.push(`an index with no name (its declaration needs one): ${firstLine(tokensText(tokens))}`);
|
|
163
167
|
continue;
|
|
164
168
|
}
|
|
165
|
-
const ownName = !["schema", "extension", "index", "trigger", "policy", "role", "grant", "cast", "eventTrigger"].includes(node.statement);
|
|
169
|
+
const ownName = !["schema", "extension", "index", "trigger", "policy", "role", "grant", "cast", "eventTrigger", "foreignDataWrapper", "foreignServer", "publication"].includes(node.statement);
|
|
166
170
|
if (ownName && "name" in node)
|
|
167
171
|
mark(node.name);
|
|
168
172
|
const object = { node, statements: [rewrite(tokens, inserts, options.schema)], constraints: [], line, unparsed: fileUnparsed("unknown" in node ? node.unknown : undefined, tokens, tokensText(tokens), line) };
|
|
@@ -175,7 +179,7 @@ export function readPostgres(ddl, options, problems) {
|
|
|
175
179
|
const k = followOnOwner(f.node, f.tokens, nameOf, qualify);
|
|
176
180
|
const owner = k ? owners.get(k) : undefined;
|
|
177
181
|
if (!owner) {
|
|
178
|
-
const what = f.node.statement === "comment" ? `COMMENT ON ${f.node.objectType}` : "ALTER TABLE ... ROW LEVEL SECURITY";
|
|
182
|
+
const what = f.node.statement === "comment" ? `COMMENT ON ${f.node.objectType}` : f.node.statement === "textSearchMapping" ? "ALTER TEXT SEARCH CONFIGURATION ... ADD MAPPING" : "ALTER TABLE ... ROW LEVEL SECURITY";
|
|
179
183
|
problems.push(`${what} for an object the file does not create: ${firstLine(tokensText(f.tokens))}`);
|
|
180
184
|
continue;
|
|
181
185
|
}
|
|
@@ -260,11 +264,23 @@ function ownerKey(node, tokens, nameOf, qualify) {
|
|
|
260
264
|
return `${node.statement} ${nameOf(tokens, node.name).at(-1) ?? ""} ON ${qkey(qualify(nameOf(tokens, node.table)))}`;
|
|
261
265
|
case "eventTrigger":
|
|
262
266
|
return `eventTrigger ${nameOf(tokens, node.name).at(-1) ?? ""}`;
|
|
267
|
+
case "foreignDataWrapper":
|
|
268
|
+
case "foreignServer":
|
|
269
|
+
case "publication":
|
|
270
|
+
return `${node.statement} ${nameOf(tokens, node.name).at(-1) ?? ""}`;
|
|
271
|
+
// A class or family is named by its index method too, and a configuration and a dictionary are different namespaces.
|
|
272
|
+
case "operatorClass":
|
|
273
|
+
case "operatorFamily":
|
|
274
|
+
return `${node.statement} ${qkey(qualify(nameOf(tokens, node.name)))} USING ${node.method}`;
|
|
275
|
+
case "textSearchConfiguration":
|
|
276
|
+
case "textSearchDictionary":
|
|
277
|
+
return `${node.statement} ${qkey(qualify(nameOf(tokens, node.name)))}`;
|
|
263
278
|
case "cast":
|
|
264
279
|
return `cast ${castKey(tokens, node.source, node.target)}`;
|
|
265
280
|
case "grant":
|
|
266
281
|
case "comment":
|
|
267
282
|
case "rowSecurity":
|
|
283
|
+
case "textSearchMapping":
|
|
268
284
|
return undefined;
|
|
269
285
|
default:
|
|
270
286
|
return `rel ${qkey(qualify(nameOf(tokens, node.name)))}`;
|
|
@@ -274,6 +290,8 @@ function ownerKey(node, tokens, nameOf, qualify) {
|
|
|
274
290
|
function followOnOwner(node, tokens, nameOf, qualify) {
|
|
275
291
|
if (node.statement === "rowSecurity")
|
|
276
292
|
return `rel ${qkey(qualify(nameOf(tokens, node.table)))}`;
|
|
293
|
+
if (node.statement === "textSearchMapping")
|
|
294
|
+
return `textSearchConfiguration ${qkey(qualify(nameOf(tokens, node.name)))}`;
|
|
277
295
|
if (node.statement !== "comment")
|
|
278
296
|
return undefined;
|
|
279
297
|
const target = nameOf(tokens, node.target);
|
|
@@ -293,6 +311,20 @@ function followOnOwner(node, tokens, nameOf, qualify) {
|
|
|
293
311
|
return node.on ? `${node.objectType.toLowerCase()} ${target.at(-1) ?? ""} ON ${qkey(qualify(nameOf(tokens, node.on)))}` : undefined;
|
|
294
312
|
case "EVENT TRIGGER":
|
|
295
313
|
return `eventTrigger ${target.at(-1) ?? ""}`;
|
|
314
|
+
case "FOREIGN DATA WRAPPER":
|
|
315
|
+
return `foreignDataWrapper ${target.at(-1) ?? ""}`;
|
|
316
|
+
case "SERVER":
|
|
317
|
+
return `foreignServer ${target.at(-1) ?? ""}`;
|
|
318
|
+
case "PUBLICATION":
|
|
319
|
+
return `publication ${target.at(-1) ?? ""}`;
|
|
320
|
+
case "OPERATOR CLASS":
|
|
321
|
+
return `operatorClass ${qkey(qualify(target))} USING ${node.using ?? ""}`;
|
|
322
|
+
case "OPERATOR FAMILY":
|
|
323
|
+
return `operatorFamily ${qkey(qualify(target))} USING ${node.using ?? ""}`;
|
|
324
|
+
case "TEXT SEARCH CONFIGURATION":
|
|
325
|
+
return `textSearchConfiguration ${qkey(qualify(target))}`;
|
|
326
|
+
case "TEXT SEARCH DICTIONARY":
|
|
327
|
+
return `textSearchDictionary ${qkey(qualify(target))}`;
|
|
296
328
|
case "CAST":
|
|
297
329
|
return node.cast ? `cast ${castKey(tokens, node.cast.source, node.cast.target)}` : undefined;
|
|
298
330
|
case "CONSTRAINT":
|
|
@@ -11,6 +11,8 @@ export declare const FUNCTIONS: Readonly<Record<string, FunctionSpec>>;
|
|
|
11
11
|
export declare const AGGREGATE_COMBINATORS: readonly string[];
|
|
12
12
|
/** The table functions (`system.table_functions`): `numbers`, `remote`, `s3`. */
|
|
13
13
|
export declare const TABLE_FUNCTIONS: readonly string[];
|
|
14
|
+
/** The input and output formats (`system.formats`): `Parquet`, `JSONEachRow`. */
|
|
15
|
+
export declare const FORMATS: readonly string[];
|
|
14
16
|
export declare const SKIP_INDEX_TYPES: Readonly<Record<SkipIndexType, SkipIndexSpec>>;
|
|
15
17
|
export declare const MERGE_TREE_SETTINGS: Readonly<Record<keyof MergeTreeSettings, SettingSpec>>;
|
|
16
18
|
export declare const QUERY_SETTINGS: Readonly<Record<keyof QuerySettings, SettingSpec>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse.d.ts","sourceRoot":"","sources":["../../src/generated/clickhouse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC5J,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1J,cAAc,oBAAoB,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAqF5E,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAkBrF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CA8I1E,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAkBzD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAk2D5D,CAAC;AAEF,2HAA2H;AAC3H,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA6I,CAAC;AAEjM,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAizC,CAAC;AAE/1C,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAU3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,iBAAiB,EAAE,WAAW,CAAC,CA4WtF,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAa,EAAE,WAAW,CAAC,CAyxD7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"clickhouse.d.ts","sourceRoot":"","sources":["../../src/generated/clickhouse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC5J,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1J,cAAc,oBAAoB,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAqF5E,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAkBrF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CA8I1E,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAkBzD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAk2D5D,CAAC;AAEF,2HAA2H;AAC3H,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA6I,CAAC;AAEjM,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAizC,CAAC;AAE/1C,iFAAiF;AACjF,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAAmhE,CAAC;AAEzjE,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAU3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,iBAAiB,EAAE,WAAW,CAAC,CA4WtF,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAa,EAAE,WAAW,CAAC,CAyxD7E,CAAC"}
|
|
@@ -2165,6 +2165,8 @@ export const FUNCTIONS = {
|
|
|
2165
2165
|
export const AGGREGATE_COMBINATORS = ["ArgMax", "ArgMin", "Array", "Distinct", "ForEach", "If", "Map", "Merge", "Null", "OrDefault", "OrNull", "Resample", "SimpleState", "State", "Tuple"];
|
|
2166
2166
|
/** The table functions (`system.table_functions`): `numbers`, `remote`, `s3`. */
|
|
2167
2167
|
export const TABLE_FUNCTIONS = ["SQLStandardValues", "arrowFlight", "arrowflight", "azureBlobStorage", "azureBlobStorageCluster", "bigquery", "cluster", "clusterAllReplicas", "cosn", "deltaLake", "deltaLakeAzure", "deltaLakeAzureCluster", "deltaLakeCluster", "deltaLakeLocal", "deltaLakeS3", "deltaLakeS3Cluster", "dictionary", "eval", "executable", "file", "fileCluster", "filesystem", "format", "fuzzJSON", "fuzzQuery", "gcs", "generateRandom", "generateSeries", "generate_series", "hdfs", "hdfsCluster", "hive", "hudi", "hudiCluster", "iceberg", "icebergAzure", "icebergAzureCluster", "icebergCluster", "icebergHDFS", "icebergHDFSCluster", "icebergLocal", "icebergLocalCluster", "icebergS3", "icebergS3Cluster", "input", "jdbc", "loop", "merge", "mergeTreeAnalyzeIndexes", "mergeTreeAnalyzeIndexesUUID", "mergeTreeCodecBlockCounts", "mergeTreeIndex", "mergeTreeProjection", "mergeTreeTextIndex", "mongodb", "mysql", "null", "numbers", "numbers_mt", "odbc", "oss", "paimon", "paimonAzure", "paimonAzureCluster", "paimonCluster", "paimonHDFS", "paimonHDFSCluster", "paimonLocal", "paimonS3", "paimonS3Cluster", "postgresql", "primes", "prometheusQuery", "prometheusQueryRange", "redis", "remote", "remoteSecure", "s3", "s3Cluster", "sqlite", "timeSeriesData", "timeSeriesMetrics", "timeSeriesSamples", "timeSeriesSelector", "timeSeriesTags", "url", "urlCluster", "values", "view", "viewExplain", "viewIfPermitted", "ytsaurus", "zeros", "zeros_mt"];
|
|
2168
|
+
/** The input and output formats (`system.formats`): `Parquet`, `JSONEachRow`. */
|
|
2169
|
+
export const FORMATS = ["Arrow", "ArrowStream", "Avro", "AvroConfluent", "BSONEachRow", "Buffers", "CSV", "CSVWithNames", "CSVWithNamesAndTypes", "CapnProto", "CustomSeparated", "CustomSeparatedIgnoreSpaces", "CustomSeparatedIgnoreSpacesWithNames", "CustomSeparatedIgnoreSpacesWithNamesAndTypes", "CustomSeparatedWithNames", "CustomSeparatedWithNamesAndTypes", "DWARF", "Form", "GeoJSON", "Hash", "HiveText", "JSON", "JSONAsObject", "JSONAsString", "JSONColumns", "JSONColumnsWithMetadata", "JSONCompact", "JSONCompactColumns", "JSONCompactEachRow", "JSONCompactEachRowWithNames", "JSONCompactEachRowWithNamesAndTypes", "JSONCompactEachRowWithProgress", "JSONCompactStrings", "JSONCompactStringsEachRow", "JSONCompactStringsEachRowWithNames", "JSONCompactStringsEachRowWithNamesAndTypes", "JSONCompactStringsEachRowWithProgress", "JSONEachRow", "JSONEachRowWithProgress", "JSONL", "JSONLines", "JSONObjectEachRow", "JSONStrings", "JSONStringsEachRow", "JSONStringsEachRowWithProgress", "LineAsString", "LineAsStringWithNames", "LineAsStringWithNamesAndTypes", "MD", "Markdown", "MsgPack", "MySQLDump", "MySQLWire", "NDJSON", "Native", "Npy", "Null", "ODBCDriver2", "ORC", "One", "PNG", "Parquet", "ParquetMetadata", "PostgreSQLWire", "Pretty", "PrettyCompact", "PrettyCompactMonoBlock", "PrettyCompactNoEscapes", "PrettyCompactNoEscapesMonoBlock", "PrettyJSONEachRow", "PrettyJSONLines", "PrettyMonoBlock", "PrettyNDJSON", "PrettyNoEscapes", "PrettyNoEscapesMonoBlock", "PrettySpace", "PrettySpaceMonoBlock", "PrettySpaceNoEscapes", "PrettySpaceNoEscapesMonoBlock", "Prometheus", "Protobuf", "ProtobufList", "ProtobufSingle", "Puffin", "PuffinMetadata", "Raw", "RawBLOB", "RawWithNames", "RawWithNamesAndTypes", "Regexp", "RowBinary", "RowBinaryWithDefaults", "RowBinaryWithNames", "RowBinaryWithNamesAndTypes", "RowBinaryWithNamesAndTypesAndDefaults", "SQLInsert", "TSKV", "TSV", "TSVRaw", "TSVRawWithNames", "TSVRawWithNamesAndTypes", "TSVWithNames", "TSVWithNamesAndTypes", "TabSeparated", "TabSeparatedRaw", "TabSeparatedRawWithNames", "TabSeparatedRawWithNamesAndTypes", "TabSeparatedWithNames", "TabSeparatedWithNamesAndTypes", "Template", "TemplateIgnoreSpaces", "Values", "Vertical", "XML"];
|
|
2168
2170
|
export const SKIP_INDEX_TYPES = {
|
|
2169
2171
|
bloom_filter: { "syntax": "INDEX name expr TYPE bloom_filter([false_positive_rate]) GRANULARITY g", "args": [{ "name": "false_positive_rate", "position": 0, "optional": true, "repeated": false, "named": false, "kind": "number", "range": [0, 1], "note": "Exclusive of 0 and 1; 0.025 when omitted." }], "summary": "A Bloom filter over the values of the index expression, for speeding up equality and IN conditions on columns, including Array and Map elements." },
|
|
2170
2172
|
hypothesis: { "syntax": "INDEX name expr TYPE hypothesis GRANULARITY g", "args": [], "summary": "Deprecated and no longer supported. It is retained only so that tables which still reference it can be attached." },
|
package/dist/import-parser.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `chant import schema.sql`: a file of DDL into the import IR, in either
|
|
3
|
-
* dialect
|
|
3
|
+
* dialect, or a SQL Server (T-SQL) schema into ClickHouse declarations.
|
|
4
|
+
*
|
|
5
|
+
* `--parser-option from=sqlserver` (#4398) reads the file as T-SQL and
|
|
6
|
+
* translates it to ClickHouse (`./sqlserver/translate.ts`). SQL Server is an
|
|
7
|
+
* import source, not a dialect: nothing is declared in it, and a build never
|
|
8
|
+
* holds one. A file with T-SQL's own markers (`[bracketed]` names, a `GO`
|
|
9
|
+
* line, `CLUSTERED` or `COLUMNSTORE`, `nvarchar`, `IDENTITY(1,1)`) is read
|
|
10
|
+
* the same way without the option, so it is not taken for Postgres.
|
|
11
|
+
* `from=sqlserver` with `dialect=...` is refused: the target is ClickHouse.
|
|
12
|
+
*
|
|
13
|
+
* `--parser-option dialect=postgres` (or `clickhouse`) names the dialect;
|
|
4
14
|
* without one it is read off the statements: an `ENGINE =` clause, a
|
|
5
15
|
* `CREATE DATABASE`, a `CREATE DICTIONARY` or a lambda `CREATE FUNCTION f AS
|
|
6
16
|
* (x) -> ...` is ClickHouse, a statement
|
|
@@ -16,16 +26,26 @@
|
|
|
16
26
|
*/
|
|
17
27
|
import type { ParserOptions, TemplateIR, TemplateParser } from "@intentius/chant/import/parser";
|
|
18
28
|
import { type SqlDialect } from "./dialects.js";
|
|
29
|
+
/** True when the DDL has a marker only T-SQL has and no ClickHouse-only clause. */
|
|
30
|
+
export declare function looksLikeTSql(content: string): boolean;
|
|
19
31
|
/** The dialect a file of DDL is written in, read off its statements. */
|
|
20
32
|
export declare function guessDialect(content: string): SqlDialect;
|
|
21
33
|
/** The `dialect` parser option, checked. */
|
|
22
34
|
export declare function dialectOption(options: ParserOptions | undefined): SqlDialect | undefined;
|
|
35
|
+
/** Sources other than a dialect that `--parser-option from=` names. */
|
|
36
|
+
export declare const IMPORT_SOURCES: readonly ["sqlserver"];
|
|
37
|
+
export type ImportSource = (typeof IMPORT_SOURCES)[number];
|
|
38
|
+
/** The `from` parser option, checked. */
|
|
39
|
+
export declare function sourceOption(options: ParserOptions | undefined): ImportSource | undefined;
|
|
23
40
|
export declare class SqlFileParser implements TemplateParser {
|
|
24
41
|
private readonly dialect?;
|
|
25
42
|
private readonly options;
|
|
26
43
|
constructor(dialect?: SqlDialect | undefined, options?: {
|
|
27
44
|
skipUndeclarable?: boolean;
|
|
45
|
+
from?: ImportSource;
|
|
28
46
|
});
|
|
29
47
|
parse(content: string): TemplateIR;
|
|
48
|
+
/** A T-SQL schema as ClickHouse objects, with a finding for each judgment call (#4398). */
|
|
49
|
+
private parseSqlServer;
|
|
30
50
|
}
|
|
31
51
|
//# sourceMappingURL=import-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-parser.d.ts","sourceRoot":"","sources":["../src/import-parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"import-parser.d.ts","sourceRoot":"","sources":["../src/import-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AA0C3D,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAItD;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAKxD;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAKxF;AAED,uEAAuE;AACvE,eAAO,MAAM,cAAc,wBAAyB,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,yCAAyC;AACzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAMzF;AAED,qBAAa,aAAc,YAAW,cAAc;IAEhD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,CAAC,EAAE,UAAU,YAAA,EACpB,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAO;IAGpF,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAoBlC,2FAA2F;IAC3F,OAAO,CAAC,cAAc;CAYvB"}
|
package/dist/import-parser.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `chant import schema.sql`: a file of DDL into the import IR, in either
|
|
3
|
-
* dialect
|
|
3
|
+
* dialect, or a SQL Server (T-SQL) schema into ClickHouse declarations.
|
|
4
|
+
*
|
|
5
|
+
* `--parser-option from=sqlserver` (#4398) reads the file as T-SQL and
|
|
6
|
+
* translates it to ClickHouse (`./sqlserver/translate.ts`). SQL Server is an
|
|
7
|
+
* import source, not a dialect: nothing is declared in it, and a build never
|
|
8
|
+
* holds one. A file with T-SQL's own markers (`[bracketed]` names, a `GO`
|
|
9
|
+
* line, `CLUSTERED` or `COLUMNSTORE`, `nvarchar`, `IDENTITY(1,1)`) is read
|
|
10
|
+
* the same way without the option, so it is not taken for Postgres.
|
|
11
|
+
* `from=sqlserver` with `dialect=...` is refused: the target is ClickHouse.
|
|
12
|
+
*
|
|
13
|
+
* `--parser-option dialect=postgres` (or `clickhouse`) names the dialect;
|
|
4
14
|
* without one it is read off the statements: an `ENGINE =` clause, a
|
|
5
15
|
* `CREATE DATABASE`, a `CREATE DICTIONARY` or a lambda `CREATE FUNCTION f AS
|
|
6
16
|
* (x) -> ...` is ClickHouse, a statement
|
|
@@ -20,6 +30,9 @@ import { readPostgres } from "./files/postgres.js";
|
|
|
20
30
|
import { SqlFileError } from "./files/common.js";
|
|
21
31
|
import { objectsToIR as chObjectsToIR } from "./clickhouse/import/ir.js";
|
|
22
32
|
import { objectsToIR as pgObjectsToIR } from "./postgres/import/ir.js";
|
|
33
|
+
import { namedCollectionPrerequisites } from "./clickhouse/named-collections.js";
|
|
34
|
+
import { translateSqlServer } from "./sqlserver/translate.js";
|
|
35
|
+
import { TsqlLexError } from "./sqlserver/lexer.js";
|
|
23
36
|
const CLICKHOUSE_ONLY = [
|
|
24
37
|
/\bENGINE\s*=/i,
|
|
25
38
|
/^\s*CREATE\s+(?:DATABASE|(?:OR\s+REPLACE\s+)?DICTIONARY)\b/im,
|
|
@@ -33,6 +46,30 @@ const POSTGRES_ONLY = [
|
|
|
33
46
|
/^\s*(?:COMMENT\s+ON|ALTER\s+TABLE|ALTER\s+DEFAULT\s+PRIVILEGES|GRANT|REVOKE|BEGIN)\b/im,
|
|
34
47
|
/^\s*CREATE\s+TABLE\b/im,
|
|
35
48
|
];
|
|
49
|
+
/**
|
|
50
|
+
* Markers only T-SQL has. Each is rare enough in Postgres and ClickHouse DDL
|
|
51
|
+
* that one is enough: a bracketed name after CREATE TABLE or ON, a `GO`
|
|
52
|
+
* batch line, `CLUSTERED`/`COLUMNSTORE`, T-SQL type names, `IDENTITY(n, n)`,
|
|
53
|
+
* the `SET ANSI_NULLS` preamble of an SSMS script.
|
|
54
|
+
*/
|
|
55
|
+
const TSQL_MARKERS = [
|
|
56
|
+
/^\s*GO\s*$/im,
|
|
57
|
+
/\bCREATE\s+(?:UNIQUE\s+)?(?:NONCLUSTERED\s+|CLUSTERED\s+)(?:COLUMNSTORE\s+)?INDEX\b/i,
|
|
58
|
+
/\bCREATE\s+(?:NONCLUSTERED\s+|CLUSTERED\s+)?COLUMNSTORE\s+INDEX\b/i,
|
|
59
|
+
/\bPRIMARY\s+KEY\s+(?:NON)?CLUSTERED\b/i,
|
|
60
|
+
/\b(?:CREATE\s+TABLE|ALTER\s+TABLE|\bON|REFERENCES)\s+\[[^\]\n]+\]/i,
|
|
61
|
+
/\b(?:NVARCHAR|NCHAR|UNIQUEIDENTIFIER|DATETIME2|DATETIMEOFFSET|SMALLDATETIME|SMALLMONEY|ROWVERSION)\b/i,
|
|
62
|
+
/\bIDENTITY\s*\(\s*\d+\s*,\s*\d+\s*\)/i,
|
|
63
|
+
/^\s*SET\s+(?:ANSI_NULLS|QUOTED_IDENTIFIER|NOCOUNT|ANSI_PADDING)\b/im,
|
|
64
|
+
/\bEXEC(?:UTE)?\s+sp_addextendedproperty\b/i,
|
|
65
|
+
];
|
|
66
|
+
/** True when the DDL has a marker only T-SQL has and no ClickHouse-only clause. */
|
|
67
|
+
export function looksLikeTSql(content) {
|
|
68
|
+
const text = content.replace(/--[^\n]*/g, "");
|
|
69
|
+
if (CLICKHOUSE_ONLY.some((re) => re.test(text)))
|
|
70
|
+
return false;
|
|
71
|
+
return TSQL_MARKERS.some((re) => re.test(text));
|
|
72
|
+
}
|
|
36
73
|
/** The dialect a file of DDL is written in, read off its statements. */
|
|
37
74
|
export function guessDialect(content) {
|
|
38
75
|
const text = content.replace(/--[^\n]*/g, "");
|
|
@@ -51,21 +88,58 @@ export function dialectOption(options) {
|
|
|
51
88
|
throw new Error(`--parser-option dialect: expected ${SQL_DIALECTS.join(" or ")}, got ${String(d)}`);
|
|
52
89
|
return d;
|
|
53
90
|
}
|
|
91
|
+
/** Sources other than a dialect that `--parser-option from=` names. */
|
|
92
|
+
export const IMPORT_SOURCES = ["sqlserver"];
|
|
93
|
+
/** The `from` parser option, checked. */
|
|
94
|
+
export function sourceOption(options) {
|
|
95
|
+
const f = options?.from;
|
|
96
|
+
if (f === undefined)
|
|
97
|
+
return undefined;
|
|
98
|
+
if (typeof f !== "string" || !IMPORT_SOURCES.includes(f))
|
|
99
|
+
throw new Error(`--parser-option from: expected ${IMPORT_SOURCES.join(" or ")}, got ${String(f)}`);
|
|
100
|
+
if (options?.dialect !== undefined)
|
|
101
|
+
throw new Error(`--parser-option from=${f} cannot be combined with dialect: a ${f} schema is translated to ClickHouse`);
|
|
102
|
+
return f;
|
|
103
|
+
}
|
|
54
104
|
export class SqlFileParser {
|
|
55
105
|
constructor(dialect, options = {}) {
|
|
56
106
|
this.dialect = dialect;
|
|
57
107
|
this.options = options;
|
|
58
108
|
}
|
|
59
109
|
parse(content) {
|
|
110
|
+
if (this.options.from === "sqlserver" || (this.dialect === undefined && looksLikeTSql(content)))
|
|
111
|
+
return this.parseSqlServer(content);
|
|
60
112
|
const dialect = this.dialect ?? guessDialect(content);
|
|
61
113
|
const problems = [];
|
|
62
114
|
const skipped = [];
|
|
63
|
-
const
|
|
115
|
+
const prerequisites = [];
|
|
116
|
+
const read = { origin: "the DDL", prerequisites, ...(this.options.skipUndeclarable ? { undeclarable: skipped } : {}) };
|
|
64
117
|
const ir = dialect === "postgres" ? pgObjectsToIR(readPostgres(content, read, problems)) : chObjectsToIR(readClickHouse(content, read, problems));
|
|
65
118
|
if (problems.length > 0)
|
|
66
119
|
throw new SqlFileError(`the ${dialect === "postgres" ? "Postgres" : "ClickHouse"} DDL`, problems);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
120
|
+
// A named collection is the environment's (#4395): its CREATE, or a declaration naming one, is a prerequisite, its values never imported.
|
|
121
|
+
const objects = ir.resources.map((r) => r.properties);
|
|
122
|
+
const prereq = dialect === "clickhouse"
|
|
123
|
+
? namedCollectionPrerequisites(prerequisites, objects, { found: "the DDL creates it", unseen: "the DDL does not create it" })
|
|
124
|
+
: { prerequisites: [], warnings: [] };
|
|
125
|
+
const warnings = [...(ir.warnings ?? []), ...prereq.warnings, ...skipped.map((s) => `left out (skipUndeclarable): ${s}`)];
|
|
126
|
+
const out = prereq.prerequisites.length > 0 ? { ...ir, metadata: { ...ir.metadata, prerequisites: prereq.prerequisites } } : ir;
|
|
127
|
+
return warnings.length > 0 ? { ...out, warnings } : out;
|
|
128
|
+
}
|
|
129
|
+
/** A T-SQL schema as ClickHouse objects, with a finding for each judgment call (#4398). */
|
|
130
|
+
parseSqlServer(content) {
|
|
131
|
+
let t;
|
|
132
|
+
try {
|
|
133
|
+
t = translateSqlServer(content, { skipUnreadable: this.options.skipUndeclarable === true });
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
if (e instanceof TsqlLexError)
|
|
137
|
+
throw new SqlFileError("the SQL Server DDL", [e.message]);
|
|
138
|
+
throw e;
|
|
139
|
+
}
|
|
140
|
+
if (t.problems.length > 0)
|
|
141
|
+
throw new SqlFileError("the SQL Server DDL", t.problems);
|
|
142
|
+
const ir = chObjectsToIR(t.objects);
|
|
143
|
+
return { ...ir, diagnostics: t.diagnostics, metadata: { ...ir.metadata, source: "sqlserver" } };
|
|
70
144
|
}
|
|
71
145
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { sqlSerializer } from "./serializer.js";
|
|
|
3
3
|
export { SQL_DIALECTS, type SqlDialect } from "./dialects.js";
|
|
4
4
|
export { sqlConfigSchema, type SqlConfig } from "./config.js";
|
|
5
5
|
export { database, table, view, dictionary, user, role, policy, quota, settingsProfile, grant, literal } from "./clickhouse/entities.js";
|
|
6
|
-
export { schema, index, sequence, type, domain, extension, func, procedure, aggregate, trigger, eventTrigger, collation, cast } from "./postgres/entities.js";
|
|
6
|
+
export { schema, index, sequence, type, domain, extension, func, procedure, aggregate, trigger, eventTrigger, operator, operatorClass, operatorFamily, foreignTable, textSearchConfiguration, textSearchDictionary, statistics, foreignDataWrapper, foreignServer, publication, collation, cast } from "./postgres/entities.js";
|
|
7
7
|
export { diffStatements, renderStatements, type DiffStatementsOptions, type ManualStep, type MigrationStep, type OpStep, type SchemaStatements, type StatementChange, type StatementStep, type StepObject, } from "./migration-statements.js";
|
|
8
8
|
export { readSqlFile, sqlFileDeclarations, sqlFileEntities, sqlFileOf, SqlFileError, type SqlFileObject, type SqlFileOptions, type SqlFileSource, } from "./sql-files.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAM3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMtI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAM3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMtI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI7T,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ export { database, table, view, dictionary, user, role, policy, quota, settingsP
|
|
|
15
15
|
// A tag folds as the function its file imports, so `table` imported from
|
|
16
16
|
// `@intentius/chant-lexicon-sql/postgres` is Postgres's. Declarations import
|
|
17
17
|
// them from the dialect subpath.
|
|
18
|
-
export { schema, index, sequence, type, domain, extension, func, procedure, aggregate, trigger, eventTrigger, collation, cast } from "./postgres/entities.js";
|
|
18
|
+
export { schema, index, sequence, type, domain, extension, func, procedure, aggregate, trigger, eventTrigger, operator, operatorClass, operatorFamily, foreignTable, textSearchConfiguration, textSearchDictionary, statistics, foreignDataWrapper, foreignServer, publication, collation, cast } from "./postgres/entities.js";
|
|
19
19
|
// A schema change's statements between two builds, rendered offline for a
|
|
20
20
|
// migration file (#3644); also at `@intentius/chant-lexicon-sql/migration-statements`.
|
|
21
21
|
export { diffStatements, renderStatements, } from "./migration-statements.js";
|
package/dist/integrity.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
5
|
-
"meta.json": "
|
|
4
|
+
"manifest.json": "6a3f55a036b2c2bdea25fae55db7eeeddf6cf14d7ac886375bfc279edfeb0071",
|
|
5
|
+
"meta.json": "2a75a38ea0fb186f27a59d6b8401d7af0809db5e471769f0259f7c1a4292b858",
|
|
6
6
|
"types/index.d.ts": "0286ebb367773e84c76818b0f69cb14cff8328fd2f8c65ed87563c8d5815458c",
|
|
7
|
-
"rules/postgres-templates.ts": "
|
|
7
|
+
"rules/postgres-templates.ts": "cbbe8b3c3531300ef5f17d596bf9403343d9fde019961436b6af0cdc66e4064a",
|
|
8
8
|
"rules/sqlch001.ts": "b6dcf779edc596a953e3b4eb2dda5f6e70c1ac56b262f7499f9cb6876ecc1cf9",
|
|
9
9
|
"rules/sqlch002.ts": "d866298167d3f2f7b39bddd28cfbb4a761281a2816d6c21db19b86b32434737a",
|
|
10
10
|
"rules/sqlch003.ts": "955bd6331af0cf7b4f7cd1656d809b9697a8cc91bb179c38a4bbd086c232354e",
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"rules/sqlpg005.ts": "14bdd081d73826f94e358e52e672776aae81533b98fe09ce7ee4cbb86e241df9",
|
|
17
17
|
"rules/templates.ts": "9e6b434694231c3275ca23b491bfdc207b8dbc80b30ffe119fe89d1fb6b12389",
|
|
18
18
|
"rules/typed-names.ts": "fbd5037dc10987611ad4dfb71ae97102b2bb8916c693033b923c6c0201280419",
|
|
19
|
-
"rules/audit-entries.ts": "
|
|
19
|
+
"rules/audit-entries.ts": "210817495b072b2b42908085ae282901537f097127d06d0932b8761b3b951606",
|
|
20
20
|
"rules/clickhouse-helpers.ts": "7c635d10cd2049b72a88596a60e5ba188eab69e233fb74f77dde100f08fba1ca",
|
|
21
21
|
"rules/clickhouse-type-check.ts": "75396cd5aef4ae09d6f7dea92924b0867e5c9182bbf918ade4d9b42823e54538",
|
|
22
22
|
"rules/postgres-audit-entries.ts": "30887efb76971b6db629807e583576e875d939c906eada0f260b90a5eec646b8",
|
|
23
23
|
"rules/postgres-helpers.ts": "b7a246cbb42161691aea52dda6fffd41da293892812023f0ffcfa4f722e596bd",
|
|
24
|
-
"rules/postgres-names.ts": "
|
|
24
|
+
"rules/postgres-names.ts": "82d70a452de9a778b7046a6b2fa49fdd90f18884e61435c191f11361149f98c0",
|
|
25
25
|
"rules/sql-helpers.ts": "36b2d8ff9d5ecc741a9edcea055829137cb66e1e73fd2ff8918a7f56c5413574",
|
|
26
26
|
"rules/sql101.ts": "6d8405355fb3f679ecd729c9fb020d3fa9820b2e2f7e83c4850c266f37ed5165",
|
|
27
27
|
"rules/sql102.ts": "7898a292ef801316ba1232001fcaa2f9a11d62d21cf25a176f0af19e409bb4fa",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"rules/sqlch125.ts": "d5cb80e2daa00a92364fe73bf2b9f8b75da8efd3c4f665af278357e63047806d",
|
|
53
53
|
"rules/sqlch126.ts": "58f45e5bd29f445d30b45876fed5a4a53a2de0cf63eaa5472202b36d0bcf7b2e",
|
|
54
54
|
"rules/sqlch127.ts": "6662ecaa0f0c45538e9461c27c00d4f20438dc0355ca485d41d8b5fb9451c6a9",
|
|
55
|
+
"rules/sqlch128.ts": "6fe99d2477e0fa31b777db2ecad795884eebfe46f1d5d3dda5949bad3a94b995",
|
|
55
56
|
"rules/sqlpg101.ts": "34bd3032af0a1054f2ee90b6e66dd2c159406196e86159545b1d18874fb3ce4b",
|
|
56
57
|
"rules/sqlpg102.ts": "0a4f30a46fc1af3a251fd60ba8fee28f853605629cc93a2881c5bf8664dfd68e",
|
|
57
58
|
"rules/sqlpg103.ts": "d172dbb711917a50dcb4e894d554730386cfdc056c10338733083dbf344f6f86",
|
|
@@ -79,5 +80,5 @@
|
|
|
79
80
|
"rules/sqlpg125.ts": "cc7411c57c525613dc720ba00e986bbc4e5a84b8b0bcfa7a6ce0d058f039f025",
|
|
80
81
|
"rules/sqlpg126.ts": "d57b82a5842273876510131d67bf4418cbd61eff821e245edebc644dafd502bb"
|
|
81
82
|
},
|
|
82
|
-
"composite": "
|
|
83
|
+
"composite": "fa697f9dc480deebdb37cbb0a3bbcdd0213c114cc9cb4bfab4cb5b026ea835ab"
|
|
83
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-entries.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/audit-entries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1E,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"audit-entries.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/audit-entries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1E,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA4B7D,CAAC"}
|
|
@@ -31,4 +31,5 @@ export const sqlPostSynthAuditEntries = {
|
|
|
31
31
|
SQLCH125: auditRule("SQLCH125", "merge-worthy", "guidance", "A codec parameter is outside what the codec takes", "Give the codec a parameter within its range or set, or drop the parameter for the default.", { category: "correctness" }),
|
|
32
32
|
SQLCH126: auditRule("SQLCH126", "merge-worthy", "guidance", "A GRANT column list names a column the table does not declare", "Fix the column name, or declare the column on the table.", { category: "correctness" }),
|
|
33
33
|
SQLCH127: auditRule("SQLCH127", "merge-worthy", "guidance", "An expression calls a function the pinned server does not have", "Fix the function name, use one from the pinned server's system.functions, or declare it with func.", { category: "correctness" }),
|
|
34
|
+
SQLCH128: auditRule("SQLCH128", "merge-worthy", "guidance", "An integration engine or table function argument holds a literal credential", "Create a named collection with the credentials on the server and name it in place of the arguments: ENGINE = S3(lake_creds, format = 'Parquet').", { category: "security" }),
|
|
34
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AA0DvE,eAAO,MAAM,eAAe,EAAE,cAAc,EAyD3C,CAAC"}
|
|
@@ -27,6 +27,7 @@ import { sqlch124 } from "./sqlch124.js";
|
|
|
27
27
|
import { sqlch125 } from "./sqlch125.js";
|
|
28
28
|
import { sqlch126 } from "./sqlch126.js";
|
|
29
29
|
import { sqlch127 } from "./sqlch127.js";
|
|
30
|
+
import { sqlch128 } from "./sqlch128.js";
|
|
30
31
|
import { sqlpg101 } from "./sqlpg101.js";
|
|
31
32
|
import { sqlpg102 } from "./sqlpg102.js";
|
|
32
33
|
import { sqlpg103 } from "./sqlpg103.js";
|
|
@@ -83,6 +84,7 @@ export const postSynthChecks = [
|
|
|
83
84
|
sqlch125,
|
|
84
85
|
sqlch126,
|
|
85
86
|
sqlch127,
|
|
87
|
+
sqlch128,
|
|
86
88
|
sqlpg101,
|
|
87
89
|
sqlpg102,
|
|
88
90
|
sqlpg103,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-names.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/postgres-names.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"postgres-names.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/postgres-names.ts"],"names":[],"mappings":"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"}
|
|
@@ -448,6 +448,9 @@ export function resolveMethod(p, method) {
|
|
|
448
448
|
export function resolveOpClass(p, method, opclass) {
|
|
449
449
|
if (opclass.schema !== undefined && outsideProject(p, opclass.schema))
|
|
450
450
|
return { ok: true };
|
|
451
|
+
// A class the project declares (an `operatorClass` tag), for this method.
|
|
452
|
+
if (p.objects.some((o) => o.type === "Postgres::OperatorClass" && o.name === opclass.name && o.method === method && (opclass.schema === undefined || o.schema === opclass.schema)))
|
|
453
|
+
return { ok: true };
|
|
451
454
|
const classes = OPERATOR_CLASSES;
|
|
452
455
|
if (presentAt(classes[method]?.[opclass.name], p.major))
|
|
453
456
|
return { ok: true };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLCH128: an integration engine's or table function's argument holds a
|
|
3
|
+
* literal credential (#4395): `ENGINE = S3('https://...', 'AKIA...', 'secret')`,
|
|
4
|
+
* `mysql('db:3306', 'shop', 'orders', 'app', 'secret')`, a Kafka table's
|
|
5
|
+
* `kafka_sasl_password` setting, a dictionary source's `PASSWORD`.
|
|
6
|
+
*
|
|
7
|
+
* A credential is the environment's, so it does not belong in a declaration,
|
|
8
|
+
* the build output or `clickhouse.sql`, as `IDENTIFIED BY` does not on a
|
|
9
|
+
* user (`../../clickhouse/access.ts`). The secret arguments are found by name
|
|
10
|
+
* from each engine's syntax line in the pinned catalog (`password`,
|
|
11
|
+
* `secret_access_key`, `account_key`, `session_token`, `oauth_token`), as
|
|
12
|
+
* `key = value` overrides and settings by the same names, and inside a URL
|
|
13
|
+
* (`user:password@`) or an Azure connection string (`AccountKey=`). The fix
|
|
14
|
+
* is a named collection the environment creates, named in place of the
|
|
15
|
+
* arguments: `ENGINE = S3(lake_creds, format = 'Parquet')`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const sqlch128: import("@intentius/chant").PostSynthCheck;
|
|
18
|
+
//# sourceMappingURL=sqlch128.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlch128.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/sqlch128.ts"],"names":[],"mappings":"AAiMA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,2CAoBnB,CAAC"}
|