@intentius/chant-lexicon-sql 0.116.0 → 0.118.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clickhouse/access.d.ts +132 -0
- package/dist/clickhouse/access.d.ts.map +1 -0
- package/dist/clickhouse/apply/apply.d.ts.map +1 -1
- package/dist/clickhouse/apply/statements.d.ts +2 -0
- package/dist/clickhouse/apply/statements.d.ts.map +1 -1
- package/dist/clickhouse/entities.d.ts +171 -2
- package/dist/clickhouse/entities.d.ts.map +1 -1
- package/dist/clickhouse/http.d.ts +3 -0
- package/dist/clickhouse/http.d.ts.map +1 -1
- package/dist/clickhouse/import/generator.d.ts +28 -0
- package/dist/clickhouse/import/generator.d.ts.map +1 -1
- package/dist/clickhouse/import/ir.d.ts.map +1 -1
- package/dist/clickhouse/import/parser.d.ts +3 -3
- package/dist/clickhouse/import/parser.d.ts.map +1 -1
- package/dist/clickhouse/live/bind.d.ts.map +1 -1
- package/dist/clickhouse/live/catalog.d.ts +41 -6
- package/dist/clickhouse/live/catalog.d.ts.map +1 -1
- package/dist/clickhouse/live/describe-resources.d.ts +3 -2
- package/dist/clickhouse/live/describe-resources.d.ts.map +1 -1
- package/dist/clickhouse/parser.d.ts +54 -3
- package/dist/clickhouse/parser.d.ts.map +1 -1
- package/dist/clickhouse/plan/commands.d.ts +3 -1
- package/dist/clickhouse/plan/commands.d.ts.map +1 -1
- package/dist/clickhouse/plan/deep.d.ts.map +1 -1
- package/dist/clickhouse/plan/diff.d.ts +12 -0
- package/dist/clickhouse/plan/diff.d.ts.map +1 -1
- package/dist/clickhouse/plan/normalize.d.ts +61 -1
- package/dist/clickhouse/plan/normalize.d.ts.map +1 -1
- package/dist/clickhouse/plan/report.d.ts.map +1 -1
- package/dist/clickhouse/plan/rules.d.ts +7 -0
- package/dist/clickhouse/plan/rules.d.ts.map +1 -1
- package/dist/clickhouse/plan/schema.d.ts +8 -4
- package/dist/clickhouse/plan/schema.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/backfill.d.ts +3 -1
- package/dist/clickhouse/rebuild/backfill.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/observe.d.ts +7 -3
- package/dist/clickhouse/rebuild/observe.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/op.d.ts +8 -0
- package/dist/clickhouse/rebuild/op.d.ts.map +1 -1
- package/dist/clickhouse/rebuild/steps.d.ts +48 -0
- package/dist/clickhouse/rebuild/steps.d.ts.map +1 -1
- package/dist/clickhouse/testing/fake-server.d.ts.map +1 -1
- package/dist/clickhouse/testing/writable-server.d.ts.map +1 -1
- package/dist/clickhouse/topology.d.ts.map +1 -1
- package/dist/clickhouse.d.ts +1 -1
- package/dist/clickhouse.d.ts.map +1 -1
- package/dist/codegen/classifier-page.d.ts.map +1 -1
- package/dist/codegen/registry.d.ts.map +1 -1
- package/dist/config.d.ts +70 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/core/references.d.ts +4 -2
- package/dist/core/references.d.ts.map +1 -1
- package/dist/core/statements.d.ts +11 -0
- package/dist/core/statements.d.ts.map +1 -1
- package/dist/files/build-root.d.ts +26 -0
- package/dist/files/build-root.d.ts.map +1 -0
- package/dist/files/clickhouse.d.ts +19 -0
- package/dist/files/clickhouse.d.ts.map +1 -0
- package/dist/files/common.d.ts +25 -0
- package/dist/files/common.d.ts.map +1 -0
- package/dist/files/postgres.d.ts +36 -0
- package/dist/files/postgres.d.ts.map +1 -0
- package/dist/import-parser.d.ts +25 -0
- package/dist/import-parser.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +8 -8
- package/dist/lint/rules/sqlch001.d.ts +1 -1
- package/dist/lint/rules/sqlch001.d.ts.map +1 -1
- package/dist/lint/rules/sqlch002.d.ts.map +1 -1
- package/dist/lint/rules/sqlpg001.d.ts.map +1 -1
- package/dist/lint/rules/templates.d.ts +1 -1
- package/dist/lint/rules/templates.d.ts.map +1 -1
- package/dist/lsp/postgres-template.d.ts.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/meta.json +50 -0
- package/dist/okf/index.md +11 -1
- package/dist/okf/rules/SQLCH001.md +2 -2
- package/dist/okf/types/Dictionary.md +9 -0
- package/dist/okf/types/Function.md +9 -0
- package/dist/okf/types/Grant.md +9 -0
- package/dist/okf/types/PostgresDefaultPrivileges.md +9 -0
- package/dist/okf/types/PostgresGrant.md +9 -0
- package/dist/okf/types/PostgresPolicy.md +9 -0
- package/dist/okf/types/PostgresRole.md +9 -0
- package/dist/okf/types/Role.md +9 -0
- package/dist/okf/types/RowPolicy.md +9 -0
- package/dist/okf/types/User.md +9 -0
- package/dist/op/activities/clickhouse-rebuild.d.ts.map +1 -1
- package/dist/op/activities/postgres-migration.d.ts.map +1 -1
- package/dist/op/activity-contracts.d.ts +19 -0
- package/dist/op/activity-contracts.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/postgres/access/acl.d.ts +119 -0
- package/dist/postgres/access/acl.d.ts.map +1 -0
- package/dist/postgres/access/import.d.ts +13 -0
- package/dist/postgres/access/import.d.ts.map +1 -0
- package/dist/postgres/access/live.d.ts +24 -0
- package/dist/postgres/access/live.d.ts.map +1 -0
- package/dist/postgres/apply/apply.d.ts.map +1 -1
- package/dist/postgres/apply/statements.d.ts +71 -0
- package/dist/postgres/apply/statements.d.ts.map +1 -1
- package/dist/postgres/entities.d.ts +106 -4
- package/dist/postgres/entities.d.ts.map +1 -1
- package/dist/postgres/entity-types.d.ts +4 -0
- package/dist/postgres/entity-types.d.ts.map +1 -1
- package/dist/postgres/import/generator.d.ts +37 -1
- package/dist/postgres/import/generator.d.ts.map +1 -1
- package/dist/postgres/import/live-export.d.ts +6 -0
- package/dist/postgres/import/live-export.d.ts.map +1 -1
- package/dist/postgres/live/bind.d.ts +2 -0
- package/dist/postgres/live/bind.d.ts.map +1 -1
- package/dist/postgres/live/catalog.d.ts +11 -2
- package/dist/postgres/live/catalog.d.ts.map +1 -1
- package/dist/postgres/live/client.d.ts +3 -0
- package/dist/postgres/live/client.d.ts.map +1 -1
- package/dist/postgres/live/describe-resources.d.ts +9 -0
- package/dist/postgres/live/describe-resources.d.ts.map +1 -1
- package/dist/postgres/migrate/op.d.ts +29 -0
- package/dist/postgres/migrate/op.d.ts.map +1 -1
- package/dist/postgres/parser.d.ts +76 -3
- package/dist/postgres/parser.d.ts.map +1 -1
- package/dist/postgres/plan/commands.d.ts +12 -0
- package/dist/postgres/plan/commands.d.ts.map +1 -1
- package/dist/postgres/plan/deep.d.ts.map +1 -1
- package/dist/postgres/plan/diff.d.ts +10 -1
- package/dist/postgres/plan/diff.d.ts.map +1 -1
- package/dist/postgres/plan/normalize.d.ts +8 -1
- package/dist/postgres/plan/normalize.d.ts.map +1 -1
- package/dist/postgres/plan/rules.d.ts +8 -0
- package/dist/postgres/plan/rules.d.ts.map +1 -1
- package/dist/postgres/plan/schema.d.ts +2 -1
- package/dist/postgres/plan/schema.d.ts.map +1 -1
- package/dist/postgres/plan/server-normalize.d.ts +4 -1
- package/dist/postgres/plan/server-normalize.d.ts.map +1 -1
- package/dist/postgres.d.ts +1 -1
- package/dist/postgres.d.ts.map +1 -1
- package/dist/rules/postgres-templates.ts +2 -2
- package/dist/rules/sqlch001.ts +26 -4
- package/dist/rules/sqlch002.ts +3 -2
- package/dist/rules/sqlpg001.ts +7 -4
- package/dist/rules/templates.ts +2 -2
- package/dist/serializer.d.ts +2 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/sql-files.d.ts +79 -0
- package/dist/sql-files.d.ts.map +1 -0
- package/dist/token-source.d.ts +88 -0
- package/dist/token-source.d.ts.map +1 -0
- package/dist/validate.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/clickhouse/access.test.ts +203 -0
- package/src/clickhouse/access.ts +595 -0
- package/src/clickhouse/apply/apply.ts +29 -20
- package/src/clickhouse/apply/statements.ts +105 -8
- package/src/clickhouse/dictionary.test.ts +177 -0
- package/src/clickhouse/entities.ts +356 -6
- package/src/clickhouse/function.test.ts +91 -0
- package/src/clickhouse/http.ts +11 -2
- package/src/clickhouse/import/generator.ts +81 -46
- package/src/clickhouse/import/import.test.ts +9 -3
- package/src/clickhouse/import/ir.ts +6 -2
- package/src/clickhouse/import/parser.ts +10 -18
- package/src/clickhouse/live/access.e2e.test.ts +218 -0
- package/src/clickhouse/live/bind.ts +17 -6
- package/src/clickhouse/live/catalog.ts +106 -10
- package/src/clickhouse/live/describe-resources.ts +23 -10
- package/src/clickhouse/live/dictionaries.e2e.test.ts +186 -0
- package/src/clickhouse/live/functions.e2e.test.ts +155 -0
- package/src/clickhouse/live/live.test.ts +2 -2
- package/src/clickhouse/parser.ts +136 -4
- package/src/clickhouse/plan/commands.ts +18 -7
- package/src/clickhouse/plan/deep.ts +71 -11
- package/src/clickhouse/plan/diff.ts +65 -2
- package/src/clickhouse/plan/normalize.ts +200 -6
- package/src/clickhouse/plan/report.ts +14 -3
- package/src/clickhouse/plan/rules.ts +44 -1
- package/src/clickhouse/plan/schema.ts +40 -17
- package/src/clickhouse/plan/server-format.ts +1 -1
- package/src/clickhouse/rebuild/backfill.ts +5 -25
- package/src/clickhouse/rebuild/observe.ts +7 -3
- package/src/clickhouse/rebuild/op.ts +9 -0
- package/src/clickhouse/rebuild/rebuild.e2e.test.ts +62 -0
- package/src/clickhouse/rebuild/rebuild.test.ts +54 -0
- package/src/clickhouse/rebuild/steps.ts +136 -1
- package/src/clickhouse/testing/fake-server.ts +2 -0
- package/src/clickhouse/testing/writable-server.ts +2 -0
- package/src/clickhouse/topology.ts +17 -2
- package/src/clickhouse.ts +19 -0
- package/src/codegen/classifier-page.ts +2 -0
- package/src/codegen/registry.ts +10 -0
- package/src/config.ts +22 -3
- package/src/core/references.ts +5 -3
- package/src/core/statements.ts +11 -1
- package/src/files/build-root.ts +62 -0
- package/src/files/clickhouse.ts +52 -0
- package/src/files/common.ts +54 -0
- package/src/files/postgres.ts +371 -0
- package/src/generated/lexicon-sql.json +50 -0
- package/src/import-parser.ts +61 -0
- package/src/index.ts +14 -1
- package/src/lint/rules/postgres-templates.ts +2 -2
- package/src/lint/rules/sqlch001.ts +26 -4
- package/src/lint/rules/sqlch002.ts +3 -2
- package/src/lint/rules/sqlpg001.ts +7 -4
- package/src/lint/rules/templates.ts +2 -2
- package/src/lsp/postgres-template.ts +2 -0
- package/src/lsp/template.ts +3 -3
- package/src/mcp/index.ts +6 -6
- package/src/mcp/postgres.ts +1 -1
- package/src/migration-statements.test.ts +25 -0
- package/src/migration-statements.ts +8 -0
- package/src/op/activities/clickhouse-rebuild.ts +1 -0
- package/src/op/activities/postgres-migration.ts +27 -2
- package/src/op/activity-contracts.ts +2 -0
- package/src/plugin.ts +29 -5
- package/src/postgres/access/access.e2e.test.ts +191 -0
- package/src/postgres/access/access.test.ts +147 -0
- package/src/postgres/access/acl.ts +400 -0
- package/src/postgres/access/import.ts +64 -0
- package/src/postgres/access/live.ts +123 -0
- package/src/postgres/apply/apply.ts +117 -4
- package/src/postgres/apply/constraint-sequences.e2e.test.ts +179 -0
- package/src/postgres/apply/safe-sequences.e2e.test.ts +176 -0
- package/src/postgres/apply/statements.test.ts +138 -6
- package/src/postgres/apply/statements.ts +210 -18
- package/src/postgres/entities.ts +287 -11
- package/src/postgres/entity-types.ts +4 -0
- package/src/postgres/import/generator.ts +129 -46
- package/src/postgres/import/live-export.ts +12 -2
- package/src/postgres/live/bind.ts +20 -6
- package/src/postgres/live/catalog.ts +79 -3
- package/src/postgres/live/client.ts +10 -2
- package/src/postgres/live/describe-resources.ts +27 -3
- package/src/postgres/migrate/migrate.test.ts +24 -1
- package/src/postgres/migrate/op.ts +80 -35
- package/src/postgres/migrate/outer.e2e.test.ts +163 -0
- package/src/postgres/parser.ts +247 -8
- package/src/postgres/plan/commands.ts +60 -7
- package/src/postgres/plan/deep.ts +24 -3
- package/src/postgres/plan/diff.ts +71 -6
- package/src/postgres/plan/normalize.ts +115 -2
- package/src/postgres/plan/plan.test.ts +2 -2
- package/src/postgres/plan/rules.ts +49 -5
- package/src/postgres/plan/schema.ts +4 -2
- package/src/postgres/plan/server-normalize.ts +29 -1
- package/src/postgres.ts +11 -0
- package/src/serializer.ts +14 -9
- package/src/skill-defs.ts +1 -1
- package/src/skills/chant-sql-postgres-migration.md +3 -1
- package/src/skills/chant-sql-postgres-plan.md +3 -3
- package/src/skills/chant-sql-postgres.md +9 -2
- package/src/skills/chant-sql-rebuild.md +3 -2
- package/src/skills/chant-sql.md +7 -1
- package/src/sql-files.test.ts +188 -0
- package/src/sql-files.ts +218 -0
- package/src/token-source.e2e.test.ts +142 -0
- package/src/token-source.test.ts +119 -0
- package/src/token-source.ts +189 -0
- package/src/validate.ts +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse-rebuild.d.ts","sourceRoot":"","sources":["../../../src/op/activities/clickhouse-rebuild.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,OAAO,EAAY,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACrG,OAAO,EAA2C,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAKzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,2GAA2G;AAC3G,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAWD,6EAA6E;AAC7E,wBAAsB,UAAU,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"clickhouse-rebuild.d.ts","sourceRoot":"","sources":["../../../src/op/activities/clickhouse-rebuild.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-migration.d.ts","sourceRoot":"","sources":["../../../src/op/activities/postgres-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAIzG,OAAO,
|
|
1
|
+
{"version":3,"file":"postgres-migration.d.ts","sourceRoot":"","sources":["../../../src/op/activities/postgres-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export declare const clickhouseRebuildPlanContract: import("@intentius/chant/op"
|
|
|
27
27
|
retain?: string | undefined;
|
|
28
28
|
mutationTimeout?: string | undefined;
|
|
29
29
|
replicaTimeout?: string | undefined;
|
|
30
|
+
cutoverTimeout?: string | undefined;
|
|
30
31
|
stack?: string | undefined;
|
|
31
32
|
ownershipEnv?: string | undefined;
|
|
32
33
|
cwd?: string | undefined;
|
|
@@ -52,6 +53,7 @@ export declare const clickhouseRebuildCreateContract: import("@intentius/chant/o
|
|
|
52
53
|
retain?: string | undefined;
|
|
53
54
|
mutationTimeout?: string | undefined;
|
|
54
55
|
replicaTimeout?: string | undefined;
|
|
56
|
+
cutoverTimeout?: string | undefined;
|
|
55
57
|
stack?: string | undefined;
|
|
56
58
|
ownershipEnv?: string | undefined;
|
|
57
59
|
cwd?: string | undefined;
|
|
@@ -75,6 +77,7 @@ export declare const clickhouseRebuildDualWriteContract: import("@intentius/chan
|
|
|
75
77
|
retain?: string | undefined;
|
|
76
78
|
mutationTimeout?: string | undefined;
|
|
77
79
|
replicaTimeout?: string | undefined;
|
|
80
|
+
cutoverTimeout?: string | undefined;
|
|
78
81
|
stack?: string | undefined;
|
|
79
82
|
ownershipEnv?: string | undefined;
|
|
80
83
|
cwd?: string | undefined;
|
|
@@ -99,6 +102,7 @@ export declare const clickhouseRebuildBackfillContract: import("@intentius/chant
|
|
|
99
102
|
retain?: string | undefined;
|
|
100
103
|
mutationTimeout?: string | undefined;
|
|
101
104
|
replicaTimeout?: string | undefined;
|
|
105
|
+
cutoverTimeout?: string | undefined;
|
|
102
106
|
stack?: string | undefined;
|
|
103
107
|
ownershipEnv?: string | undefined;
|
|
104
108
|
cwd?: string | undefined;
|
|
@@ -124,6 +128,7 @@ export declare const clickhouseRebuildVerifyContract: import("@intentius/chant/o
|
|
|
124
128
|
retain?: string | undefined;
|
|
125
129
|
mutationTimeout?: string | undefined;
|
|
126
130
|
replicaTimeout?: string | undefined;
|
|
131
|
+
cutoverTimeout?: string | undefined;
|
|
127
132
|
stack?: string | undefined;
|
|
128
133
|
ownershipEnv?: string | undefined;
|
|
129
134
|
cwd?: string | undefined;
|
|
@@ -154,6 +159,7 @@ export declare const clickhouseRebuildSwapContract: import("@intentius/chant/op"
|
|
|
154
159
|
retain?: string | undefined;
|
|
155
160
|
mutationTimeout?: string | undefined;
|
|
156
161
|
replicaTimeout?: string | undefined;
|
|
162
|
+
cutoverTimeout?: string | undefined;
|
|
157
163
|
stack?: string | undefined;
|
|
158
164
|
ownershipEnv?: string | undefined;
|
|
159
165
|
cwd?: string | undefined;
|
|
@@ -179,6 +185,7 @@ export declare const clickhouseRebuildRetainContract: import("@intentius/chant/o
|
|
|
179
185
|
retain?: string | undefined;
|
|
180
186
|
mutationTimeout?: string | undefined;
|
|
181
187
|
replicaTimeout?: string | undefined;
|
|
188
|
+
cutoverTimeout?: string | undefined;
|
|
182
189
|
stack?: string | undefined;
|
|
183
190
|
ownershipEnv?: string | undefined;
|
|
184
191
|
cwd?: string | undefined;
|
|
@@ -204,6 +211,7 @@ export declare const clickhouseRebuildDropContract: import("@intentius/chant/op"
|
|
|
204
211
|
retain?: string | undefined;
|
|
205
212
|
mutationTimeout?: string | undefined;
|
|
206
213
|
replicaTimeout?: string | undefined;
|
|
214
|
+
cutoverTimeout?: string | undefined;
|
|
207
215
|
stack?: string | undefined;
|
|
208
216
|
ownershipEnv?: string | undefined;
|
|
209
217
|
cwd?: string | undefined;
|
|
@@ -228,6 +236,7 @@ export declare const clickhouseRebuildCompensateContract: import("@intentius/cha
|
|
|
228
236
|
retain?: string | undefined;
|
|
229
237
|
mutationTimeout?: string | undefined;
|
|
230
238
|
replicaTimeout?: string | undefined;
|
|
239
|
+
cutoverTimeout?: string | undefined;
|
|
231
240
|
stack?: string | undefined;
|
|
232
241
|
ownershipEnv?: string | undefined;
|
|
233
242
|
cwd?: string | undefined;
|
|
@@ -252,6 +261,7 @@ export declare const postgresMigrationPlanContract: import("@intentius/chant/op"
|
|
|
252
261
|
stack?: string | undefined;
|
|
253
262
|
ownershipEnv?: string | undefined;
|
|
254
263
|
cwd?: string | undefined;
|
|
264
|
+
keepOnFailure?: boolean | undefined;
|
|
255
265
|
}, {
|
|
256
266
|
state: "done" | "migrate" | "switched";
|
|
257
267
|
migration: string;
|
|
@@ -277,6 +287,7 @@ export declare const postgresMigrationExpandContract: import("@intentius/chant/o
|
|
|
277
287
|
stack?: string | undefined;
|
|
278
288
|
ownershipEnv?: string | undefined;
|
|
279
289
|
cwd?: string | undefined;
|
|
290
|
+
keepOnFailure?: boolean | undefined;
|
|
280
291
|
}, {
|
|
281
292
|
state: "done" | "migrate" | "switched";
|
|
282
293
|
column: string;
|
|
@@ -299,6 +310,7 @@ export declare const postgresMigrationDualWriteContract: import("@intentius/chan
|
|
|
299
310
|
stack?: string | undefined;
|
|
300
311
|
ownershipEnv?: string | undefined;
|
|
301
312
|
cwd?: string | undefined;
|
|
313
|
+
keepOnFailure?: boolean | undefined;
|
|
302
314
|
}, {
|
|
303
315
|
state: "done" | "migrate" | "switched";
|
|
304
316
|
trigger: string;
|
|
@@ -321,6 +333,7 @@ export declare const postgresMigrationBackfillContract: import("@intentius/chant
|
|
|
321
333
|
stack?: string | undefined;
|
|
322
334
|
ownershipEnv?: string | undefined;
|
|
323
335
|
cwd?: string | undefined;
|
|
336
|
+
keepOnFailure?: boolean | undefined;
|
|
324
337
|
}, {
|
|
325
338
|
state: "done" | "migrate" | "switched";
|
|
326
339
|
batches: number;
|
|
@@ -346,6 +359,7 @@ export declare const postgresMigrationCarryContract: import("@intentius/chant/op
|
|
|
346
359
|
stack?: string | undefined;
|
|
347
360
|
ownershipEnv?: string | undefined;
|
|
348
361
|
cwd?: string | undefined;
|
|
362
|
+
keepOnFailure?: boolean | undefined;
|
|
349
363
|
}, {
|
|
350
364
|
state: "done" | "migrate" | "switched";
|
|
351
365
|
built: number;
|
|
@@ -370,6 +384,7 @@ export declare const postgresMigrationVerifyContract: import("@intentius/chant/o
|
|
|
370
384
|
stack?: string | undefined;
|
|
371
385
|
ownershipEnv?: string | undefined;
|
|
372
386
|
cwd?: string | undefined;
|
|
387
|
+
keepOnFailure?: boolean | undefined;
|
|
373
388
|
}, {
|
|
374
389
|
state: "done" | "migrate" | "switched";
|
|
375
390
|
rows: number;
|
|
@@ -397,6 +412,7 @@ export declare const postgresMigrationSwitchContract: import("@intentius/chant/o
|
|
|
397
412
|
stack?: string | undefined;
|
|
398
413
|
ownershipEnv?: string | undefined;
|
|
399
414
|
cwd?: string | undefined;
|
|
415
|
+
keepOnFailure?: boolean | undefined;
|
|
400
416
|
}, {
|
|
401
417
|
state: "done" | "migrate" | "switched";
|
|
402
418
|
switched: boolean;
|
|
@@ -420,6 +436,7 @@ export declare const postgresMigrationRetainContract: import("@intentius/chant/o
|
|
|
420
436
|
stack?: string | undefined;
|
|
421
437
|
ownershipEnv?: string | undefined;
|
|
422
438
|
cwd?: string | undefined;
|
|
439
|
+
keepOnFailure?: boolean | undefined;
|
|
423
440
|
}, {
|
|
424
441
|
state: "done" | "migrate" | "switched";
|
|
425
442
|
due: boolean;
|
|
@@ -444,6 +461,7 @@ export declare const postgresMigrationContractContract: import("@intentius/chant
|
|
|
444
461
|
stack?: string | undefined;
|
|
445
462
|
ownershipEnv?: string | undefined;
|
|
446
463
|
cwd?: string | undefined;
|
|
464
|
+
keepOnFailure?: boolean | undefined;
|
|
447
465
|
}, {
|
|
448
466
|
state: "done" | "migrate" | "switched";
|
|
449
467
|
dropped: boolean;
|
|
@@ -467,6 +485,7 @@ export declare const postgresMigrationCompensateContract: import("@intentius/cha
|
|
|
467
485
|
stack?: string | undefined;
|
|
468
486
|
ownershipEnv?: string | undefined;
|
|
469
487
|
cwd?: string | undefined;
|
|
488
|
+
keepOnFailure?: boolean | undefined;
|
|
470
489
|
}, {
|
|
471
490
|
dropped: string[];
|
|
472
491
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-contracts.d.ts","sourceRoot":"","sources":["../../src/op/activity-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"activity-contracts.d.ts","sourceRoot":"","sources":["../../src/op/activity-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6BH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;EAKzC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;EAK3C,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;EAK9C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;EAK7C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY3C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;EAKzC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;EAK3C,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;EAKzC,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;EAK/C,CAAC;AAwBF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;EAKzC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;EAK3C,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;EAK9C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;EAK7C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;EAK1C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc3C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;EAK3C,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;EAK3C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;EAK7C,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;EAK/C,CAAC;AAIF,+FAA+F;AAC/F,eAAO,MAAM,eAAe;;;;;;;;;EAS3B,CAAC"}
|
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;AAwB5E,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;AAwB5E,eAAO,MAAM,SAAS,EAAE,aA0OvB,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Access as chant compares it (#3681): the privileges each role holds on each
|
|
3
|
+
* object, and the default privileges objects are created with.
|
|
4
|
+
*
|
|
5
|
+
* A `grant` declaration is a statement, not an object: `GRANT SELECT ON a, b
|
|
6
|
+
* TO r1, r2` is four privileges, and the catalog keeps no statement, only
|
|
7
|
+
* each object's access control list. So declarations and the server are both
|
|
8
|
+
* brought to the same form, one entry per object (or column) and grantee
|
|
9
|
+
* holding a set of privileges, and those entries are compared.
|
|
10
|
+
*
|
|
11
|
+
* What a declared object's entries should be:
|
|
12
|
+
*
|
|
13
|
+
* - what Postgres gives a new object of its kind, the owner's own privileges
|
|
14
|
+
* left out (a function or procedure: EXECUTE to PUBLIC; anything else:
|
|
15
|
+
* nothing);
|
|
16
|
+
* - with the declared default privileges for objects of that kind created by
|
|
17
|
+
* the role that applies, globally and in the object's schema, since chant
|
|
18
|
+
* creates it as that role;
|
|
19
|
+
* - with every declared GRANT added and every declared REVOKE taken away, in
|
|
20
|
+
* the build's order.
|
|
21
|
+
*
|
|
22
|
+
* The owner's own privileges are never compared: the owner has them by
|
|
23
|
+
* owning the object. A grant on an object the build does not declare (the
|
|
24
|
+
* `public` schema) is compared too, from what Postgres gives a new object.
|
|
25
|
+
*
|
|
26
|
+
* Default privileges are compared for the role that applies (and each role a
|
|
27
|
+
* declaration names with `FOR ROLE`): globally, where none declared means
|
|
28
|
+
* Postgres's own defaults, and per schema, where none declared means none.
|
|
29
|
+
*/
|
|
30
|
+
import type { PgChange } from "../plan/diff.js";
|
|
31
|
+
import type { CanonicalPgObject } from "../plan/normalize.js";
|
|
32
|
+
export type AclKind = "schema" | "table" | "sequence" | "function" | "procedure" | "column" | "default";
|
|
33
|
+
/** The kinds of object default privileges are for. */
|
|
34
|
+
export type DefaultObjects = "tables" | "sequences" | "functions" | "types" | "schemas";
|
|
35
|
+
/** What an entry is on. */
|
|
36
|
+
export interface AclTarget {
|
|
37
|
+
kind: AclKind;
|
|
38
|
+
/** The object's canonical name: `app`, `app.orders`, `app.f(integer)`. Empty for default privileges. */
|
|
39
|
+
name: string;
|
|
40
|
+
column?: string;
|
|
41
|
+
/** Default privileges: whose new objects (`""` for the role that applies), in which schema (undefined: every schema), of which kind. */
|
|
42
|
+
role?: string;
|
|
43
|
+
schema?: string;
|
|
44
|
+
objects?: DefaultObjects;
|
|
45
|
+
}
|
|
46
|
+
/** One grantee's privileges on one target: each privilege, and whether it was granted WITH GRANT OPTION. */
|
|
47
|
+
export interface AclEntry {
|
|
48
|
+
target: AclTarget;
|
|
49
|
+
grantee: string;
|
|
50
|
+
privileges: Map<string, boolean>;
|
|
51
|
+
}
|
|
52
|
+
export type AccessState = Map<string, AclEntry>;
|
|
53
|
+
/** An access change, with the statements that make it and the grant declarations behind it. */
|
|
54
|
+
export interface AccessChange {
|
|
55
|
+
change: PgChange;
|
|
56
|
+
target: AclTarget;
|
|
57
|
+
grantee: string;
|
|
58
|
+
sql: string[];
|
|
59
|
+
/** The export names of the declarations that grant or revoke on this target to this grantee. */
|
|
60
|
+
exports: string[];
|
|
61
|
+
}
|
|
62
|
+
declare const SELF = "";
|
|
63
|
+
/** A target's key: relations (tables, views, sequences) share one namespace, as in the catalog. */
|
|
64
|
+
export declare function targetKey(t: AclTarget): string;
|
|
65
|
+
export declare const entryKey: (t: AclTarget, grantee: string) => string;
|
|
66
|
+
/** Every privilege of a kind of object, as ALL PRIVILEGES grants them. MAINTAIN is a table's from 17. */
|
|
67
|
+
export declare function allPrivileges(kind: AclKind | DefaultObjects, major: number): string[];
|
|
68
|
+
/** What Postgres gives a new object of a kind, the owner's own privileges left out: EXECUTE on a routine and USAGE on a type to PUBLIC. */
|
|
69
|
+
export declare function builtinEntries(kind: AclKind | DefaultObjects): Array<{
|
|
70
|
+
grantee: string;
|
|
71
|
+
privilege: string;
|
|
72
|
+
}>;
|
|
73
|
+
declare function add(state: AccessState, target: AclTarget, grantee: string, privilege: string, grantable: boolean): void;
|
|
74
|
+
export interface DeclaredAccess {
|
|
75
|
+
state: AccessState;
|
|
76
|
+
/** Every target the declarations decide: the declared objects and what the grants name. */
|
|
77
|
+
targets: AclTarget[];
|
|
78
|
+
/** The export names of the declarations behind each entry. */
|
|
79
|
+
exportsOf: Map<string, string[]>;
|
|
80
|
+
/** The roles `FOR ROLE` names, whose default privileges are compared too. */
|
|
81
|
+
forRoles: string[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The access a set of declarations adds up to. `objects` are canonical, in
|
|
85
|
+
* the build's order, keyed by export name. `self` is the role that applies,
|
|
86
|
+
* when known: a declaration naming it with `FOR ROLE` is its own default
|
|
87
|
+
* privileges, and a grant to it is the owner's, which is never compared.
|
|
88
|
+
*/
|
|
89
|
+
export declare function declaredAccess(objects: ReadonlyArray<{
|
|
90
|
+
key: string;
|
|
91
|
+
canonical: CanonicalPgObject;
|
|
92
|
+
}>, opts: {
|
|
93
|
+
major: number;
|
|
94
|
+
self?: string;
|
|
95
|
+
}): DeclaredAccess;
|
|
96
|
+
/**
|
|
97
|
+
* The changes from `before` to `after`, one per entry and direction, each
|
|
98
|
+
* with its statements: revokes first (a privilege, then a grant option), then
|
|
99
|
+
* grants (a grant option on its own with WITH GRANT OPTION).
|
|
100
|
+
*/
|
|
101
|
+
export declare function diffAccess(before: AccessState, after: AccessState, exportsOf?: ReadonlyMap<string, string[]>): AccessChange[];
|
|
102
|
+
/** What a server holds: its entries, which objects exist, and for which kinds the role that applies has global default privileges of its own. */
|
|
103
|
+
export interface LiveAccess {
|
|
104
|
+
state: AccessState;
|
|
105
|
+
/** The target keys of the objects that exist. */
|
|
106
|
+
present: Set<string>;
|
|
107
|
+
/** The kinds of object the role that applies has a global `pg_default_acl` row for. */
|
|
108
|
+
globalDefaults: Set<DefaultObjects>;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The entries the server would give each declared object that does not exist
|
|
112
|
+
* yet: Postgres's defaults, or the role's global default privileges, and its
|
|
113
|
+
* default privileges in the object's schema.
|
|
114
|
+
*/
|
|
115
|
+
export declare function predictedAccess(missing: readonly AclTarget[], live: LiveAccess): AccessState;
|
|
116
|
+
/** Adds an entry, for the live reader. */
|
|
117
|
+
export declare const addEntry: typeof add;
|
|
118
|
+
export { SELF as APPLYING_ROLE };
|
|
119
|
+
//# sourceMappingURL=acl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.d.ts","sourceRoot":"","sources":["../../../src/postgres/access/acl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import's access (#3681): the privileges on the imported objects, and the
|
|
3
|
+
* default privileges of the role that reads, as `grant` declarations. Each
|
|
4
|
+
* is the GRANT, REVOKE or ALTER DEFAULT PRIVILEGES that takes what Postgres
|
|
5
|
+
* gives a new object (EXECUTE to PUBLIC on a routine, nothing on the rest) to
|
|
6
|
+
* what the server holds, one per object and grantee, so the import plans as
|
|
7
|
+
* no change.
|
|
8
|
+
*/
|
|
9
|
+
import type { PostgresClient } from "../live/client.js";
|
|
10
|
+
import type { LivePgObject } from "../live/catalog.js";
|
|
11
|
+
import type { ImportedPgObject } from "../import/ir.js";
|
|
12
|
+
export declare function importedAccess(client: PostgresClient, objects: readonly LivePgObject[], schemas: readonly string[] | undefined): Promise<ImportedPgObject[]>;
|
|
13
|
+
//# sourceMappingURL=import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/postgres/access/import.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAuBrD,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6BlK"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading access from a live server (#3681): each target's access control
|
|
3
|
+
* list, exploded into one entry per grantee (`aclexplode`, with
|
|
4
|
+
* `acldefault` where the list is NULL, which means Postgres's own defaults),
|
|
5
|
+
* the owner's own privileges left out; every column's list of a relation
|
|
6
|
+
* read; and the default privileges (`pg_default_acl`) of the role that runs
|
|
7
|
+
* the read and of the roles the declarations name with `FOR ROLE`, globally
|
|
8
|
+
* and in the schemas in scope.
|
|
9
|
+
*/
|
|
10
|
+
import type { PostgresClient } from "../live/client.js";
|
|
11
|
+
import { type AclTarget, type LiveAccess } from "./acl.js";
|
|
12
|
+
export interface LiveAccessScope {
|
|
13
|
+
/** The schemas whose default privileges are read; undefined is every schema. */
|
|
14
|
+
schemas?: readonly string[];
|
|
15
|
+
/** Roles besides the one that runs the read whose default privileges are read. */
|
|
16
|
+
forRoles?: readonly string[];
|
|
17
|
+
/** Global default-privilege targets the declarations decide: one with no row on the server holds Postgres's own defaults. */
|
|
18
|
+
declaredDefaults?: readonly AclTarget[];
|
|
19
|
+
}
|
|
20
|
+
/** The access the server holds on `targets`, and the default privileges in scope. */
|
|
21
|
+
export declare function readLiveAccess(client: PostgresClient, targets: readonly AclTarget[], scope?: LiveAccessScope): Promise<LiveAccess & {
|
|
22
|
+
self: string;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/postgres/access/live.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAwE,KAAK,SAAS,EAAuB,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAQnJ,MAAM,WAAW,eAAe;IAC9B,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,6HAA6H;IAC7H,gBAAgB,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAED,qFAAqF;AACrF,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6F/J"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/postgres/apply/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAiE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEtI,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAA+B,KAAK,gBAAgB,EAAqC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/postgres/apply/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,20 @@ export interface PgStep {
|
|
|
56
56
|
rule?: PgClassifierRuleId;
|
|
57
57
|
/** An index this statement builds CONCURRENTLY: a failed build leaves it INVALID, and the applier drops it again. */
|
|
58
58
|
buildsIndex?: string;
|
|
59
|
+
/** A query to run before the statement, whose success depends on the rows already in the table (#3686). */
|
|
60
|
+
precheck?: PgPrecheck;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A data-dependent statement's pre-check (#3686): a query that returns one
|
|
64
|
+
* row with one column, `n`, the count of rows (or groups of rows) the
|
|
65
|
+
* statement would fail on. Zero means it can run. Nothing runs it on its own:
|
|
66
|
+
* a caller runs every step's pre-check before the first statement, and stops
|
|
67
|
+
* when one is not zero. It reads the table without locking it beyond `SELECT`.
|
|
68
|
+
*/
|
|
69
|
+
export interface PgPrecheck {
|
|
70
|
+
sql: string;
|
|
71
|
+
/** What a count above zero means, e.g. `rows where email is NULL, which SET NOT NULL fails on`. */
|
|
72
|
+
detail: string;
|
|
59
73
|
}
|
|
60
74
|
/** What {@link alterSteps} could not make in place: changes with no statement, each with why. */
|
|
61
75
|
export interface UnsupportedChange {
|
|
@@ -81,6 +95,31 @@ export declare const objectIdent: (o: {
|
|
|
81
95
|
export declare const KIND_WORDS: Readonly<Record<CanonicalKind, string>>;
|
|
82
96
|
/** The canonical kind of an entity type. */
|
|
83
97
|
export declare const kindOfType: (type: string) => CanonicalKind;
|
|
98
|
+
/** The rows of `table` with `column` NULL: what SET NOT NULL fails on. */
|
|
99
|
+
export declare function nullPrecheck(table: string, column: string): PgPrecheck;
|
|
100
|
+
/**
|
|
101
|
+
* The groups of rows of `table` with the same `columns`: what a unique index
|
|
102
|
+
* or a unique or primary key constraint fails on. NULLs are distinct unless
|
|
103
|
+
* `nullsNotDistinct`; a primary key also counts the rows with a NULL key
|
|
104
|
+
* column, which its implied NOT NULL fails on. `where` is a partial index's
|
|
105
|
+
* predicate.
|
|
106
|
+
*/
|
|
107
|
+
export declare function duplicatePrecheck(table: string, columns: readonly string[], opts?: {
|
|
108
|
+
primaryKey?: boolean;
|
|
109
|
+
nullsNotDistinct?: boolean;
|
|
110
|
+
where?: string;
|
|
111
|
+
}): PgPrecheck;
|
|
112
|
+
/** The rows of `table` that fail a CHECK: its expression false (a NULL result passes). */
|
|
113
|
+
export declare function checkPrecheck(table: string, expr: string, name?: string): PgPrecheck;
|
|
114
|
+
/**
|
|
115
|
+
* The rows of `table` whose foreign key references no row: every key column
|
|
116
|
+
* set and no referenced row with those values (MATCH SIMPLE, the default).
|
|
117
|
+
* Undefined for a foreign key that names no referenced columns or is MATCH
|
|
118
|
+
* FULL, which the query does not cover.
|
|
119
|
+
*/
|
|
120
|
+
export declare function foreignKeyPrecheck(table: string, fk: ForeignKeyDef): PgPrecheck | undefined;
|
|
121
|
+
/** The check that proves a column NOT NULL while SET NOT NULL runs (SQLPG210), named as the migration Op names its own. */
|
|
122
|
+
export declare const notNullCheckName: (column: string) => string;
|
|
84
123
|
interface Statement {
|
|
85
124
|
text: string;
|
|
86
125
|
tokens: Token[];
|
|
@@ -101,6 +140,7 @@ export declare function createSteps(obj: Pick<DeclaredPgObject, "ddl" | "canonic
|
|
|
101
140
|
orReplace?: boolean;
|
|
102
141
|
cls?: PgChangeClass;
|
|
103
142
|
rule?: PgClassifierRuleId;
|
|
143
|
+
access?: boolean;
|
|
104
144
|
}): PgStep[];
|
|
105
145
|
/** The `DROP` for an object a prune removes. Never `CASCADE`: what something else still uses is kept. */
|
|
106
146
|
export declare function dropStatement(kind: CanonicalKind, schema: string | undefined, name: string, signature?: string): PgStep;
|
|
@@ -108,6 +148,22 @@ export declare function dropStatement(kind: CanonicalKind, schema: string | unde
|
|
|
108
148
|
export declare function columnDefinition(c: ColumnDef): string;
|
|
109
149
|
/** A constraint as a table constraint (`ADD CONSTRAINT ...`), whether it was declared on a column or the table. */
|
|
110
150
|
export declare function constraintSql(kind: CanonicalConstraint["kind"], def: KeyDef | CheckDef | ForeignKeyDef | ExclusionDef): string;
|
|
151
|
+
/**
|
|
152
|
+
* A CHECK (SQLPG218) or a foreign key (SQLPG219) added to a table that
|
|
153
|
+
* exists, without reading its rows under a lock that blocks writes: the
|
|
154
|
+
* constraint added NOT VALID, which checks new rows only (SQLPG217), then
|
|
155
|
+
* validated (SQLPG220), which reads the rows under SHARE UPDATE EXCLUSIVE
|
|
156
|
+
* while writes go on. The applier commits between the two, since their
|
|
157
|
+
* classes differ, so the validation runs in a transaction of its own. A run
|
|
158
|
+
* interrupted after the first statement leaves the constraint NOT VALID on
|
|
159
|
+
* the server, and the next plan validates it as found. The first statement
|
|
160
|
+
* carries the pre-check (the rows the check or the foreign key refuses).
|
|
161
|
+
* VALIDATE needs a name, so a constraint declared without one is given
|
|
162
|
+
* {@link unnamedConstraintName}'s; the diff matches an unnamed declaration
|
|
163
|
+
* to the constraint by its body, whatever it is called.
|
|
164
|
+
*/
|
|
165
|
+
/** The name given to a CHECK or foreign key declared without one: `<table>_<hash of its body>_check` or `_fkey`. */
|
|
166
|
+
export declare function unnamedConstraintName(table: string, c: Pick<CanonicalConstraint, "kind" | "body">): string;
|
|
111
167
|
/** `ALTER SEQUENCE`'s options for what is declared, every option left out set back to its default. */
|
|
112
168
|
export declare function sequenceOptionsSql(p: SequenceProps): string;
|
|
113
169
|
/** Changes a plan refuses to make in place: expand and contract, by the migration Op (#3281). */
|
|
@@ -116,6 +172,19 @@ export declare const isRefused: (c: PgChange) => boolean;
|
|
|
116
172
|
export declare const isDestructive: (c: PgChange) => boolean;
|
|
117
173
|
/** Changes that replace the object: drop it and create it again from its declaration. */
|
|
118
174
|
export declare const isRecreate: (c: PgChange) => boolean;
|
|
175
|
+
/**
|
|
176
|
+
* SET NOT NULL on a table that exists, without reading the table under
|
|
177
|
+
* ACCESS EXCLUSIVE (SQLPG210): a CHECK (column IS NOT NULL) added NOT VALID,
|
|
178
|
+
* which reads no rows; validated, which reads them under SHARE UPDATE
|
|
179
|
+
* EXCLUSIVE while writes go on; then SET NOT NULL, which the valid check
|
|
180
|
+
* proves without a scan (12 and later), and the check dropped. The applier
|
|
181
|
+
* commits between the catalog changes and the validation, so the brief
|
|
182
|
+
* ACCESS EXCLUSIVE locks are never held across the scan. A check left by an
|
|
183
|
+
* interrupted run is validated as found. The first statement carries the
|
|
184
|
+
* NULL count as its pre-check. 18's `NOT NULL ... NOT VALID` would save the
|
|
185
|
+
* last statement; the check is used on every major for one sequence.
|
|
186
|
+
*/
|
|
187
|
+
export declare function setNotNullSteps(table: string, column: string, live?: Pick<PgDiffObject, "constraints">): PgStep[];
|
|
119
188
|
/**
|
|
120
189
|
* The statements for an object that exists on the server, change by change.
|
|
121
190
|
* `live` is the server's definition, matched to the declaration (a renamed
|
|
@@ -216,6 +285,8 @@ export interface PgStatementPlanInput {
|
|
|
216
285
|
carriesMarker?: (live: PgDiffObject, currentKey: string) => boolean;
|
|
217
286
|
/** The comment an extension's control file sets, kept under the trailer when the declaration sets none. */
|
|
218
287
|
extensionComment?: (name: string) => string | undefined;
|
|
288
|
+
/** Whether access is managed: off, a table is created without its row-level security statements. Default: on. */
|
|
289
|
+
access?: boolean;
|
|
219
290
|
}
|
|
220
291
|
export interface PgStatementPlan {
|
|
221
292
|
/** One entry per declared object, in creation order. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/postgres/apply/statements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/postgres/apply/statements.ts"],"names":[],"mappings":"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"}
|