@intentius/chant-lexicon-sql 0.124.48 → 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/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/codegen/classifier-page.d.ts.map +1 -1
- package/dist/codegen/classifier-page.js +23 -0
- package/dist/codegen/postgres-classifier-page.js +2 -2
- package/dist/codegen/registry.d.ts.map +1 -1
- package/dist/codegen/registry.js +5 -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/postgres.json +6 -6
- package/dist/drizzle.d.ts.map +1 -1
- package/dist/drizzle.js +5 -0
- package/dist/files/postgres.d.ts.map +1 -1
- package/dist/files/postgres.js +23 -1
- 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 +5 -5
- 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/rules/postgres-templates.js +2 -2
- package/dist/lsp/postgres-template.d.ts.map +1 -1
- package/dist/lsp/postgres-template.js +10 -0
- package/dist/manifest.json +1 -1
- package/dist/mcp/postgres.js +1 -1
- package/dist/meta.json +25 -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/okf/index.md +5 -0
- package/dist/okf/types/PostgresForeignTable.md +9 -0
- package/dist/okf/types/PostgresOperatorClass.md +9 -0
- package/dist/okf/types/PostgresOperatorFamily.md +9 -0
- package/dist/okf/types/PostgresTextSearchConfiguration.md +9 -0
- package/dist/okf/types/PostgresTextSearchDictionary.md +9 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +13 -0
- package/dist/postgres/access/acl.js +1 -1
- package/dist/postgres/access/import.js +1 -1
- package/dist/postgres/apply/apply.js +5 -0
- package/dist/postgres/apply/statements.d.ts.map +1 -1
- package/dist/postgres/apply/statements.js +156 -2
- package/dist/postgres/entities.d.ts +120 -2
- package/dist/postgres/entities.d.ts.map +1 -1
- package/dist/postgres/entities.js +180 -5
- package/dist/postgres/entity-types.d.ts +5 -0
- package/dist/postgres/entity-types.d.ts.map +1 -1
- package/dist/postgres/entity-types.js +5 -0
- package/dist/postgres/import/generator.d.ts.map +1 -1
- package/dist/postgres/import/generator.js +16 -1
- package/dist/postgres/live/catalog-kinds.d.ts +6 -0
- package/dist/postgres/live/catalog-kinds.d.ts.map +1 -1
- package/dist/postgres/live/catalog-kinds.js +246 -0
- package/dist/postgres/live/describe-resources.d.ts.map +1 -1
- package/dist/postgres/live/describe-resources.js +2 -0
- package/dist/postgres/migrate/observe.d.ts.map +1 -1
- package/dist/postgres/migrate/observe.js +4 -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/parser.d.ts +73 -1
- package/dist/postgres/parser.d.ts.map +1 -1
- package/dist/postgres/parser.js +181 -7
- package/dist/postgres/plan/deep.d.ts.map +1 -1
- package/dist/postgres/plan/deep.js +15 -4
- package/dist/postgres/plan/diff.d.ts.map +1 -1
- package/dist/postgres/plan/diff.js +120 -5
- package/dist/postgres/plan/normalize.d.ts +12 -1
- package/dist/postgres/plan/normalize.d.ts.map +1 -1
- package/dist/postgres/plan/normalize.js +151 -0
- package/dist/postgres/plan/rules.d.ts +3 -0
- package/dist/postgres/plan/rules.d.ts.map +1 -1
- package/dist/postgres/plan/rules.js +5 -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/testing/roundtrip-schema.d.ts +3 -2
- package/dist/postgres/testing/roundtrip-schema.d.ts.map +1 -1
- package/dist/postgres/testing/roundtrip-schema.js +12 -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/postgres-names.ts +2 -0
- package/dist/rules/postgres-templates.ts +2 -2
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +5 -0
- package/package.json +2 -2
- package/src/clickhouse/plan/statements.test.ts +61 -0
- package/src/clickhouse/plan/statements.ts +306 -0
- package/src/codegen/classifier-page.ts +23 -0
- package/src/codegen/postgres-classifier-page.ts +2 -2
- package/src/codegen/registry.ts +5 -0
- package/src/core/statement-class.ts +88 -0
- package/src/coverage/postgres.json +6 -6
- package/src/drizzle.ts +5 -0
- package/src/files/postgres.ts +22 -1
- package/src/generated/lexicon-sql.json +25 -0
- package/src/index.ts +1 -1
- package/src/lint/post-synth/postgres-checks.test.ts +8 -1
- package/src/lint/post-synth/postgres-names.ts +2 -0
- package/src/lint/rules/postgres-templates.ts +2 -2
- package/src/lsp/postgres-template.ts +9 -0
- package/src/mcp/postgres.ts +1 -1
- package/src/migration-classify.test.ts +150 -0
- package/src/migration-classify.ts +45 -0
- package/src/op/watch-pipeline.test.ts +8 -1
- package/src/plugin.ts +14 -0
- package/src/postgres/access/acl.ts +1 -1
- package/src/postgres/access/import.ts +1 -1
- package/src/postgres/apply/apply.ts +5 -0
- package/src/postgres/apply/statements.ts +151 -3
- package/src/postgres/database-kinds.test.ts +498 -17
- package/src/postgres/entities.ts +276 -5
- package/src/postgres/entity-types.ts +5 -0
- package/src/postgres/import/generator.ts +13 -1
- package/src/postgres/live/catalog-kinds.ts +271 -0
- package/src/postgres/live/describe-resources.ts +2 -0
- package/src/postgres/migrate/observe.ts +3 -1
- package/src/postgres/migrate/replication.ts +66 -0
- package/src/postgres/migrate/subscriber.e2e.test.ts +141 -0
- package/src/postgres/migrate/subscriber.test.ts +59 -0
- package/src/postgres/parser.ts +225 -6
- package/src/postgres/plan/deep.ts +15 -4
- package/src/postgres/plan/diff.ts +107 -6
- package/src/postgres/plan/normalize.ts +155 -0
- package/src/postgres/plan/rules.ts +25 -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/testing/roundtrip-schema.ts +12 -1
- package/src/postgres.ts +17 -0
- package/src/skills/chant-sql-postgres-migration.md +1 -0
- package/src/skills/chant-sql-postgres.md +5 -0
- package/src/sql-files.test.ts +33 -0
- package/src/validate.ts +5 -0
package/dist/files/postgres.js
CHANGED
|
@@ -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":
|
|
@@ -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
|
}
|
|
@@ -264,11 +268,19 @@ function ownerKey(node, tokens, nameOf, qualify) {
|
|
|
264
268
|
case "foreignServer":
|
|
265
269
|
case "publication":
|
|
266
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)))}`;
|
|
267
278
|
case "cast":
|
|
268
279
|
return `cast ${castKey(tokens, node.source, node.target)}`;
|
|
269
280
|
case "grant":
|
|
270
281
|
case "comment":
|
|
271
282
|
case "rowSecurity":
|
|
283
|
+
case "textSearchMapping":
|
|
272
284
|
return undefined;
|
|
273
285
|
default:
|
|
274
286
|
return `rel ${qkey(qualify(nameOf(tokens, node.name)))}`;
|
|
@@ -278,6 +290,8 @@ function ownerKey(node, tokens, nameOf, qualify) {
|
|
|
278
290
|
function followOnOwner(node, tokens, nameOf, qualify) {
|
|
279
291
|
if (node.statement === "rowSecurity")
|
|
280
292
|
return `rel ${qkey(qualify(nameOf(tokens, node.table)))}`;
|
|
293
|
+
if (node.statement === "textSearchMapping")
|
|
294
|
+
return `textSearchConfiguration ${qkey(qualify(nameOf(tokens, node.name)))}`;
|
|
281
295
|
if (node.statement !== "comment")
|
|
282
296
|
return undefined;
|
|
283
297
|
const target = nameOf(tokens, node.target);
|
|
@@ -303,6 +317,14 @@ function followOnOwner(node, tokens, nameOf, qualify) {
|
|
|
303
317
|
return `foreignServer ${target.at(-1) ?? ""}`;
|
|
304
318
|
case "PUBLICATION":
|
|
305
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))}`;
|
|
306
328
|
case "CAST":
|
|
307
329
|
return node.cast ? `cast ${castKey(tokens, node.cast.source, node.cast.target)}` : undefined;
|
|
308
330
|
case "CONSTRAINT":
|
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, operator, statistics, foreignDataWrapper, foreignServer, publication, 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,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,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, operator, statistics, foreignDataWrapper, foreignServer, publication, 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",
|
|
@@ -21,7 +21,7 @@
|
|
|
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",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"rules/sqlpg125.ts": "cc7411c57c525613dc720ba00e986bbc4e5a84b8b0bcfa7a6ce0d058f039f025",
|
|
81
81
|
"rules/sqlpg126.ts": "d57b82a5842273876510131d67bf4418cbd61eff821e245edebc644dafd502bb"
|
|
82
82
|
},
|
|
83
|
-
"composite": "
|
|
83
|
+
"composite": "fa697f9dc480deebdb37cbb0a3bbcdd0213c114cc9cb4bfab4cb5b026ea835ab"
|
|
84
84
|
}
|
|
@@ -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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAMzE,OAAO,EAAyC,KAAK,iBAAiB,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA6BlD,4EAA4E;AAC5E,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,KAAG,MAAM,GAAG,SAA6C,CAAC;AAEtG,8DAA8D;AAC9D,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,qEAA6C,CAAC;AAI5F,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBpD;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAIjE;AAgBD,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,gCAAgC;IAChC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,CAE1D;AAED,qIAAqI;AACrI,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAWpF;AAiCD,8HAA8H;AAC9H,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;CACd;AAcD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,8JAA8J;AAC9J,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAoD1E;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE;AAC5C,8GAA8G;GAC5G;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AACjC,sDAAsD;GACpD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,cAAc,CAwBxG;AAED,kDAAkD;AAClD,eAAO,MAAM,SAAS,GAAI,GAAG,UAAU,KAAG,MAAsD,CAAC;AAEjG;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,SAAI,GAAG,MAAM,GAAG,SAAS,CAkBlG;AAaD,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+HAA+H;AAC/H,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,CA4BxD;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,GAAG,cAAc,CAoBjE;AAMD,oGAAoG;AACpG,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBrF;AAID,MAAM,WAAW,YAAY;IAC3B,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAID,4HAA4H;AAC5H,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CA2BxE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExG,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAM5E;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAElG,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAgB1H;AAID,sIAAsI;AACtI,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAM9G;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,cAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAgBjI"}
|
|
@@ -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 };
|
|
@@ -12,12 +12,12 @@ export const POSTGRES_TEMPLATE_SOURCES = [
|
|
|
12
12
|
{
|
|
13
13
|
dialect: "postgres",
|
|
14
14
|
modules: ["@intentius/chant-lexicon-sql/postgres"],
|
|
15
|
-
tags: ["schema", "table", "index", "view", "sequence", "type", "domain", "extension", "func", "procedure", "aggregate", "trigger", "eventTrigger", "operator", "statistics", "foreignDataWrapper", "foreignServer", "publication", "collation", "cast", "policy", "role", "grant"],
|
|
15
|
+
tags: ["schema", "table", "index", "view", "sequence", "type", "domain", "extension", "func", "procedure", "aggregate", "trigger", "eventTrigger", "operator", "operatorClass", "operatorFamily", "foreignTable", "textSearchConfiguration", "textSearchDictionary", "statistics", "foreignDataWrapper", "foreignServer", "publication", "collation", "cast", "policy", "role", "grant"],
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
dialect: "postgres",
|
|
19
19
|
modules: ["@intentius/chant-lexicon-sql"],
|
|
20
|
-
tags: ["schema", "index", "sequence", "type", "domain", "extension", "func", "procedure", "aggregate", "trigger", "eventTrigger", "operator", "statistics", "foreignDataWrapper", "foreignServer", "publication", "collation", "cast", "policy", "role", "grant"],
|
|
20
|
+
tags: ["schema", "index", "sequence", "type", "domain", "extension", "func", "procedure", "aggregate", "trigger", "eventTrigger", "operator", "operatorClass", "operatorFamily", "foreignTable", "textSearchConfiguration", "textSearchDictionary", "statistics", "foreignDataWrapper", "foreignServer", "publication", "collation", "cast", "policy", "role", "grant"],
|
|
21
21
|
},
|
|
22
22
|
];
|
|
23
23
|
/** Every Postgres template in the file. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-template.d.ts","sourceRoot":"","sources":["../../src/lsp/postgres-template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAoD,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAChI,OAAO,EAAY,KAAK,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE/E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,eAAe,GAAG,SAAS,CAE7G;AAED,wHAAwH;AACxH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,SAAS,CAOpH;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,MAAM,GAAG,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AASnI,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAoCvG;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAQ7E;AAID,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAWD,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"postgres-template.d.ts","sourceRoot":"","sources":["../../src/lsp/postgres-template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAoD,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAChI,OAAO,EAAY,KAAK,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE/E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,eAAe,GAAG,SAAS,CAE7G;AAED,wHAAwH;AACxH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,SAAS,CAOpH;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,MAAM,GAAG,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AASnI,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAoCvG;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAQ7E;AAID,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;IACjB,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAWD,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,gBAAgB,EAAE,CA0F9F"}
|
|
@@ -143,6 +143,16 @@ export function postgresDeclarations(content, fileName = "file.ts") {
|
|
|
143
143
|
sqlName = text(node.name.span);
|
|
144
144
|
kind = "operator";
|
|
145
145
|
break;
|
|
146
|
+
case "operatorClass":
|
|
147
|
+
case "operatorFamily":
|
|
148
|
+
case "foreignTable":
|
|
149
|
+
case "textSearchConfiguration":
|
|
150
|
+
case "textSearchDictionary":
|
|
151
|
+
sqlName = text(node.name.span);
|
|
152
|
+
kind = { operatorClass: "operator class", operatorFamily: "operator family", foreignTable: "foreign table", textSearchConfiguration: "text search configuration", textSearchDictionary: "text search dictionary" }[node.statement];
|
|
153
|
+
if (node.statement === "foreignTable")
|
|
154
|
+
columns = node.columns.map((c) => ({ name: c.name || text(c.nameSpan) || "", ...(text(c.type) ? { type: text(c.type) } : {}) }));
|
|
155
|
+
break;
|
|
146
156
|
case "statistics":
|
|
147
157
|
case "foreignDataWrapper":
|
|
148
158
|
case "foreignServer":
|
package/dist/manifest.json
CHANGED
package/dist/mcp/postgres.js
CHANGED
|
@@ -75,7 +75,7 @@ export function postgresSearch(params) {
|
|
|
75
75
|
results: hits.slice(0, limit).map((r) => ({ name: r.name, ...(r.summary ? { summary: r.summary } : {}), ...(r.since ? { since: r.since } : {}), ...(r.until ? { until: r.until } : {}) })),
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
|
-
const TAGS = { schema: pg.schema, table: pg.table, index: pg.index, view: pg.view, sequence: pg.sequence, type: pg.type, domain: pg.domain, extension: pg.extension, func: pg.func, procedure: pg.procedure, aggregate: pg.aggregate, trigger: pg.trigger, eventTrigger: pg.eventTrigger, operator: pg.operator, statistics: pg.statistics, foreignDataWrapper: pg.foreignDataWrapper, foreignServer: pg.foreignServer, publication: pg.publication, collation: pg.collation, cast: pg.cast, policy: pg.policy, role: pg.role, grant: pg.grant };
|
|
78
|
+
const TAGS = { schema: pg.schema, table: pg.table, index: pg.index, view: pg.view, sequence: pg.sequence, type: pg.type, domain: pg.domain, extension: pg.extension, func: pg.func, procedure: pg.procedure, aggregate: pg.aggregate, trigger: pg.trigger, eventTrigger: pg.eventTrigger, operator: pg.operator, operatorClass: pg.operatorClass, operatorFamily: pg.operatorFamily, foreignTable: pg.foreignTable, textSearchConfiguration: pg.textSearchConfiguration, textSearchDictionary: pg.textSearchDictionary, statistics: pg.statistics, foreignDataWrapper: pg.foreignDataWrapper, foreignServer: pg.foreignServer, publication: pg.publication, collation: pg.collation, cast: pg.cast, policy: pg.policy, role: pg.role, grant: pg.grant };
|
|
79
79
|
export const POSTGRES_TAGS = Object.keys(TAGS);
|
|
80
80
|
/** Parse one statement with the Postgres tag; an error comes back as SQLPG001 with its line and column. */
|
|
81
81
|
export function postgresParse(tag, ddl, position) {
|
package/dist/meta.json
CHANGED
|
@@ -134,6 +134,31 @@
|
|
|
134
134
|
"kind": "resource",
|
|
135
135
|
"lexicon": "sql"
|
|
136
136
|
},
|
|
137
|
+
"PostgresOperatorClass": {
|
|
138
|
+
"resourceType": "Postgres::OperatorClass",
|
|
139
|
+
"kind": "resource",
|
|
140
|
+
"lexicon": "sql"
|
|
141
|
+
},
|
|
142
|
+
"PostgresOperatorFamily": {
|
|
143
|
+
"resourceType": "Postgres::OperatorFamily",
|
|
144
|
+
"kind": "resource",
|
|
145
|
+
"lexicon": "sql"
|
|
146
|
+
},
|
|
147
|
+
"PostgresForeignTable": {
|
|
148
|
+
"resourceType": "Postgres::ForeignTable",
|
|
149
|
+
"kind": "resource",
|
|
150
|
+
"lexicon": "sql"
|
|
151
|
+
},
|
|
152
|
+
"PostgresTextSearchConfiguration": {
|
|
153
|
+
"resourceType": "Postgres::TextSearchConfiguration",
|
|
154
|
+
"kind": "resource",
|
|
155
|
+
"lexicon": "sql"
|
|
156
|
+
},
|
|
157
|
+
"PostgresTextSearchDictionary": {
|
|
158
|
+
"resourceType": "Postgres::TextSearchDictionary",
|
|
159
|
+
"kind": "resource",
|
|
160
|
+
"lexicon": "sql"
|
|
161
|
+
},
|
|
137
162
|
"PostgresStatistics": {
|
|
138
163
|
"resourceType": "Postgres::Statistics",
|
|
139
164
|
"kind": "resource",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classify the migration files a pull request adds (#4407), the lexicon's
|
|
3
|
+
* answer to core's `classifyMigrations` hook. The "check" adoption level:
|
|
4
|
+
* each new file's up statements are read and given the class the schema-diff
|
|
5
|
+
* classifier gives the same change, and nothing else happens. No server is
|
|
6
|
+
* contacted, no migration tool runs and nothing is applied, so it needs no
|
|
7
|
+
* environment binding (compare `chant sql replay`, which does).
|
|
8
|
+
*
|
|
9
|
+
* The up statements are the ones replay would run: goose's `-- +goose Up`
|
|
10
|
+
* section, the whole file for golang-migrate and clickhouse-migrations, and a
|
|
11
|
+
* Flyway file after placeholder substitution with the configuration's values.
|
|
12
|
+
*/
|
|
13
|
+
import type { MigrationFileClassification } from "@intentius/chant/pr-migrations";
|
|
14
|
+
import type { WorkspaceTree } from "@intentius/chant/workspace/tree";
|
|
15
|
+
export declare const MIGRATION_DIALECTS: readonly ["postgres", "clickhouse"];
|
|
16
|
+
export declare function classifyMigrationFiles(options: {
|
|
17
|
+
reader: string;
|
|
18
|
+
dialect: string;
|
|
19
|
+
tree: WorkspaceTree;
|
|
20
|
+
dir: string;
|
|
21
|
+
files: string[];
|
|
22
|
+
}): MigrationFileClassification[];
|
|
23
|
+
//# sourceMappingURL=migration-classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-classify.d.ts","sourceRoot":"","sources":["../src/migration-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAKrE,eAAO,MAAM,kBAAkB,qCAAsC,CAAC;AAKtE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,2BAA2B,EAAE,CAmBrK"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classify the migration files a pull request adds (#4407), the lexicon's
|
|
3
|
+
* answer to core's `classifyMigrations` hook. The "check" adoption level:
|
|
4
|
+
* each new file's up statements are read and given the class the schema-diff
|
|
5
|
+
* classifier gives the same change, and nothing else happens. No server is
|
|
6
|
+
* contacted, no migration tool runs and nothing is applied, so it needs no
|
|
7
|
+
* environment binding (compare `chant sql replay`, which does).
|
|
8
|
+
*
|
|
9
|
+
* The up statements are the ones replay would run: goose's `-- +goose Up`
|
|
10
|
+
* section, the whole file for golang-migrate and clickhouse-migrations, and a
|
|
11
|
+
* Flyway file after placeholder substitution with the configuration's values.
|
|
12
|
+
*/
|
|
13
|
+
import { findFlywayConfig, readFlywayConfig, substitute } from "@intentius/chant/workspace/flyway-layout";
|
|
14
|
+
import { classifyClickHouseStatements } from "./clickhouse/plan/statements.js";
|
|
15
|
+
import { gooseUpStatements, splitStatements } from "./migration-replay.js";
|
|
16
|
+
import { classifyPgStatements } from "./postgres/plan/statements.js";
|
|
17
|
+
export const MIGRATION_DIALECTS = ["postgres", "clickhouse"];
|
|
18
|
+
/** The reader names whose files this lexicon reads. */
|
|
19
|
+
const READERS = new Set(["goose-dir", "golang-migrate-dir", "clickhouse-migrations-dir", "flyway-dir"]);
|
|
20
|
+
export function classifyMigrationFiles(options) {
|
|
21
|
+
const { reader, dialect, tree, dir, files } = options;
|
|
22
|
+
if (!READERS.has(reader) || !MIGRATION_DIALECTS.includes(dialect))
|
|
23
|
+
return [];
|
|
24
|
+
const classify = dialect === "postgres" ? classifyPgStatements : classifyClickHouseStatements;
|
|
25
|
+
let flyway;
|
|
26
|
+
return files.map((file) => {
|
|
27
|
+
try {
|
|
28
|
+
const text = tree.read(file);
|
|
29
|
+
let statements;
|
|
30
|
+
if (reader === "goose-dir")
|
|
31
|
+
statements = gooseUpStatements(text);
|
|
32
|
+
else if (reader === "flyway-dir") {
|
|
33
|
+
flyway ?? (flyway = readFlywayConfig(tree, findFlywayConfig(tree, dir), dir));
|
|
34
|
+
statements = splitStatements(substitute(text, file, flyway));
|
|
35
|
+
}
|
|
36
|
+
else
|
|
37
|
+
statements = splitStatements(text);
|
|
38
|
+
return { file, statements: classify(statements) };
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
return { file, statements: [], error: err instanceof Error ? err.message : String(err) };
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
package/dist/okf/index.md
CHANGED
|
@@ -20,11 +20,14 @@ okf_version: '0.2'
|
|
|
20
20
|
* [PostgresExtension](/types/PostgresExtension.md) - Postgres::Extension
|
|
21
21
|
* [PostgresForeignDataWrapper](/types/PostgresForeignDataWrapper.md) - Postgres::ForeignDataWrapper
|
|
22
22
|
* [PostgresForeignServer](/types/PostgresForeignServer.md) - Postgres::ForeignServer
|
|
23
|
+
* [PostgresForeignTable](/types/PostgresForeignTable.md) - Postgres::ForeignTable
|
|
23
24
|
* [PostgresFunction](/types/PostgresFunction.md) - Postgres::Function
|
|
24
25
|
* [PostgresGrant](/types/PostgresGrant.md) - Postgres::Grant
|
|
25
26
|
* [PostgresIndex](/types/PostgresIndex.md) - Postgres::Index
|
|
26
27
|
* [PostgresMaterializedView](/types/PostgresMaterializedView.md) - Postgres::MaterializedView
|
|
27
28
|
* [PostgresOperator](/types/PostgresOperator.md) - Postgres::Operator
|
|
29
|
+
* [PostgresOperatorClass](/types/PostgresOperatorClass.md) - Postgres::OperatorClass
|
|
30
|
+
* [PostgresOperatorFamily](/types/PostgresOperatorFamily.md) - Postgres::OperatorFamily
|
|
28
31
|
* [PostgresPolicy](/types/PostgresPolicy.md) - Postgres::Policy
|
|
29
32
|
* [PostgresProcedure](/types/PostgresProcedure.md) - Postgres::Procedure
|
|
30
33
|
* [PostgresPublication](/types/PostgresPublication.md) - Postgres::Publication
|
|
@@ -34,6 +37,8 @@ okf_version: '0.2'
|
|
|
34
37
|
* [PostgresSequence](/types/PostgresSequence.md) - Postgres::Sequence
|
|
35
38
|
* [PostgresStatistics](/types/PostgresStatistics.md) - Postgres::Statistics
|
|
36
39
|
* [PostgresTable](/types/PostgresTable.md) - Postgres::Table
|
|
40
|
+
* [PostgresTextSearchConfiguration](/types/PostgresTextSearchConfiguration.md) - Postgres::TextSearchConfiguration
|
|
41
|
+
* [PostgresTextSearchDictionary](/types/PostgresTextSearchDictionary.md) - Postgres::TextSearchDictionary
|
|
37
42
|
* [PostgresTrigger](/types/PostgresTrigger.md) - Postgres::Trigger
|
|
38
43
|
* [PostgresView](/types/PostgresView.md) - Postgres::View
|
|
39
44
|
* [Quota](/types/Quota.md) - ClickHouse::Quota
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PostgresForeignTable
|
|
4
|
+
description: sql resource type Postgres::ForeignTable
|
|
5
|
+
name: PostgresForeignTable
|
|
6
|
+
lexicon: sql
|
|
7
|
+
resource_type: Postgres::ForeignTable
|
|
8
|
+
---
|
|
9
|
+
`Postgres::ForeignTable`, a resource type of the sql lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PostgresOperatorClass
|
|
4
|
+
description: sql resource type Postgres::OperatorClass
|
|
5
|
+
name: PostgresOperatorClass
|
|
6
|
+
lexicon: sql
|
|
7
|
+
resource_type: Postgres::OperatorClass
|
|
8
|
+
---
|
|
9
|
+
`Postgres::OperatorClass`, a resource type of the sql lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PostgresOperatorFamily
|
|
4
|
+
description: sql resource type Postgres::OperatorFamily
|
|
5
|
+
name: PostgresOperatorFamily
|
|
6
|
+
lexicon: sql
|
|
7
|
+
resource_type: Postgres::OperatorFamily
|
|
8
|
+
---
|
|
9
|
+
`Postgres::OperatorFamily`, a resource type of the sql lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PostgresTextSearchConfiguration
|
|
4
|
+
description: sql resource type Postgres::TextSearchConfiguration
|
|
5
|
+
name: PostgresTextSearchConfiguration
|
|
6
|
+
lexicon: sql
|
|
7
|
+
resource_type: Postgres::TextSearchConfiguration
|
|
8
|
+
---
|
|
9
|
+
`Postgres::TextSearchConfiguration`, a resource type of the sql lexicon.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: resource-type
|
|
3
|
+
title: PostgresTextSearchDictionary
|
|
4
|
+
description: sql resource type Postgres::TextSearchDictionary
|
|
5
|
+
name: PostgresTextSearchDictionary
|
|
6
|
+
lexicon: sql
|
|
7
|
+
resource_type: Postgres::TextSearchDictionary
|
|
8
|
+
---
|
|
9
|
+
`Postgres::TextSearchDictionary`, a resource type of the sql lexicon.
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA0B5E,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA0B5E,eAAO,MAAM,SAAS,EAAE,aA+SvB,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -101,6 +101,11 @@ export const sqlPlugin = {
|
|
|
101
101
|
{ name: "trigger", isTag: true, description: "A Postgres CREATE TRIGGER, parsed into a trigger entity on its table" },
|
|
102
102
|
{ name: "eventTrigger", isTag: true, description: "A Postgres CREATE EVENT TRIGGER, parsed into the database's event trigger entity" },
|
|
103
103
|
{ name: "operator", isTag: true, description: "A Postgres CREATE OPERATOR, parsed into an operator entity identified by its name and operand types" },
|
|
104
|
+
{ name: "operatorClass", isTag: true, description: "A Postgres CREATE OPERATOR CLASS, parsed into an operator class entity identified by its name and index method" },
|
|
105
|
+
{ name: "operatorFamily", isTag: true, description: "A Postgres CREATE OPERATOR FAMILY, parsed into an operator family entity identified by its name and index method" },
|
|
106
|
+
{ name: "foreignTable", isTag: true, description: "A Postgres CREATE FOREIGN TABLE, parsed into a foreign table entity with its columns, server and options" },
|
|
107
|
+
{ name: "textSearchConfiguration", isTag: true, description: "A Postgres CREATE TEXT SEARCH CONFIGURATION with its ADD MAPPING statements, parsed into a configuration entity" },
|
|
108
|
+
{ name: "textSearchDictionary", isTag: true, description: "A Postgres CREATE TEXT SEARCH DICTIONARY, parsed into a dictionary entity with its template and options" },
|
|
104
109
|
{ name: "statistics", isTag: true, description: "A Postgres CREATE STATISTICS, parsed into an extended statistics entity on its table" },
|
|
105
110
|
{ name: "foreignDataWrapper", isTag: true, description: "A Postgres CREATE FOREIGN DATA WRAPPER, parsed into the database's wrapper entity" },
|
|
106
111
|
{ name: "foreignServer", isTag: true, description: "A Postgres CREATE SERVER, parsed into the database's foreign server entity (user mappings are not declared)" },
|
|
@@ -266,6 +271,14 @@ export const sqlPlugin = {
|
|
|
266
271
|
const { classifyPgDisruption } = await import("./postgres/plan/disruption.js");
|
|
267
272
|
return { ...classifyDisruption(options), ...classifyPgDisruption(options) };
|
|
268
273
|
},
|
|
274
|
+
/**
|
|
275
|
+
* The migration files a pull request adds (#4407): each up statement given
|
|
276
|
+
* the class the schema-diff classifier gives the same change. Offline.
|
|
277
|
+
*/
|
|
278
|
+
async classifyMigrations(options) {
|
|
279
|
+
const { classifyMigrationFiles } = await import("./migration-classify.js");
|
|
280
|
+
return classifyMigrationFiles(options);
|
|
281
|
+
},
|
|
269
282
|
/** `chant sql diff` and `chant sql plan`: schema changes, classified. */
|
|
270
283
|
commands() {
|
|
271
284
|
return sqlCommands;
|
|
@@ -122,7 +122,7 @@ export function declaredAccess(objects, opts) {
|
|
|
122
122
|
const name = `${o.schema ? `${quoteIdent(o.schema)}.` : ""}${quoteIdent(o.name)}`;
|
|
123
123
|
if (o.kind === "schema")
|
|
124
124
|
declaredTargets.push({ kind: "schema", name: quoteIdent(o.name) });
|
|
125
|
-
else if (o.kind === "table" || o.kind === "view" || o.kind === "materializedView") {
|
|
125
|
+
else if (o.kind === "table" || o.kind === "foreignTable" || o.kind === "view" || o.kind === "materializedView") {
|
|
126
126
|
relationKind.set(name, "table");
|
|
127
127
|
declaredTargets.push({ kind: "table", name });
|
|
128
128
|
}
|
|
@@ -17,7 +17,7 @@ function targetsOf(objects) {
|
|
|
17
17
|
const name = `${o.schema ? `${quoteIdent(o.schema)}.` : ""}${quoteIdent(o.name)}`;
|
|
18
18
|
if (o.type === POSTGRES_ENTITY_TYPES.schema)
|
|
19
19
|
out.push({ kind: "schema", name: quoteIdent(o.name) });
|
|
20
|
-
else if (o.type === POSTGRES_ENTITY_TYPES.table || o.type === POSTGRES_ENTITY_TYPES.view || o.type === POSTGRES_ENTITY_TYPES.materializedView)
|
|
20
|
+
else if (o.type === POSTGRES_ENTITY_TYPES.table || o.type === POSTGRES_ENTITY_TYPES.foreignTable || o.type === POSTGRES_ENTITY_TYPES.view || o.type === POSTGRES_ENTITY_TYPES.materializedView)
|
|
21
21
|
out.push({ kind: "table", name });
|
|
22
22
|
else if (o.type === POSTGRES_ENTITY_TYPES.sequence)
|
|
23
23
|
out.push({ kind: "sequence", name });
|
|
@@ -471,6 +471,11 @@ function liveCanonicalAddress(o) {
|
|
|
471
471
|
"Postgres::Cast": "cast",
|
|
472
472
|
"Postgres::EventTrigger": "eventTrigger",
|
|
473
473
|
"Postgres::Operator": "operator",
|
|
474
|
+
"Postgres::OperatorClass": "operatorClass",
|
|
475
|
+
"Postgres::OperatorFamily": "operatorFamily",
|
|
476
|
+
"Postgres::ForeignTable": "foreignTable",
|
|
477
|
+
"Postgres::TextSearchConfiguration": "textSearchConfiguration",
|
|
478
|
+
"Postgres::TextSearchDictionary": "textSearchDictionary",
|
|
474
479
|
"Postgres::Statistics": "statistics",
|
|
475
480
|
"Postgres::ForeignDataWrapper": "foreignDataWrapper",
|
|
476
481
|
"Postgres::ForeignServer": "foreignServer",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/postgres/apply/statements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAA0B,KAAK,KAAK,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAkD,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjI,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGnE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/postgres/apply/statements.ts"],"names":[],"mappings":"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"}
|