@prisma/orm-target-postgres 8.0.0-rc.17-dev.37 → 8.0.0-rc.17-dev.38
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/{adapter-C0SKPLzt-D3_mXLaM.mjs → adapter-C0SKPLzt-flxKm2YQ.mjs} +5 -5
- package/dist/{adapter-C0SKPLzt-D3_mXLaM.mjs.map → adapter-C0SKPLzt-flxKm2YQ.mjs.map} +1 -1
- package/dist/adapter.mjs +5 -5
- package/dist/adapter__adapter.mjs +2 -2
- package/dist/adapter__control.mjs +6 -6
- package/dist/adapter__runtime.mjs +4 -4
- package/dist/adapter__sql-renderer.mjs +1 -1
- package/dist/{authoring-kZOSollq-DP0v31A_.mjs → authoring-CTn87jlt-VHX7hiNU.mjs} +5 -5
- package/dist/{authoring-kZOSollq-DP0v31A_.mjs.map → authoring-CTn87jlt-VHX7hiNU.mjs.map} +1 -1
- package/dist/autoincrement-widths-DbyXRo5B-BUVCYb_V.mjs +39 -0
- package/dist/autoincrement-widths-DbyXRo5B-BUVCYb_V.mjs.map +1 -0
- package/dist/{check-expressions-BaFrBceq-ChgvazEN.mjs → check-expressions-CVLs1Cgf-DaMRk-Q4.mjs} +3 -3
- package/dist/{check-expressions-BaFrBceq-ChgvazEN.mjs.map → check-expressions-CVLs1Cgf-DaMRk-Q4.mjs.map} +1 -1
- package/dist/{codec-registry-CKBDkxX7-Kw84Or3s.mjs → codec-registry-BWUY_QLt-CzrMkP9N.mjs} +4 -4
- package/dist/{codec-registry-CKBDkxX7-Kw84Or3s.mjs.map → codec-registry-BWUY_QLt-CzrMkP9N.mjs.map} +1 -1
- package/dist/{codecs-BK3J4C0n-B8EnUXZf.mjs → codecs-Cb5S70Lx-WRSQkpza.mjs} +3 -3
- package/dist/{codecs-BK3J4C0n-B8EnUXZf.mjs.map → codecs-Cb5S70Lx-WRSQkpza.mjs.map} +1 -1
- package/dist/{contract-free-DjI-gclO.mjs → contract-free-spGyVyoh.mjs} +3 -3
- package/dist/{contract-free-DjI-gclO.mjs.map → contract-free-spGyVyoh.mjs.map} +1 -1
- package/dist/{control-DJo3P3yL.mjs → control-C4-UbYOH.mjs} +6 -3
- package/dist/control-C4-UbYOH.mjs.map +1 -0
- package/dist/{control-C5pTVhtN.mjs → control-DnqvbRrL.mjs} +105 -23
- package/dist/control-DnqvbRrL.mjs.map +1 -0
- package/dist/{control-adapter-CEeF_Na4-CMRZNp7S.mjs → control-adapter-CEeF_Na4-Cp6Si4hD.mjs} +6 -6
- package/dist/{control-adapter-CEeF_Na4-CMRZNp7S.mjs.map → control-adapter-CEeF_Na4-Cp6Si4hD.mjs.map} +1 -1
- package/dist/{control-policy-C5VoaD11-lzAw5cjN.mjs → control-policy-DXaIsgUW-Btyo9Vs8.mjs} +172 -130
- package/dist/control-policy-DXaIsgUW-Btyo9Vs8.mjs.map +1 -0
- package/dist/data-transform-C-3UJ3hC.d.mts +1 -0
- package/dist/{data-transform-Bo32KRbq-BLn1_UG-.mjs → data-transform-CtHnNYhF-r19375h3.mjs} +11 -4
- package/dist/data-transform-CtHnNYhF-r19375h3.mjs.map +1 -0
- package/dist/{data-transform-Ck5FbyNO-BNE7QlAo.d.mts → data-transform-nGy9rz87-CEOXAj91.d.mts} +14 -3
- package/dist/data-transform-nGy9rz87-CEOXAj91.d.mts.map +1 -0
- package/dist/{data-type-entries-DoR61yeO-BB2cY7rI.mjs → data-type-entries-15a-vBdm-vIj5l1u5.mjs} +3 -3
- package/dist/{data-type-entries-DoR61yeO-BB2cY7rI.mjs.map → data-type-entries-15a-vBdm-vIj5l1u5.mjs.map} +1 -1
- package/dist/{data-types-DRkmmE9S-C5Q9oH4Q.mjs → data-types-K6tDhu1D-BN--9o1o.mjs} +3 -3
- package/dist/{data-types-DRkmmE9S-C5Q9oH4Q.mjs.map → data-types-K6tDhu1D-BN--9o1o.mjs.map} +1 -1
- package/dist/{ddl-CFWv3VOT-Ad-I5p22.mjs → ddl-BKqbtVN3-CPHiYaCY.mjs} +3 -3
- package/dist/{ddl-CFWv3VOT-Ad-I5p22.mjs.map → ddl-BKqbtVN3-CPHiYaCY.mjs.map} +1 -1
- package/dist/{descriptor-meta-Dekti3e8-DLSepvAq.mjs → descriptor-meta-D5OipARb-6znWwvjE.mjs} +8 -8
- package/dist/{descriptor-meta-Dekti3e8-DLSepvAq.mjs.map → descriptor-meta-D5OipARb-6znWwvjE.mjs.map} +1 -1
- package/dist/{descriptor-meta-DyjDJfnQ-5lgalclQ.mjs → descriptor-meta-DyjDJfnQ-CoD4Kmpz.mjs} +3 -3
- package/dist/{descriptor-meta-DyjDJfnQ-5lgalclQ.mjs.map → descriptor-meta-DyjDJfnQ-CoD4Kmpz.mjs.map} +1 -1
- package/dist/{descriptor-meta-runtime-iArZEoCE-GhLNDdg-.mjs → descriptor-meta-runtime-D4a-hsd_-B_YkwgHQ.mjs} +3 -3
- package/dist/{descriptor-meta-runtime-iArZEoCE-GhLNDdg-.mjs.map → descriptor-meta-runtime-D4a-hsd_-B_YkwgHQ.mjs.map} +1 -1
- package/dist/{diff-database-schema-CUSXh2y2-CWRGCPL7.mjs → diff-database-schema-BV6Px0Gg-DAC6TL3P.mjs} +6 -6
- package/dist/{diff-database-schema-CUSXh2y2-CWRGCPL7.mjs.map → diff-database-schema-BV6Px0Gg-DAC6TL3P.mjs.map} +1 -1
- package/dist/driver.mjs +1 -1
- package/dist/driver__control.mjs +1 -1
- package/dist/{errors-DZ3zQdpT.d.mts → errors-D5sJ0fgp.d.mts} +2 -2
- package/dist/{errors-DZ3zQdpT.d.mts.map → errors-D5sJ0fgp.d.mts.map} +1 -1
- package/dist/{full-text-search-document-DJd-9K-K-CuV_QLH3.mjs → full-text-search-document-DYNz29YC-CfVTPwIL.mjs} +3 -3
- package/dist/{full-text-search-document-DJd-9K-K-CuV_QLH3.mjs.map → full-text-search-document-DYNz29YC-CfVTPwIL.mjs.map} +1 -1
- package/dist/indexes-BWHRVhke-vqXUnRfT.d.mts +49 -0
- package/dist/indexes-BWHRVhke-vqXUnRfT.d.mts.map +1 -0
- package/dist/{infer-psl-contract-BCPaLzjl-ByBJpE6R.mjs → infer-psl-contract-B_Bl_RJC-BfJbvDUs.mjs} +6 -6
- package/dist/{infer-psl-contract-BCPaLzjl-ByBJpE6R.mjs.map → infer-psl-contract-B_Bl_RJC-BfJbvDUs.mjs.map} +1 -1
- package/dist/{issue-planner-BLOtwO3z.d.mts → issue-planner-BiJDKtW5.d.mts} +10 -3
- package/dist/issue-planner-BiJDKtW5.d.mts.map +1 -0
- package/dist/migration-C9ZH26Nj.mjs.map +1 -1
- package/dist/{migration-CQeS0oqg.d.mts → migration-NJo7cPpB.d.mts} +6 -6
- package/dist/{migration-CQeS0oqg.d.mts.map → migration-NJo7cPpB.d.mts.map} +1 -1
- package/dist/{op-factory-call-DF9ijUbg-CSF8ZhJM.d.mts → op-factory-call-DkaMatJ4-D_7fWo-v.d.mts} +46 -87
- package/dist/op-factory-call-DkaMatJ4-D_7fWo-v.d.mts.map +1 -0
- package/dist/op-factory-call-LGCmMtZM.d.mts +1 -0
- package/dist/{op-factory-call-DiwaNQVO-NSekrcmI.mjs → op-factory-call-ltgiEZ8g-CX6WX57X.mjs} +163 -99
- package/dist/op-factory-call-ltgiEZ8g-CX6WX57X.mjs.map +1 -0
- package/dist/{planner-DCYVwcYk-vGUsjG3x.mjs → planner-Ccn9yxL7-B6Pgoz6c.mjs} +95 -18
- package/dist/planner-Ccn9yxL7-B6Pgoz6c.mjs.map +1 -0
- package/dist/{planner-C6vpC6nq.d.mts → planner-Xei8enE-.d.mts} +5 -4
- package/dist/planner-Xei8enE-.d.mts.map +1 -0
- package/dist/{planner-ddl-builders-Y0_96xpe-BzugdEDO.mjs → planner-ddl-builders-BcJ353Wj-Dfaixf4X.mjs} +6 -38
- package/dist/planner-ddl-builders-BcJ353Wj-Dfaixf4X.mjs.map +1 -0
- package/dist/{planner-identity-values-CRS2cQ6v-DakZeIQj.mjs → planner-identity-values-BZdomjRU-G521DabU.mjs} +3 -3
- package/dist/{planner-identity-values-CRS2cQ6v-DakZeIQj.mjs.map → planner-identity-values-BZdomjRU-G521DabU.mjs.map} +1 -1
- package/dist/{planner-produced-postgres-migration-BPk0jQUi-BFV5JJn1.mjs → planner-produced-postgres-migration-Brgj59VY-DOOLRWyy.mjs} +4 -4
- package/dist/{planner-produced-postgres-migration-BPk0jQUi-BFV5JJn1.mjs.map → planner-produced-postgres-migration-Brgj59VY-DOOLRWyy.mjs.map} +1 -1
- package/dist/planner-produced-postgres-migration-DgyIhdpw.d.mts +1 -0
- package/dist/{planner-produced-postgres-migration-CoLy4THO-CkCRWsv_.d.mts → planner-produced-postgres-migration-MoopN05f-CfmsQNwj.d.mts} +3 -3
- package/dist/planner-produced-postgres-migration-MoopN05f-CfmsQNwj.d.mts.map +1 -0
- package/dist/{planner-schema-lookup-kMIVP2y--CdO4VlnF.mjs → planner-schema-lookup-CdgWer9s.mjs} +2 -2
- package/dist/planner-schema-lookup-CdgWer9s.mjs.map +1 -0
- package/dist/{planner-sql-checks-CXDdt_9m.d.mts → planner-sql-checks-C54jJ5qt.d.mts} +16 -2
- package/dist/planner-sql-checks-C54jJ5qt.d.mts.map +1 -0
- package/dist/planner-sql-checks-CX37qDix-Gkq38UQQ.mjs +108 -0
- package/dist/planner-sql-checks-CX37qDix-Gkq38UQQ.mjs.map +1 -0
- package/dist/planner-target-details-CUEF0s90-COTks5yz.mjs +14 -0
- package/dist/planner-target-details-CUEF0s90-COTks5yz.mjs.map +1 -0
- package/dist/{postgres-codec-traits-BUygtI9N-CB-uwvY1.mjs → postgres-codec-traits-BV62PF0L-NuMNArAx.mjs} +3 -3
- package/dist/{postgres-codec-traits-BUygtI9N-CB-uwvY1.mjs.map → postgres-codec-traits-BV62PF0L-NuMNArAx.mjs.map} +1 -1
- package/dist/{postgres-contract-view-6xGfZyGS-C58Bint3.mjs → postgres-contract-view-3yxlqPfK-CRFLsRHu.mjs} +7 -7
- package/dist/{postgres-contract-view-6xGfZyGS-C58Bint3.mjs.map → postgres-contract-view-3yxlqPfK-CRFLsRHu.mjs.map} +1 -1
- package/dist/{postgres-migration-BSvGOQze-WEc_3gN0.mjs → postgres-migration-CLIfS2iQ-BgnVMLRT.mjs} +63 -20
- package/dist/postgres-migration-CLIfS2iQ-BgnVMLRT.mjs.map +1 -0
- package/dist/{postgres-migration-Dajq9YrO-_sZwyRnK.d.mts → postgres-migration-D5OiThXV-CihIARAE.d.mts} +27 -8
- package/dist/{postgres-migration-Dajq9YrO-_sZwyRnK.d.mts.map → postgres-migration-D5OiThXV-CihIARAE.d.mts.map} +1 -1
- package/dist/{postgres-schema-DIaAgaL6-Dmqzjbu5.mjs → postgres-schema-Ysxbqkzr-hFRwS-zT.mjs} +3 -3
- package/dist/{postgres-schema-DIaAgaL6-Dmqzjbu5.mjs.map → postgres-schema-Ysxbqkzr-hFRwS-zT.mjs.map} +1 -1
- package/dist/{prisma7-binding-DQlvZyAM.mjs → prisma7-binding-nxvUgQTH.mjs} +6 -6
- package/dist/{prisma7-binding-DQlvZyAM.mjs.map → prisma7-binding-nxvUgQTH.mjs.map} +1 -1
- package/dist/{render-ops-D1lOuFbE-d95NrYqF.mjs → render-ops-Cw9B6aq6-CMzRGNUZ.mjs} +3 -3
- package/dist/{render-ops-D1lOuFbE-d95NrYqF.mjs.map → render-ops-Cw9B6aq6-CMzRGNUZ.mjs.map} +1 -1
- package/dist/{resolve-ddl-schema-b746rtzf-Dydnc_gK.mjs → resolve-ddl-schema-BvsUhPsJ-CY5uEwIr.mjs} +3 -3
- package/dist/{resolve-ddl-schema-b746rtzf-Dydnc_gK.mjs.map → resolve-ddl-schema-BvsUhPsJ-CY5uEwIr.mjs.map} +1 -1
- package/dist/{sql-renderer-DT4IEOVi-CBE8uTub.mjs → sql-renderer-DT4IEOVi-CGCgCiTV.mjs} +3 -3
- package/dist/{sql-renderer-DT4IEOVi-CBE8uTub.mjs.map → sql-renderer-DT4IEOVi-CGCgCiTV.mjs.map} +1 -1
- package/dist/{sql-utils-CVsvXiX4-C7xD0Bgv.mjs → sql-utils-Df-nf6eM-Ov1KgjWm.mjs} +24 -3
- package/dist/{sql-utils-CVsvXiX4-C7xD0Bgv.mjs.map → sql-utils-Df-nf6eM-Ov1KgjWm.mjs.map} +1 -1
- package/dist/target.d.mts +13 -13
- package/dist/target.mjs +29 -29
- package/dist/target__codecs.mjs +2 -2
- package/dist/target__contract-free.mjs +3 -3
- package/dist/target__control.mjs +3 -3
- package/dist/target__data-transform.d.mts +2 -2
- package/dist/target__data-transform.mjs +1 -1
- package/dist/target__data-types.mjs +2 -2
- package/dist/target__diff-database-schema.mjs +1 -1
- package/dist/target__errors.d.mts +1 -1
- package/dist/target__full-text-index-authoring.mjs +1 -1
- package/dist/target__issue-planner.d.mts +1 -1
- package/dist/target__issue-planner.mjs +1 -1
- package/dist/target__migration.d.mts +3 -3
- package/dist/target__migration.mjs +3 -3
- package/dist/target__op-factory-call.d.mts +3 -3
- package/dist/target__op-factory-call.mjs +2 -2
- package/dist/target__pack.mjs +1 -1
- package/dist/target__planner-ddl-builders.mjs +1 -1
- package/dist/target__planner-identity-values.mjs +1 -1
- package/dist/target__planner-produced-postgres-migration.d.mts +2 -2
- package/dist/target__planner-produced-postgres-migration.mjs +1 -1
- package/dist/target__planner-schema-lookup.mjs +1 -1
- package/dist/target__planner-sql-checks.d.mts +2 -2
- package/dist/target__planner-sql-checks.mjs +2 -2
- package/dist/target__planner.d.mts +1 -1
- package/dist/target__planner.mjs +2 -2
- package/dist/target__prisma7-binding.mjs +1 -1
- package/dist/target__render-ops.mjs +1 -1
- package/dist/target__runtime.mjs +4 -4
- package/dist/target__runtime.mjs.map +1 -1
- package/dist/target__schema-ir-annotations.mjs +1 -1
- package/dist/target__sql-utils.mjs +2 -2
- package/dist/target__types.mjs +2 -2
- package/package.json +9 -9
- package/dist/control-C5pTVhtN.mjs.map +0 -1
- package/dist/control-DJo3P3yL.mjs.map +0 -1
- package/dist/control-policy-C5VoaD11-lzAw5cjN.mjs.map +0 -1
- package/dist/data-transform-BSM7TQpE.d.mts +0 -1
- package/dist/data-transform-Bo32KRbq-BLn1_UG-.mjs.map +0 -1
- package/dist/data-transform-Ck5FbyNO-BNE7QlAo.d.mts.map +0 -1
- package/dist/issue-planner-BLOtwO3z.d.mts.map +0 -1
- package/dist/op-factory-call-CBqqbXBb.d.mts +0 -1
- package/dist/op-factory-call-DF9ijUbg-CSF8ZhJM.d.mts.map +0 -1
- package/dist/op-factory-call-DiwaNQVO-NSekrcmI.mjs.map +0 -1
- package/dist/planner-C6vpC6nq.d.mts.map +0 -1
- package/dist/planner-DCYVwcYk-vGUsjG3x.mjs.map +0 -1
- package/dist/planner-ddl-builders-Y0_96xpe-BzugdEDO.mjs.map +0 -1
- package/dist/planner-produced-postgres-migration-CoLy4THO-CkCRWsv_.d.mts.map +0 -1
- package/dist/planner-produced-postgres-migration-D7zijd5s.d.mts +0 -1
- package/dist/planner-schema-lookup-kMIVP2y--CdO4VlnF.mjs.map +0 -1
- package/dist/planner-sql-checks-Bt_KuSiH-CdGZDp7M.mjs +0 -46
- package/dist/planner-sql-checks-Bt_KuSiH-CdGZDp7M.mjs.map +0 -1
- package/dist/planner-sql-checks-CXDdt_9m.d.mts.map +0 -1
- package/dist/postgres-migration-BSvGOQze-WEc_3gN0.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"op-factory-call-ltgiEZ8g-CX6WX57X.mjs","names":["#written","#defaultClass","#refuseUnsafeUsing","#callText"],"sources":["../../../../3-targets/3-targets/postgres/dist/op-factory-call-ltgiEZ8g.mjs"],"sourcesContent":["import { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { i as quoteIdentifier, n as escapeLiteral, o as quoteQualifiedName, s as validateEnumValueLength, t as POSTGRES_QUOTING } from \"./sql-utils-Df-nf6eM.mjs\";\nimport { t as DEFAULT_NAMESPACE_ID } from \"./namespace-ids-xtp_ZY86.mjs\";\nimport { A as tableIsEmptyAst, C as nativeEnumTypeExistsAst, D as rlsPolicyExistsAst, E as rlsEnabledAst, O as sequenceNameAvailableAst, S as indexExistsAst, T as noNullValuesAst, _ as columnExistsAst, a as createIndex$1, b as constraintExistsAst, c as createTable, d as dropDefaultAction, f as dropIndex$1, g as columnDefaultSequenceAst, h as columnDefaultAst, i as alterTable, k as tableExistsAst, l as createType, m as dropType, n as alterIndexRename, o as createPolicy, p as dropPolicy, r as alterPolicyRename, s as createSchema, t as addColumnAction, u as disableRowLevelSecurity$1, v as columnNullabilityAst, w as nativeEnumValueExistsAst, x as extensionExistsAst, y as columnTypeAst } from \"./ddl-BKqbtVN3.mjs\";\nimport { t as autoincrementWidth } from \"./autoincrement-widths-DbyXRo5B.mjs\";\nimport { t as postgresObjectName } from \"./postgres-object-name-FPikIvOw.mjs\";\nimport { r as qualifyTableName, t as alterTypeCheckText } from \"./planner-sql-checks-CX37qDix.mjs\";\nimport { t as buildTargetDetails } from \"./planner-target-details-CUEF0s90.mjs\";\nimport { DdlColumn, FunctionColumnDefault, LiteralColumnDefault, opaqueSql, renderOpaqueSql } from \"@internal/sql-relational-core/ast\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { checkSqlDefaultText, checkSqlExpressionText, convertedColumnMeta, createSqlTextSources, isUnfilledSlot, requiredColumnMeta, slotSource, sqlOfSlot } from \"@internal/family-sql/control\";\nimport { namingOf } from \"@internal/sql-schema-ir/naming\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { col } from \"@internal/sql-relational-core/contract-free\";\nimport { InternalError, assertNever } from \"@internal/utils/internal-error\";\nimport { unfilledPlaceholderOperation } from \"@internal/errors/migration\";\nimport { TsExpression, jsonToTsSource, tsObjectSource } from \"@internal/ts-render\";\nimport { REFERENTIAL_ACTION_SQL } from \"@internal/sql-contract/referential-action-sql\";\n//#region src/core/migrations/bound-schema.ts\n/**\n* Maps a planner schema name to the contract-free DDL builder's optional\n* `schema` field: the unbound sentinel becomes `undefined` (the builder omits\n* the schema qualifier), every other name passes through.\n*/\nfunction boundSchema(schemaName) {\n\treturn schemaName === UNBOUND_NAMESPACE_ID ? void 0 : schemaName;\n}\n//#endregion\n//#region src/core/migrations/default-sequence-name.ts\n/**\n* The name Postgres gives the sequence of a `SERIAL` column: `{table}_{column}_seq`, cut to fit 63 bytes as Postgres cuts it.\n*/\nfunction defaultSequenceName(tableName, columnName) {\n\treturn postgresObjectName(tableName, columnName, \"seq\");\n}\n//#endregion\n//#region src/core/migrations/operations/shared.ts\nfunction step(description, sql, params) {\n\treturn {\n\t\tdescription,\n\t\tsql,\n\t\t...ifDefined(\"params\", params)\n\t};\n}\nfunction targetDetails(objectType, name, schema, table) {\n\treturn {\n\t\tid: \"postgres\",\n\t\tdetails: {\n\t\t\tschema,\n\t\t\tobjectType,\n\t\t\tname,\n\t\t\t...ifDefined(\"table\", table)\n\t\t}\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/columns.ts\nasync function columnExistsSteps(lowerer, options) {\n\tconst checks = columnExistsAst(options);\n\treturn {\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.columnPresent()),\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.columnAbsent())\n\t};\n}\nasync function dropColumn(schemaName, tableName, columnName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present, absent } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\treturn {\n\t\tid: `dropColumn.${tableName}.${columnName}`,\n\t\tlabel: `Drop column \"${columnName}\" from \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop column \"${columnName}\"`, `ALTER TABLE ${qualified} DROP COLUMN ${quoteIdentifier(columnName)}`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\nfunction renameColumnStatement(schemaName, tableName, fromName, toName) {\n\treturn `ALTER TABLE ${qualifyTableName(schemaName, tableName)} RENAME COLUMN ${quoteIdentifier(fromName)} TO ${quoteIdentifier(toName)}`;\n}\nfunction renameColumnOperationId(tableName, fromName) {\n\treturn `renameColumn.${tableName}.${fromName}`;\n}\nasync function renameColumn(schemaName, tableName, fromName, toName, lowerer) {\n\tconst from = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: fromName\n\t});\n\tconst to = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: toName\n\t});\n\treturn {\n\t\tid: renameColumnOperationId(tableName, fromName),\n\t\tlabel: `Rename column \"${tableName}\".\"${fromName}\" to \"${toName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"column\", toName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${fromName}\" exists`, from.present.sql, from.present.params), step(`ensure column \"${toName}\" does not exist`, to.absent.sql, to.absent.params)],\n\t\texecute: [step(`rename column \"${fromName}\" to \"${toName}\"`, renameColumnStatement(schemaName, tableName, fromName, toName))],\n\t\tpostcheck: [step(`verify column \"${toName}\" exists`, to.present.sql, to.present.params), step(`verify column \"${fromName}\" no longer exists`, from.absent.sql, from.absent.params)]\n\t};\n}\n/**\n* `type` is the new column type as a migration writes it, into the `ALTER COLUMN TYPE` clause.\n* `checkType` is the type `format_type` prints for it, which the postcheck compares.\n*/\nasync function alterColumnType(schemaName, tableName, columnName, options, lowerer, operationClass = \"destructive\") {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst usingClause = options.using ? ` USING ${renderOpaqueSql(opaqueSql(options.using))}` : ` USING ${quoteIdentifier(columnName)}::${options.type}`;\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst typeCheck = await lowerer.lowerToExecuteRequest(columnTypeAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\texpectedType: options.checkType\n\t}));\n\treturn {\n\t\tid: `alterType.${tableName}.${columnName}`,\n\t\tlabel: `Alter type of \"${tableName}\".\"${columnName}\" to ${options.type}`,\n\t\toperationClass,\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [{\n\t\t\t...step(`alter type of \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} TYPE ${options.type}${usingClause}`),\n\t\t\t...options.using !== void 0 ? { meta: convertedColumnMeta(tableName, columnName, \"conversion\") } : operationClass === \"destructive\" ? { meta: convertedColumnMeta(tableName, columnName, \"cast\") } : {}\n\t\t}],\n\t\tpostcheck: [step(`verify column \"${columnName}\" has type \"${options.checkType}\"`, typeCheck.sql, typeCheck.params)],\n\t\tmeta: { warning: \"TABLE_REWRITE\" }\n\t};\n}\nasync function setNotNull(schemaName, tableName, columnName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst noNulls = await lowerer.lowerToExecuteRequest(noNullValuesAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}));\n\tconst notNullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: false\n\t}));\n\treturn {\n\t\tid: `alterNullability.setNotNull.${tableName}.${columnName}`,\n\t\tlabel: `Set NOT NULL on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params), {\n\t\t\t...step(`ensure no NULL values in \"${columnName}\"`, noNulls.sql, noNulls.params),\n\t\t\tmeta: requiredColumnMeta(tableName, columnName, \"nullValues\")\n\t\t}],\n\t\texecute: [step(`set NOT NULL on \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} SET NOT NULL`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" is NOT NULL`, notNullable.sql, notNullable.params)]\n\t};\n}\nasync function dropNotNull(schemaName, tableName, columnName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst nullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: true\n\t}));\n\treturn {\n\t\tid: `alterNullability.dropNotNull.${tableName}.${columnName}`,\n\t\tlabel: `Drop NOT NULL on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop NOT NULL on \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} DROP NOT NULL`)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" is nullable`, nullable.sql, nullable.params)]\n\t};\n}\n/**\n* Sets `column`'s default. The adapter writes the `DEFAULT …` clause, reading a literal default with\n* the column's codec first, as every DDL statement that writes a default does. An `autoincrement()`\n* default attaches a sequence instead ({@link setAutoincrementDefault}).\n*\n* `operationClass` defaults to `'additive'` (setting a default on a column\n* that currently has none). The reconciliation planner passes `'widening'`\n* when the column already has a different default — policy enforcement\n* treats that as a widening change rather than an additive one. A widening\n* change has no postcheck: the old default would pass a check for a default,\n* and the runner skips an operation whose postcheck already passes. Setting a\n* default again is harmless.\n*/\nasync function setDefault(schemaName, tableName, column, lowerer, operationClass = \"additive\") {\n\tif (column.default === void 0) throw postgresError(\"CONTRACT.DEFAULT_INVALID\", `setDefault on column \"${column.name}\" of table \"${tableName}\" has no default. Pass the column with its default, as in col(name, type, { default: lit(value) }) or col(name, type, { default: fn(expression) }).`, { meta: {\n\t\ttable: tableName,\n\t\tcolumn: column.name,\n\t\treason: \"set-default-without-default\"\n\t} });\n\tif (column.default.kind === \"function\" && column.default.expression.text === \"autoincrement()\") return setAutoincrementDefault(schemaName, tableName, column, lowerer, operationClass);\n\tconst columnName = column.name;\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst clause = await lowerer.renderColumnDefault(column, tableName);\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst hasDefault = operationClass === \"additive\" ? await lowerer.lowerToExecuteRequest(columnDefaultAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).defaultPresent()) : void 0;\n\treturn {\n\t\tid: `setDefault.${tableName}.${columnName}`,\n\t\tlabel: `Set default on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass,\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`set default on \"${columnName}\"`, `ALTER TABLE ${qualified} ALTER COLUMN ${quoteIdentifier(columnName)} SET ${clause}`)],\n\t\tpostcheck: hasDefault === void 0 ? [] : [step(`verify column \"${columnName}\" has a default`, hasDefault.sql, hasDefault.params)]\n\t};\n}\n/**\n* Gives an existing smallint, integer or bigint column an `autoincrement()` default: creates the\n* sequence a SERIAL column of that width would get (or reuses it, since dropping the default leaves\n* it in place, retyped to the column's current width), sets the column's default to it, makes the column own it, and starts it past the\n* column's largest value so existing rows never collide. The precheck refuses a name another\n* relation holds, which `IF NOT EXISTS` would otherwise skip over and then attach. The postcheck asks\n* for both the attached sequence and the `nextval(` default, which no earlier default satisfies.\n*/\nasync function setAutoincrementDefault(schemaName, tableName, column, lowerer, operationClass) {\n\tconst columnName = column.name;\n\tconst sequenceType = autoincrementWidth(column.type)?.sequenceType;\n\tif (sequenceType === void 0) throw postgresError(\"CONTRACT.DEFAULT_INVALID\", `setDefault can give the column \"${columnName}\" of table \"${tableName}\" an autoincrement() default only when its type is smallint, integer or bigint (int2, int4 or int8); its type is \"${column.type}\".`, { meta: {\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\treason: \"set-default-autoincrement\"\n\t} });\n\tconst qualifiedTable = qualifyTableName(schemaName, tableName);\n\tconst qualifiedColumn = quoteIdentifier(columnName);\n\tconst sequenceName = defaultSequenceName(tableName, columnName);\n\tconst qualifiedSequence = qualifyTableName(schemaName, sequenceName);\n\tconst sequenceRegclass = `'${escapeLiteral(qualifiedSequence)}'::regclass`;\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst nameAvailable = await lowerer.lowerToExecuteRequest(sequenceNameAvailableAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tsequence: sequenceName\n\t}));\n\tconst attached = await lowerer.lowerToExecuteRequest(columnDefaultSequenceAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}));\n\treturn {\n\t\tid: `setDefault.${tableName}.${columnName}`,\n\t\tlabel: `Set default on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass,\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params), step(`ensure no relation other than the sequence column \"${columnName}\" owns is named ${qualifiedSequence} (rename that relation, or write this migration with migration new)`, nameAvailable.sql, nameAvailable.params)],\n\t\texecute: [\n\t\t\tstep(`widen any existing sequence \"${sequenceName}\" to ${sequenceType}`, `ALTER SEQUENCE IF EXISTS ${qualifiedSequence} AS ${sequenceType}`),\n\t\t\tstep(`create sequence \"${sequenceName}\"`, `CREATE SEQUENCE IF NOT EXISTS ${qualifiedSequence} AS ${sequenceType}`),\n\t\t\tstep(`set default on \"${columnName}\"`, `ALTER TABLE ${qualifiedTable} ALTER COLUMN ${qualifiedColumn} SET DEFAULT nextval(${sequenceRegclass})`),\n\t\t\tstep(`attach sequence \"${sequenceName}\" to \"${columnName}\"`, `ALTER SEQUENCE ${qualifiedSequence} OWNED BY ${qualifiedTable}.${qualifiedColumn}`),\n\t\t\tstep(`start sequence \"${sequenceName}\" past the largest \"${columnName}\"`, `SELECT setval(${sequenceRegclass}, GREATEST(COALESCE(MAX(${qualifiedColumn}), 0), 0) + 1, false) FROM ${qualifiedTable}`)\n\t\t],\n\t\tpostcheck: [step(`verify column \"${columnName}\" takes its default from an attached sequence`, attached.sql, attached.params)]\n\t};\n}\nasync function dropDefault(schemaName, tableName, columnName, lowerer) {\n\tconst { present } = await columnExistsSteps(lowerer, {\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t});\n\tconst dropDefaultExec = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\ttable: tableName,\n\t\tactions: [dropDefaultAction(columnName)]\n\t}));\n\tconst noDefault = await lowerer.lowerToExecuteRequest(columnDefaultAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).defaultAbsent());\n\treturn {\n\t\tid: `dropDefault.${tableName}.${columnName}`,\n\t\tlabel: `Drop default on \"${tableName}\".\"${columnName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop default on \"${columnName}\"`, dropDefaultExec.sql)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" has no default`, noDefault.sql, noDefault.params)]\n\t};\n}\n/**\n* Builds the op for adding a NOT NULL column (no contract default) to a\n* non-empty table. Prechecks assert the column is absent and the table is\n* empty; the execute step lowers the typed `AddColumn` DDL node through the\n* adapter; postchecks assert the column exists and is NOT NULL.\n*/\nasync function addRequiredColumnToEmptyTable(schemaName, tableName, column, lowerer) {\n\tconst columnName = column.name;\n\tconst addColumn = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\ttable: tableName,\n\t\tactions: [addColumnAction(column)]\n\t}));\n\tconst absent = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnAbsent());\n\tconst tableEmpty = await lowerer.lowerToExecuteRequest(tableIsEmptyAst(schemaName, tableName));\n\tconst present = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnPresent());\n\tconst notNullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: false\n\t}));\n\treturn {\n\t\tid: `column.${tableName}.${columnName}`,\n\t\tlabel: `Add column ${columnName} to ${tableName}`,\n\t\tsummary: `Adds column ${columnName} to table ${tableName}`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\tprecheck: [step(`ensure column \"${columnName}\" is missing`, absent.sql, absent.params), {\n\t\t\t...step(`ensure table \"${tableName}\" is empty before adding NOT NULL column without default`, tableEmpty.sql, tableEmpty.params),\n\t\t\tmeta: requiredColumnMeta(tableName, columnName, \"newField\")\n\t\t}],\n\t\texecute: [step(`add column \"${columnName}\"`, addColumn.sql)],\n\t\tpostcheck: [step(`verify column \"${columnName}\" exists`, present.sql, present.params), step(`verify column \"${columnName}\" is NOT NULL`, notNullable.sql, notNullable.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/constraints.ts\nasync function constraintCheckSteps(lowerer, options) {\n\tconst checks = constraintExistsAst(options);\n\treturn {\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.constraintAbsent()),\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.constraintPresent())\n\t};\n}\nfunction renderForeignKeySql(schemaName, tableName, fk) {\n\tlet sql = `ALTER TABLE ${qualifyTableName(schemaName, tableName)}\nADD CONSTRAINT ${quoteIdentifier(fk.name)}\nFOREIGN KEY (${fk.columns.map(quoteIdentifier).join(\", \")})\nREFERENCES ${qualifyTableName(fk.references.schema, fk.references.table)} (${fk.references.columns.map(quoteIdentifier).join(\", \")})`;\n\tif (fk.onDelete !== void 0) {\n\t\tconst action = REFERENTIAL_ACTION_SQL[fk.onDelete];\n\t\tif (!action) throw new InternalError(`Unknown referential action for onDelete: ${String(fk.onDelete)}`);\n\t\tsql += `\\nON DELETE ${action}`;\n\t}\n\tif (fk.onUpdate !== void 0) {\n\t\tconst action = REFERENTIAL_ACTION_SQL[fk.onUpdate];\n\t\tif (!action) throw new InternalError(`Unknown referential action for onUpdate: ${String(fk.onUpdate)}`);\n\t\tsql += `\\nON UPDATE ${action}`;\n\t}\n\treturn sql;\n}\nasync function addPrimaryKey(schemaName, tableName, constraintName, columns, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst columnList = columns.map(quoteIdentifier).join(\", \");\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `primaryKey.${tableName}.${constraintName}`,\n\t\tlabel: `Add primary key on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"primaryKey\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure primary key \"${constraintName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add primary key \"${constraintName}\"`, `ALTER TABLE ${qualified} ADD CONSTRAINT ${quoteIdentifier(constraintName)} PRIMARY KEY (${columnList})`)],\n\t\tpostcheck: [step(`verify primary key \"${constraintName}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function addUnique(schemaName, tableName, constraintName, columns, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst columnList = columns.map(quoteIdentifier).join(\", \");\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `unique.${tableName}.${constraintName}`,\n\t\tlabel: `Add unique constraint on \"${tableName}\" (${columns.join(\", \")})`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"unique\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add unique constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} ADD CONSTRAINT ${quoteIdentifier(constraintName)} UNIQUE (${columnList})`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function addForeignKey(schemaName, tableName, fk, lowerer) {\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName: fk.name,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `foreignKey.${tableName}.${fk.name}`,\n\t\tlabel: `Add foreign key \"${fk.name}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"foreignKey\", fk.name, schemaName, tableName),\n\t\tprecheck: [step(`ensure FK \"${fk.name}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add FK \"${fk.name}\"`, renderForeignKeySql(schemaName, tableName, fk))],\n\t\tpostcheck: [step(`verify FK \"${fk.name}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function addCheckConstraint(schemaName, tableName, constraintName, expression, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `checkConstraint.${tableName}.${constraintName}`,\n\t\tlabel: `Add check constraint \"${constraintName}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"checkConstraint\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`add check constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} ADD CONSTRAINT ${quoteIdentifier(constraintName)} CHECK (${renderOpaqueSql(opaqueSql(expression))})`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" exists`, present.sql, present.params)]\n\t};\n}\nconst CONSTRAINT_KIND_LABEL = {\n\tprimaryKey: \"primary key\",\n\tunique: \"unique constraint\",\n\tforeignKey: \"foreign key\",\n\tcheckConstraint: \"check constraint\"\n};\nfunction renameConstraintLabel(kind, fromName, toName, tableName) {\n\treturn `Rename ${CONSTRAINT_KIND_LABEL[kind]} \"${fromName}\" to \"${toName}\" on \"${tableName}\"`;\n}\nfunction renameConstraintOperationId(kind, schemaName, tableName, fromName) {\n\treturn `${kind}.${schemaName}.${tableName}.${fromName}.rename`;\n}\nasync function renameConstraint(schemaName, tableName, kind, fromName, toName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst from = await constraintCheckSteps(lowerer, {\n\t\tconstraintName: fromName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\tconst to = await constraintCheckSteps(lowerer, {\n\t\tconstraintName: toName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: renameConstraintOperationId(kind, schemaName, tableName, fromName),\n\t\tlabel: renameConstraintLabel(kind, fromName, toName, tableName),\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(kind, toName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${fromName}\" exists`, from.present.sql, from.present.params), step(`ensure constraint \"${toName}\" does not exist`, to.absent.sql, to.absent.params)],\n\t\texecute: [step(`rename ${CONSTRAINT_KIND_LABEL[kind]} \"${fromName}\" to \"${toName}\"`, `ALTER TABLE ${qualified} RENAME CONSTRAINT ${quoteIdentifier(fromName)} TO ${quoteIdentifier(toName)}`)],\n\t\tpostcheck: [step(`verify constraint \"${toName}\" exists`, to.present.sql, to.present.params)]\n\t};\n}\nasync function dropCheckConstraint(schemaName, tableName, constraintName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `dropCheckConstraint.${tableName}.${constraintName}`,\n\t\tlabel: `Drop check constraint \"${constraintName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"checkConstraint\", constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop check constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} DROP CONSTRAINT ${quoteIdentifier(constraintName)}`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n/**\n* `kind` feeds the operation's `target.details.objectType`. Descriptor-flow\n* does not carry kind information in its drop-constraint descriptor, so the\n* default is `'unique'`. The reconciliation planner passes the correct kind\n* (`'foreignKey'`, `'primaryKey'`, or `'unique'`) based on the diff issue\n* that produced the drop.\n*/\nasync function dropConstraint(schemaName, tableName, constraintName, lowerer, kind = \"unique\") {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst { absent, present } = await constraintCheckSteps(lowerer, {\n\t\tconstraintName,\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\treturn {\n\t\tid: `dropConstraint.${tableName}.${constraintName}`,\n\t\tlabel: `Drop constraint \"${constraintName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(kind, constraintName, schemaName, tableName),\n\t\tprecheck: [step(`ensure constraint \"${constraintName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop constraint \"${constraintName}\"`, `ALTER TABLE ${qualified} DROP CONSTRAINT ${quoteIdentifier(constraintName)}`)],\n\t\tpostcheck: [step(`verify constraint \"${constraintName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/dependencies.ts\nfunction createExtension(extensionName) {\n\treturn {\n\t\tid: `extension.${extensionName}`,\n\t\tlabel: `Create extension \"${extensionName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: { id: \"postgres\" },\n\t\tprecheck: [],\n\t\texecute: [step(`Create extension \"${extensionName}\"`, `CREATE EXTENSION IF NOT EXISTS ${quoteIdentifier(extensionName)}`)],\n\t\tpostcheck: []\n\t};\n}\n/**\n* Install a Postgres extension as the baseline op for an extension-pack\n* contract space. Layered on top of {@link createExtension}: stamps an\n* `invariantId` (required so the per-space marker records the install),\n* scopes the op `id` under a caller-chosen namespace (e.g. `pgvector.`),\n* and emits pre- and postcheck SQL probing `pg_extension`. The richer\n* shape lets the runner's idempotency probe skip the install on re-run\n* (postcheck-pre-satisfied) without firing the precheck.\n*\n* Use this for hand-rolled baseline migrations in contract-space\n* extension packages (e.g. `extension-pgvector`, `extension-paradedb`);\n* use the bare {@link createExtension} for planner-emitted ops where the\n* caller already controls idempotency through the surrounding plan.\n*/\nasync function installExtension(options, lowerer) {\n\tconst { extensionName, invariantId, id } = options;\n\tconst label = options.label ?? `Enable extension \"${extensionName}\"`;\n\tconst checks = extensionExistsAst(extensionName);\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.extensionAbsent());\n\tconst present = await lowerer.lowerToExecuteRequest(checks.extensionPresent());\n\treturn {\n\t\tid,\n\t\tlabel,\n\t\toperationClass: \"additive\",\n\t\tinvariantId,\n\t\ttarget: {\n\t\t\tid: \"postgres\",\n\t\t\tdetails: {\n\t\t\t\tschema: DEFAULT_NAMESPACE_ID,\n\t\t\t\tobjectType: \"dependency\",\n\t\t\t\tname: extensionName\n\t\t\t}\n\t\t},\n\t\tprecheck: [step(`verify extension \"${extensionName}\" is not already enabled`, absent.sql, absent.params)],\n\t\texecute: [step(`create extension \"${extensionName}\"`, `CREATE EXTENSION IF NOT EXISTS ${extensionName}`)],\n\t\tpostcheck: [step(`confirm extension \"${extensionName}\" is enabled`, present.sql, present.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/indexes.ts\nasync function indexExistsSteps(lowerer, schemaName, indexName) {\n\tconst checks = indexExistsAst(schemaName, indexName);\n\treturn {\n\t\tpresent: await lowerer.lowerToExecuteRequest(checks.indexPresent()),\n\t\tabsent: await lowerer.lowerToExecuteRequest(checks.indexAbsent())\n\t};\n}\n/** An unbound-namespace object renders unqualified: the DDL node takes no schema. */\nfunction ddlSchemaOf(schemaName) {\n\treturn schemaName === UNBOUND_NAMESPACE_ID ? void 0 : schemaName;\n}\nasync function createIndex(schemaName, tableName, indexName, elements, lowerer, extras) {\n\tconst ddlNode = createIndex$1({\n\t\tschema: ddlSchemaOf(schemaName),\n\t\ttable: tableName,\n\t\tname: indexName,\n\t\tunique: extras?.unique === true,\n\t\telements,\n\t\ttype: extras?.type,\n\t\toptions: extras?.options,\n\t\twhere: extras?.where\n\t});\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst { present, absent } = await indexExistsSteps(lowerer, schemaName, indexName);\n\treturn {\n\t\tid: `index.${tableName}.${indexName}`,\n\t\tlabel: `Create index \"${indexName}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"index\", indexName, schemaName, tableName),\n\t\tprecheck: [step(`ensure index \"${indexName}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`create index \"${indexName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify index \"${indexName}\" exists`, present.sql, present.params)]\n\t};\n}\n/** `ALTER INDEX … RENAME TO`: `widening`, because a rename keeps every row and value. */\nfunction renameIndexOperationId(schemaName, tableName, fromName) {\n\treturn `index.${schemaName}.${tableName}.${fromName}.rename`;\n}\nasync function renameIndex(schemaName, tableName, fromName, toName, lowerer) {\n\tconst fromChecks = indexExistsAst(schemaName, fromName);\n\tconst toChecks = indexExistsAst(schemaName, toName);\n\tconst fromPresent = await lowerer.lowerToExecuteRequest(fromChecks.indexPresent());\n\tconst toAbsent = await lowerer.lowerToExecuteRequest(toChecks.indexAbsent());\n\tconst toPresent = await lowerer.lowerToExecuteRequest(toChecks.indexPresent());\n\tconst ddlNode = alterIndexRename({\n\t\tschema: ddlSchemaOf(schemaName),\n\t\tfrom: fromName,\n\t\tto: toName\n\t});\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\treturn {\n\t\tid: renameIndexOperationId(schemaName, tableName, fromName),\n\t\tlabel: `Rename index \"${fromName}\" to \"${toName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"index\", toName, schemaName, tableName),\n\t\tprecheck: [step(`ensure index \"${fromName}\" exists`, fromPresent.sql, fromPresent.params), step(`ensure index \"${toName}\" does not exist`, toAbsent.sql, toAbsent.params)],\n\t\texecute: [step(`rename index \"${fromName}\" to \"${toName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify index \"${toName}\" exists`, toPresent.sql, toPresent.params)]\n\t};\n}\nasync function dropIndex(schemaName, tableName, indexName, lowerer) {\n\tconst ddlNode = dropIndex$1({\n\t\tschema: ddlSchemaOf(schemaName),\n\t\tname: indexName\n\t});\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst { present, absent } = await indexExistsSteps(lowerer, schemaName, indexName);\n\treturn {\n\t\tid: `dropIndex.${tableName}.${indexName}`,\n\t\tlabel: `Drop index \"${indexName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"index\", indexName, schemaName, tableName),\n\t\tprecheck: [step(`ensure index \"${indexName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop index \"${indexName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify index \"${indexName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/native-enum-types.ts\n/**\n* `CREATE TYPE <qualified> AS ENUM (…)` for a managed native enum, built as a\n* typed DDL node and lowered by the control adapter (the type name is quoted,\n* member values render as escaped string literals in declaration order —\n* Postgres enum sort order is semantic). `boundSchema` maps the unbound sentinel\n* to an absent schema so the type name renders unqualified and the connection's\n* `search_path` resolves the schema at runtime.\n*/\nasync function createNativeEnumType(schemaName, typeName, members, lowerer) {\n\tfor (const member of members) validateEnumValueLength(member, typeName);\n\tconst ddlNode = createType({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\tname: typeName,\n\t\tvalues: members\n\t});\n\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\treturn {\n\t\tid: `createNativeEnumType.${typeName}`,\n\t\tlabel: `Create enum type \"${typeName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"type\", typeName, schemaName),\n\t\tprecheck: [],\n\t\texecute: [step(`create enum type \"${typeName}\"`, statement.sql, statement.params)],\n\t\tpostcheck: []\n\t};\n}\n/** `DROP TYPE <qualified>` for an unclaimed managed native enum, via typed DDL. */\nasync function dropNativeEnumType(schemaName, typeName, lowerer) {\n\tconst ddlNode = dropType({\n\t\t...ifDefined(\"schema\", boundSchema(schemaName)),\n\t\tname: typeName\n\t});\n\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\treturn {\n\t\tid: `dropNativeEnumType.${typeName}`,\n\t\tlabel: `Drop enum type \"${typeName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"type\", typeName, schemaName),\n\t\tprecheck: [],\n\t\texecute: [step(`drop enum type \"${typeName}\"`, statement.sql, statement.params)],\n\t\tpostcheck: []\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/rls.ts\nconst PLAIN_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_$]*$/;\nfunction validateRoleName(role) {\n\tif (!PLAIN_IDENTIFIER.test(role)) throw postgresError(\"CONTRACT.ROLE_INVALID\", `Invalid role name ${JSON.stringify(role)}: role names must be plain SQL identifiers matching ^[A-Za-z_][A-Za-z0-9_$]*$`, { meta: {\n\t\trole,\n\t\treason: \"not-a-plain-identifier\"\n\t} });\n\treturn role;\n}\nasync function createRlsPolicy(schemaName, tableName, policy, lowerer) {\n\tconst validatedRoles = policy.roles.map(validateRoleName);\n\tconst ddlNode = createPolicy({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tname: policy.name,\n\t\tpermissive: policy.permissive,\n\t\toperation: policy.operation,\n\t\troles: validatedRoles,\n\t\t...ifDefined(\"using\", policy.using),\n\t\t...ifDefined(\"withCheck\", policy.withCheck)\n\t});\n\tconst checks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName: policy.name\n\t});\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.policyAbsent());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst present = await lowerer.lowerToExecuteRequest(checks.policyPresent());\n\treturn {\n\t\tid: `rlsPolicy.${schemaName}.${tableName}.${policy.name}`,\n\t\tlabel: `Create RLS policy \"${policy.name}\" on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"rlsPolicy\", policy.name, schemaName, tableName),\n\t\tprecheck: [step(`ensure RLS policy \"${policy.name}\" does not exist`, absent.sql, absent.params)],\n\t\texecute: [step(`create RLS policy \"${policy.name}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify RLS policy \"${policy.name}\" exists`, present.sql, present.params)]\n\t};\n}\nasync function dropRlsPolicy(schemaName, tableName, policyName, lowerer) {\n\tconst ddlNode = dropPolicy({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tname: policyName\n\t});\n\tconst checks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName\n\t});\n\tconst present = await lowerer.lowerToExecuteRequest(checks.policyPresent());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.policyAbsent());\n\treturn {\n\t\tid: `rlsPolicy.${schemaName}.${tableName}.${policyName}.drop`,\n\t\tlabel: `Drop RLS policy \"${policyName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"rlsPolicy\", policyName, schemaName, tableName),\n\t\tprecheck: [step(`ensure RLS policy \"${policyName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop RLS policy \"${policyName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify RLS policy \"${policyName}\" is absent`, absent.sql, absent.params)]\n\t};\n}\nasync function enableRowLevelSecurity(schemaName, tableName, lowerer) {\n\tconst checks = rlsEnabledAst(schemaName, tableName);\n\tconst disabled = await lowerer.lowerToExecuteRequest(checks.rlsDisabled());\n\tconst enabled = await lowerer.lowerToExecuteRequest(checks.rlsEnabled());\n\treturn {\n\t\tid: `rowLevelSecurity.${schemaName}.${tableName}`,\n\t\tlabel: `Enable row-level security on \"${tableName}\"`,\n\t\toperationClass: \"additive\",\n\t\ttarget: targetDetails(\"rowLevelSecurity\", tableName, schemaName),\n\t\tprecheck: [step(`check RLS is not already enabled on \"${tableName}\"`, disabled.sql, disabled.params)],\n\t\texecute: [step(`enable row-level security on \"${tableName}\"`, `ALTER TABLE ${qualifyTableName(schemaName, tableName)} ENABLE ROW LEVEL SECURITY`)],\n\t\tpostcheck: [step(`verify row-level security is enabled on \"${tableName}\"`, enabled.sql, enabled.params)]\n\t};\n}\nasync function disableRowLevelSecurity(schemaName, tableName, lowerer) {\n\tconst ddlNode = disableRowLevelSecurity$1({\n\t\tschema: schemaName,\n\t\ttable: tableName\n\t});\n\tconst checks = rlsEnabledAst(schemaName, tableName);\n\tconst enabled = await lowerer.lowerToExecuteRequest(checks.rlsEnabled());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst disabled = await lowerer.lowerToExecuteRequest(checks.rlsDisabled());\n\treturn {\n\t\tid: `rowLevelSecurity.${schemaName}.${tableName}.disable`,\n\t\tlabel: `Disable row-level security on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"rowLevelSecurity\", tableName, schemaName),\n\t\tprecheck: [step(`check RLS is currently enabled on \"${tableName}\"`, enabled.sql, enabled.params)],\n\t\texecute: [step(`disable row-level security on \"${tableName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify row-level security is disabled on \"${tableName}\"`, disabled.sql, disabled.params)]\n\t};\n}\nasync function renameRlsPolicy(schemaName, tableName, oldPolicyName, newPolicyName, lowerer) {\n\tconst ddlNode = alterPolicyRename({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tname: oldPolicyName,\n\t\tnewName: newPolicyName\n\t});\n\tconst oldChecks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName: oldPolicyName\n\t});\n\tconst newChecks = rlsPolicyExistsAst({\n\t\tschema: schemaName,\n\t\ttable: tableName,\n\t\tpolicyName: newPolicyName\n\t});\n\tconst oldPresent = await lowerer.lowerToExecuteRequest(oldChecks.policyPresent());\n\tconst execute = await lowerer.lowerToExecuteRequest(ddlNode);\n\tconst newPresent = await lowerer.lowerToExecuteRequest(newChecks.policyPresent());\n\treturn {\n\t\tid: `rlsPolicy.${schemaName}.${tableName}.${oldPolicyName}.rename`,\n\t\tlabel: `Rename RLS policy \"${oldPolicyName}\" to \"${newPolicyName}\" on \"${tableName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"rlsPolicy\", newPolicyName, schemaName, tableName),\n\t\tprecheck: [step(`ensure RLS policy \"${oldPolicyName}\" exists`, oldPresent.sql, oldPresent.params)],\n\t\texecute: [step(`rename RLS policy \"${oldPolicyName}\" to \"${newPolicyName}\"`, execute.sql, execute.params)],\n\t\tpostcheck: [step(`verify RLS policy \"${newPolicyName}\" exists`, newPresent.sql, newPresent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/operations/tables.ts\nasync function dropTable(schemaName, tableName, lowerer) {\n\tconst qualified = qualifyTableName(schemaName, tableName);\n\tconst checks = tableExistsAst(schemaName, tableName);\n\tconst present = await lowerer.lowerToExecuteRequest(checks.tablePresent());\n\tconst absent = await lowerer.lowerToExecuteRequest(checks.tableAbsent());\n\treturn {\n\t\tid: `dropTable.${tableName}`,\n\t\tlabel: `Drop table \"${tableName}\"`,\n\t\toperationClass: \"destructive\",\n\t\ttarget: targetDetails(\"table\", tableName, schemaName),\n\t\tprecheck: [step(`ensure table \"${tableName}\" exists`, present.sql, present.params)],\n\t\texecute: [step(`drop table \"${tableName}\"`, `DROP TABLE ${qualified}`)],\n\t\tpostcheck: [step(`verify table \"${tableName}\" does not exist`, absent.sql, absent.params)]\n\t};\n}\nfunction renameTableStatement(schemaName, fromName, toName) {\n\treturn `ALTER TABLE ${qualifyTableName(schemaName, fromName)} RENAME TO ${quoteIdentifier(toName)}`;\n}\nfunction renameTableOperationId(fromName) {\n\treturn `renameTable.${fromName}`;\n}\nasync function renameTable(schemaName, fromName, toName, lowerer) {\n\tconst fromChecks = tableExistsAst(schemaName, fromName);\n\tconst toChecks = tableExistsAst(schemaName, toName);\n\tconst fromPresent = await lowerer.lowerToExecuteRequest(fromChecks.tablePresent());\n\tconst toAbsent = await lowerer.lowerToExecuteRequest(toChecks.tableAbsent());\n\tconst toPresent = await lowerer.lowerToExecuteRequest(toChecks.tablePresent());\n\tconst fromAbsent = await lowerer.lowerToExecuteRequest(fromChecks.tableAbsent());\n\treturn {\n\t\tid: renameTableOperationId(fromName),\n\t\tlabel: `Rename table \"${fromName}\" to \"${toName}\"`,\n\t\toperationClass: \"widening\",\n\t\ttarget: targetDetails(\"table\", toName, schemaName),\n\t\tprecheck: [step(`ensure table \"${fromName}\" exists`, fromPresent.sql, fromPresent.params), step(`ensure table \"${toName}\" does not exist`, toAbsent.sql, toAbsent.params)],\n\t\texecute: [step(`rename table \"${fromName}\" to \"${toName}\"`, renameTableStatement(schemaName, fromName, toName))],\n\t\tpostcheck: [step(`verify table \"${toName}\" exists`, toPresent.sql, toPresent.params), step(`verify table \"${fromName}\" no longer exists`, fromAbsent.sql, fromAbsent.params)]\n\t};\n}\n//#endregion\n//#region src/core/migrations/planner-recipes.ts\nfunction buildAddColumnOperationIdentity(schema, tableName, columnName) {\n\treturn {\n\t\tid: `column.${tableName}.${columnName}`,\n\t\tlabel: `Add column ${columnName} to ${tableName}`,\n\t\tsummary: `Adds column ${columnName} to table ${tableName}`,\n\t\ttarget: {\n\t\t\tid: \"postgres\",\n\t\t\tdetails: buildTargetDetails(\"table\", tableName, schema)\n\t\t}\n\t};\n}\nasync function buildAddNotNullColumnWithTemporaryDefaultOperation(options) {\n\tconst { schema, tableName, columnName, type, temporaryDefault, lowerer } = options;\n\tconst ddlColumn = col(columnName, type, {\n\t\tnotNull: true,\n\t\tdefault: new FunctionColumnDefault(opaqueSql(temporaryDefault))\n\t});\n\tconst addColumn = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schema)),\n\t\ttable: tableName,\n\t\tactions: [addColumnAction(ddlColumn)]\n\t}));\n\tconst dropTempDefault = await lowerer.lowerToExecuteRequest(alterTable({\n\t\t...ifDefined(\"schema\", boundSchema(schema)),\n\t\ttable: tableName,\n\t\tactions: [dropDefaultAction(columnName)]\n\t}));\n\tconst absent = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnAbsent());\n\tconst present = await lowerer.lowerToExecuteRequest(columnExistsAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).columnPresent());\n\tconst notNullable = await lowerer.lowerToExecuteRequest(columnNullabilityAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tnullable: false\n\t}));\n\tconst noDefault = await lowerer.lowerToExecuteRequest(columnDefaultAst({\n\t\tschema,\n\t\ttable: tableName,\n\t\tcolumn: columnName\n\t}).noDefault());\n\treturn {\n\t\t...buildAddColumnOperationIdentity(schema, tableName, columnName),\n\t\toperationClass: \"additive\",\n\t\tprecheck: [step(`ensure column \"${columnName}\" is missing`, absent.sql, absent.params)],\n\t\texecute: [{\n\t\t\tdescription: `add column \"${columnName}\"`,\n\t\t\tsql: addColumn.sql\n\t\t}, {\n\t\t\tdescription: `drop temporary default from column \"${columnName}\"`,\n\t\t\tsql: dropTempDefault.sql\n\t\t}],\n\t\tpostcheck: [\n\t\t\tstep(`verify column \"${columnName}\" exists`, present.sql, present.params),\n\t\t\tstep(`verify column \"${columnName}\" is NOT NULL`, notNullable.sql, notNullable.params),\n\t\t\tstep(`verify column \"${columnName}\" has no default after temporary default removal`, noDefault.sql, noDefault.params)\n\t\t]\n\t};\n}\n//#endregion\n//#region src/core/migrations/op-factory-call.ts\n/**\n* Postgres migration IR: one concrete `*Call` class per pure factory under\n* `operations/`, plus a shared `PostgresOpFactoryCallNode` abstract base.\n*\n* Every call class carries the literal arguments its backing factory would\n* receive, computes a human-readable `label` in its constructor, and\n* implements two polymorphic hooks:\n*\n* - `toOp()` — converts the IR node to a runtime\n* `SqlMigrationPlanOperation` by delegating to the matching pure factory\n* under `operations/`. `DataTransformCall.toOp()` always rejects with\n* `MIGRATION.UNFILLED_PLACEHOLDER` because a planner-generated data transform is an\n* unfilled authoring stub by construction.\n* - `renderTypeScript()` / `importRequirements()` — inherited from\n* `TsExpression`. Used by `renderCallsToTypeScript` to emit the call as\n* a TypeScript expression inside the scaffolded `migration.ts`.\n*\n* The abstract base and all concrete classes are package-private. External\n* consumers see only the framework-level `OpFactoryCall` interface and the\n* `PostgresOpFactoryCall` union.\n*/\nconst POSTGRES_MIGRATION_FACADE = \"@internal/postgres/migration\";\nvar PostgresOpFactoryCallNode = class extends TsExpression {\n\t/** The operations this call lowers to, in order: one, unless the call carries companions. */\n\ttoOps(lowerer) {\n\t\treturn [this.toOp(lowerer)];\n\t}\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: this.factoryName\n\t\t}];\n\t}\n\tfreeze() {\n\t\tObject.freeze(this);\n\t}\n};\n/** Whether `call` is one of this target's calls, which lower through {@link PostgresOpFactoryCallNode.toOps}. */\nfunction isPostgresOpFactoryCall(call) {\n\treturn call instanceof PostgresOpFactoryCallNode;\n}\nfunction postgresDefaultToDdlColumnDefault(columnDefault) {\n\tif (!columnDefault) return void 0;\n\tswitch (columnDefault.kind) {\n\t\tcase \"literal\": return new LiteralColumnDefault(columnDefault.value);\n\t\tcase \"function\":\n\t\t\tif (columnDefault.expression === \"autoincrement()\") return void 0;\n\t\t\treturn new FunctionColumnDefault(opaqueSql(columnDefault.expression));\n\t\tcase \"sequence\": return new FunctionColumnDefault(opaqueSql(`nextval('${escapeLiteral(quoteIdentifier(columnDefault.name))}'::regclass)`));\n\t\tdefault: {\n\t\t\tconst exhaustive = columnDefault;\n\t\t\treturn assertNever(exhaustive, `postgresDefaultToDdlColumnDefault: unhandled kind \"${blindCast(exhaustive).kind}\"`);\n\t\t}\n\t}\n}\nfunction renderDdlColumnDefault(def, sql) {\n\tif (!def) return \"\";\n\tif (def.kind === \"literal\") return `lit(${jsonToTsSource(def.value)})`;\n\treturn `fn(${sql.source(def.expression.text)})`;\n}\nfunction renderDdlColumnAsTsCall(col, sql) {\n\tconst opts = [];\n\tif (col.notNull) opts.push(\"notNull: true\");\n\tif (col.primaryKey) opts.push(\"primaryKey: true\");\n\tif (col.default) opts.push(`default: ${renderDdlColumnDefault(col.default, sql)}`);\n\tif (col.codecRef) opts.push(`codecRef: ${jsonToTsSource(col.codecRef)}`);\n\tconst optsStr = opts.length > 0 ? `, { ${opts.join(\", \")} }` : \"\";\n\treturn `col(${jsonToTsSource(col.name)}, ${jsonToTsSource(col.type)}${optsStr})`;\n}\nfunction renderDdlConstraintAsTsCall(constraint, sql) {\n\tswitch (constraint.kind) {\n\t\tcase \"primary-key\": {\n\t\t\tconst nameOpt = constraint.name ? `, { name: ${jsonToTsSource(constraint.name)} }` : \"\";\n\t\t\treturn `primaryKey(${jsonToTsSource(constraint.columns)}${nameOpt})`;\n\t\t}\n\t\tcase \"foreign-key\": {\n\t\t\tconst opts = [];\n\t\t\tif (constraint.name) opts.push(`name: ${jsonToTsSource(constraint.name)}`);\n\t\t\tif (constraint.onDelete) opts.push(`onDelete: ${jsonToTsSource(constraint.onDelete)}`);\n\t\t\tif (constraint.onUpdate) opts.push(`onUpdate: ${jsonToTsSource(constraint.onUpdate)}`);\n\t\t\tconst optsStr = opts.length > 0 ? `, { ${opts.join(\", \")} }` : \"\";\n\t\t\treturn `foreignKey(${jsonToTsSource(constraint.columns)}, ${jsonToTsSource(constraint.refTable)}, ${jsonToTsSource(constraint.refColumns)}${optsStr})`;\n\t\t}\n\t\tcase \"unique\": {\n\t\t\tconst nameOpt = constraint.name ? `, { name: ${jsonToTsSource(constraint.name)} }` : \"\";\n\t\t\treturn `unique(${jsonToTsSource(constraint.columns)}${nameOpt})`;\n\t\t}\n\t\tcase \"check-expression\": return `checkExpression(${jsonToTsSource(constraint.name)}, ${sql.source(constraint.expression.text)})`;\n\t}\n}\nfunction needsColOrConstraintImport(columns) {\n\treturn columns.length > 0;\n}\nfunction constraintImportSymbols(constraints) {\n\tif (!constraints || constraints.length === 0) return [];\n\tconst symbols = /* @__PURE__ */ new Set();\n\tfor (const c of constraints) if (c.kind === \"primary-key\") symbols.add(\"primaryKey\");\n\telse if (c.kind === \"foreign-key\") symbols.add(\"foreignKey\");\n\telse if (c.kind === \"unique\") symbols.add(\"unique\");\n\telse if (c.kind === \"check-expression\") symbols.add(\"checkExpression\");\n\treturn [...symbols];\n}\nfunction defaultImportSymbols(columns) {\n\tconst symbols = /* @__PURE__ */ new Set();\n\tfor (const col of columns) if (col.default?.kind === \"literal\") symbols.add(\"lit\");\n\telse if (col.default?.kind === \"function\") symbols.add(\"fn\");\n\treturn [...symbols];\n}\nvar CreateTableCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createTable\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumns;\n\tconstraints;\n\tlabel;\n\tconstructor(schemaName, tableName, columns, constraints) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columns = Object.freeze([...columns]);\n\t\tthis.constraints = constraints ? Object.freeze([...constraints]) : void 0;\n\t\tthis.label = `Create table \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateTableCall.toOp: a DDL lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateTableCall\" } });\n\t\tconst ddlNode = createTable({\n\t\t\t...ifDefined(\"schema\", boundSchema(this.schemaName)),\n\t\t\ttable: this.tableName,\n\t\t\tcolumns: this.columns,\n\t\t\t...ifDefined(\"constraints\", this.constraints)\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst schemaName = this.schemaName;\n\t\tconst tableName = this.tableName;\n\t\tconst checks = tableExistsAst(schemaName, tableName);\n\t\tconst absent = await lowerer.lowerToExecuteRequest(checks.tableAbsent());\n\t\tconst present = await lowerer.lowerToExecuteRequest(checks.tablePresent());\n\t\treturn {\n\t\t\tid: `table.${tableName}`,\n\t\t\tlabel: `Create table \"${tableName}\"`,\n\t\t\tsummary: `Creates table \"${tableName}\"`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: targetDetails(\"table\", tableName, schemaName),\n\t\t\tprecheck: [step(`ensure table \"${tableName}\" does not exist`, absent.sql, absent.params)],\n\t\t\texecute: [{\n\t\t\t\tdescription: `create table \"${tableName}\"`,\n\t\t\t\tsql: statement.sql,\n\t\t\t\tparams: statement.params ?? []\n\t\t\t}],\n\t\t\tpostcheck: [step(`verify table \"${tableName}\" exists`, present.sql, present.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\tconst columnsList = this.columns.map((column) => renderDdlColumnAsTsCall(column, sql)).join(\", \");\n\t\tconst constraintsList = this.constraints ? this.constraints.map((constraint) => renderDdlConstraintAsTsCall(constraint, sql)).join(\", \") : void 0;\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`columns: [${columnsList}]`);\n\t\tif (constraintsList) opts.push(`constraints: [${constraintsList}]`);\n\t\treturn {\n\t\t\tsource: `this.createTable({ ${opts.join(\", \")} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n\timportRequirements() {\n\t\tconst req = [];\n\t\tif (needsColOrConstraintImport(this.columns)) {\n\t\t\treq.push({\n\t\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\t\tsymbol: \"col\"\n\t\t\t});\n\t\t\tfor (const sym of defaultImportSymbols(this.columns)) req.push({\n\t\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\t\tsymbol: sym\n\t\t\t});\n\t\t}\n\t\tfor (const sym of constraintImportSymbols(this.constraints)) req.push({\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: sym\n\t\t});\n\t\treq.push(...this.#written().imports);\n\t\treturn req;\n\t}\n};\nvar DropTableCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropTable\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tlabel;\n\tconstructor(schemaName, tableName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Drop table \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropTableCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropTableCall\" } });\n\t\treturn dropTable(this.schemaName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\treturn `this.dropTable({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenameTableCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameTable\";\n\toperationClass = \"widening\";\n\tschemaName;\n\toldTableName;\n\t/** The new name: the table's contract-side identity after the rename. */\n\ttableName;\n\tlabel;\n\t/**\n\t* The renames of objects whose names derive from the table name. They run after the table rename\n\t* and are never rendered on their own.\n\t*/\n\tcompanions;\n\tconstructor(schemaName, oldTableName, tableName, companions) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.oldTableName = oldTableName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Rename table \"${oldTableName}\" to \"${tableName}\"`;\n\t\tthis.companions = Object.freeze([...companions]);\n\t\tthis.freeze();\n\t}\n\ttoOps(lowerer) {\n\t\treturn [this.toOp(lowerer), ...this.companions.map((companion) => companion.toOp(lowerer))];\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenameTableCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.oldTableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenameTableCall\" } });\n\t\treturn renameTable(this.schemaName, this.oldTableName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.oldTableName)}`);\n\t\topts.push(`to: ${jsonToTsSource(this.tableName)}`);\n\t\treturn `...this.renameTable({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddColumnCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addColumn\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumn;\n\tlabel;\n\tconstructor(schemaName, tableName, column) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.column = column;\n\t\tthis.label = `Add column \"${column.name}\" to \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddColumnCall.toOp: a DDL lowerer is required on the Postgres planner path (column \"${this.column.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddColumnCall\" } });\n\t\tconst ddlNode = alterTable({\n\t\t\t...ifDefined(\"schema\", boundSchema(this.schemaName)),\n\t\t\ttable: this.tableName,\n\t\t\tactions: [addColumnAction(this.column)]\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst schemaName = this.schemaName;\n\t\tconst tableName = this.tableName;\n\t\tconst columnName = this.column.name;\n\t\tconst colChecks = columnExistsAst({\n\t\t\tschema: schemaName,\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName\n\t\t});\n\t\tconst absent = await lowerer.lowerToExecuteRequest(colChecks.columnAbsent());\n\t\tconst present = await lowerer.lowerToExecuteRequest(colChecks.columnPresent());\n\t\treturn {\n\t\t\tid: `column.${schemaName}.${tableName}.${columnName}`,\n\t\t\tlabel: `Add column \"${columnName}\" to \"${tableName}\"`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: targetDetails(\"column\", columnName, schemaName, tableName),\n\t\t\tprecheck: [step(`ensure column \"${columnName}\" is missing`, absent.sql, absent.params)],\n\t\t\texecute: [step(`add column \"${columnName}\"`, statement.sql)],\n\t\t\tpostcheck: [step(`verify column \"${columnName}\" exists`, present.sql, present.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${renderDdlColumnAsTsCall(this.column, sql)}`);\n\t\treturn {\n\t\t\tsource: `this.addColumn({ ${opts.join(\", \")} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n\timportRequirements() {\n\t\tconst req = [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: \"col\"\n\t\t}];\n\t\tfor (const sym of defaultImportSymbols([this.column])) req.push({\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: sym\n\t\t});\n\t\treq.push(...this.#written().imports);\n\t\treturn req;\n\t}\n};\nvar RenameColumnCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameColumn\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\toldColumnName;\n\t/** The new name: the column's contract-side identity after the rename. */\n\tcolumnName;\n\tlabel;\n\t/**\n\t* The renames of objects whose names derive from the column name. They run after the column\n\t* rename and are never rendered on their own.\n\t*/\n\tcompanions;\n\tconstructor(schemaName, tableName, oldColumnName, columnName, companions) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.oldColumnName = oldColumnName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Rename column \"${tableName}\".\"${oldColumnName}\" to \"${columnName}\"`;\n\t\tthis.companions = Object.freeze([...companions]);\n\t\tthis.freeze();\n\t}\n\ttoOps(lowerer) {\n\t\treturn [this.toOp(lowerer), ...this.companions.map((companion) => companion.toOp(lowerer))];\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenameColumnCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.oldColumnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenameColumnCall\" } });\n\t\treturn renameColumn(this.schemaName, this.tableName, this.oldColumnName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.oldColumnName)}`);\n\t\topts.push(`to: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `...this.renameColumn({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropColumnCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropColumn\";\n\toperationClass = \"destructive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop column \"${columnName}\" from \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropColumnCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropColumnCall\" } });\n\t\treturn dropColumn(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.dropColumn({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/** An `alterColumnType` call named by the column it alters, as its errors name it. */\nfunction alterColumnTypeCallText(schema, table, column) {\n\treturn `alterColumnType({ ${columnCallLocation(schema, table, column).join(\", \")} })`;\n}\nvar AlterColumnTypeCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"alterColumnType\";\n\toperationClass;\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\t/** The new type as a migration writes it. */\n\ttype;\n\tusing;\n\t/** The type `format_type` prints once the alter has run, which the postcheck compares. */\n\tcheckType;\n\tlabel;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.schemaName = input.schemaName;\n\t\tthis.tableName = input.tableName;\n\t\tthis.columnName = input.columnName;\n\t\tthis.type = input.type;\n\t\tthis.using = input.using;\n\t\tthis.operationClass = input.operationClass ?? this.#defaultClass();\n\t\tthis.#refuseUnsafeUsing();\n\t\tthis.checkType = alterTypeCheckText(input.type, input.dataTypes, this.#callText());\n\t\tthis.label = `Alter type of \"${input.tableName}\".\"${input.columnName}\" to ${input.type}`;\n\t\tthis.freeze();\n\t}\n\t#refuseUnsafeUsing() {\n\t\tif (this.using?.kind !== \"sql\") return;\n\t\tconst refused = checkSqlExpressionText(this.using.sql, POSTGRES_QUOTING);\n\t\tif (refused === void 0) return;\n\t\tconst call = this.#callText();\n\t\tthrow postgresError(\"MIGRATION.SQL_EXPRESSION_INVALID\", `${call}: using ${JSON.stringify(this.using.sql)} holds ${refused}, which could end or extend the ALTER COLUMN … TYPE statement it is written into`, {\n\t\t\twhy: \"The conversion is written into the USING clause of ALTER COLUMN … TYPE. The check refuses a semicolon, a SQL comment, dollar quoting, and a comma or a statement keyword outside parentheses, since each could end or extend that statement; it does not check that the text is valid SQL.\",\n\t\t\tfix: `Write using as one SQL expression over the column, such as \"${this.columnName}\"::${this.type}. If it holds a comma or a keyword such as FROM outside parentheses, wrap it in parentheses.`,\n\t\t\tmeta: {\n\t\t\t\tcall,\n\t\t\t\tfield: \"using\",\n\t\t\t\texpression: this.using.sql,\n\t\t\t\trefused\n\t\t\t}\n\t\t});\n\t}\n\t#defaultClass() {\n\t\treturn this.using === void 0 ? \"destructive\" : \"data\";\n\t}\n\t#callText() {\n\t\treturn alterColumnTypeCallText(this.schemaName, this.tableName, this.columnName);\n\t}\n\tasync toOp(lowerer) {\n\t\tif (isUnfilledSlot(this.using)) return unfilledPlaceholderOperation(this.label);\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AlterColumnTypeCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AlterColumnTypeCall\" } });\n\t\treturn alterColumnType(this.schemaName, this.tableName, this.columnName, {\n\t\t\ttype: this.type,\n\t\t\tcheckType: this.checkType,\n\t\t\t...ifDefined(\"using\", sqlOfSlot(this.using))\n\t\t}, lowerer, this.operationClass);\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\timportRequirements() {\n\t\treturn [...isUnfilledSlot(this.using) ? [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: \"placeholder\"\n\t\t}] : [], ...this.#written().imports];\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\tconst using = this.using === void 0 ? [] : [`using: ${slotSource(this.using, sql)}`];\n\t\treturn {\n\t\t\tsource: `this.alterColumnType({ ${[\n\t\t\t\t...columnCallLocation(this.schemaName, this.tableName, this.columnName),\n\t\t\t\t`type: ${jsonToTsSource(this.type)}`,\n\t\t\t\t...using,\n\t\t\t\t...this.operationClass === this.#defaultClass() ? [] : [`operationClass: ${jsonToTsSource(this.operationClass)}`]\n\t\t\t].join(\", \")} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n};\nvar SetNotNullCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"setNotNull\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Set NOT NULL on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `SetNotNullCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"SetNotNullCall\" } });\n\t\treturn setNotNull(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.setNotNull({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropNotNullCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropNotNull\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop NOT NULL on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropNotNullCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropNotNullCall\" } });\n\t\treturn dropNotNull(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.dropNotNull({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar SetDefaultCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"setDefault\";\n\toperationClass;\n\tschemaName;\n\ttableName;\n\t/** The column with the default to set, its type and its codec; the adapter writes the clause. */\n\tcolumn;\n\tlabel;\n\tconstructor(schemaName, tableName, column, operationClass = \"additive\") {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.column = column;\n\t\tthis.operationClass = operationClass;\n\t\tthis.label = `Set default on \"${tableName}\".\"${column.name}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `SetDefaultCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.column.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"SetDefaultCall\" } });\n\t\treturn setDefault(this.schemaName, this.tableName, this.column, lowerer, this.operationClass);\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${renderDdlColumnAsTsCall(this.column, sql)}`);\n\t\tif (this.operationClass !== \"additive\") opts.push(`operationClass: ${jsonToTsSource(this.operationClass)}`);\n\t\treturn {\n\t\t\tsource: `this.setDefault({ ${opts.join(\", \")} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n\timportRequirements() {\n\t\treturn [\n\t\t\t{\n\t\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\t\tsymbol: \"col\"\n\t\t\t},\n\t\t\t...defaultImportSymbols([this.column]).map((symbol) => ({\n\t\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\t\tsymbol\n\t\t\t})),\n\t\t\t...this.#written().imports\n\t\t];\n\t}\n};\nvar DropDefaultCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropDefault\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.label = `Drop default on \"${tableName}\".\"${columnName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropDefaultCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropDefaultCall\" } });\n\t\treturn dropDefault(this.schemaName, this.tableName, this.columnName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`column: ${jsonToTsSource(this.columnName)}`);\n\t\treturn `this.dropDefault({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nfunction columnCallLocation(schemaName, tableName, columnName) {\n\treturn [\n\t\t...schemaName === UNBOUND_NAMESPACE_ID ? [] : [`schema: ${jsonToTsSource(schemaName)}`],\n\t\t`table: ${jsonToTsSource(tableName)}`,\n\t\t`column: ${jsonToTsSource(columnName)}`\n\t];\n}\n/**\n* Adds a required column with no default to a table that must be empty when the migration runs:\n* a column in a new primary key, unique constraint or foreign key, where one temporary value in\n* every row would break the constraint.\n*/\nvar AddRequiredColumnToEmptyTableCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addRequiredColumnToEmptyTable\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\t/** The column's type as a migration writes it. */\n\ttype;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName, type) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.type = type;\n\t\tthis.label = `Add column ${columnName} to ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddRequiredColumnToEmptyTableCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddRequiredColumnToEmptyTableCall\" } });\n\t\treturn addRequiredColumnToEmptyTable(this.schemaName, this.tableName, col(this.columnName, this.type, { notNull: true }), lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addRequiredColumnToEmptyTable({ ${[...columnCallLocation(this.schemaName, this.tableName, this.columnName), `type: ${jsonToTsSource(this.type)}`].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* Adds a required column with no default to a table that may have rows: the column is added with\n* `temporaryDefault`, a SQL value every existing row takes, and the default is then dropped.\n*/\nvar AddColumnWithTemporaryDefaultCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addColumnWithTemporaryDefault\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tcolumnName;\n\t/** The column's type as a migration writes it. */\n\ttype;\n\t/** SQL for the value existing rows take, such as `''` or `0`. */\n\ttemporaryDefault;\n\tlabel;\n\tconstructor(schemaName, tableName, columnName, type, temporaryDefault) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.columnName = columnName;\n\t\tthis.type = type;\n\t\tthis.temporaryDefault = temporaryDefault;\n\t\tconst refused = checkSqlDefaultText(temporaryDefault);\n\t\tif (refused !== void 0) {\n\t\t\tconst call = `addColumnWithTemporaryDefault({ ${columnCallLocation(schemaName, tableName, columnName).join(\", \")} })`;\n\t\t\tthrow postgresError(\"CONTRACT.DEFAULT_INVALID\", `${call}: temporaryDefault ${JSON.stringify(temporaryDefault)} is not a value: ${refused}`, {\n\t\t\t\tfix: \"Write temporaryDefault as one SQL value, such as '' or 0.\",\n\t\t\t\tmeta: {\n\t\t\t\t\texpression: temporaryDefault,\n\t\t\t\t\twhere: call\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.label = `Add column ${columnName} to ${tableName}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddColumnWithTemporaryDefaultCall.toOp: a lowerer is required on the Postgres planner path (column \"${this.columnName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddColumnWithTemporaryDefaultCall\" } });\n\t\treturn buildAddNotNullColumnWithTemporaryDefaultOperation({\n\t\t\tschema: this.schemaName,\n\t\t\ttableName: this.tableName,\n\t\t\tcolumnName: this.columnName,\n\t\t\ttype: this.type,\n\t\t\ttemporaryDefault: this.temporaryDefault,\n\t\t\tlowerer\n\t\t});\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\timportRequirements() {\n\t\treturn this.#written().imports;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\treturn {\n\t\t\tsource: `this.addColumnWithTemporaryDefault({ ${[\n\t\t\t\t...columnCallLocation(this.schemaName, this.tableName, this.columnName),\n\t\t\t\t`type: ${jsonToTsSource(this.type)}`,\n\t\t\t\t`temporaryDefault: ${sql.source(this.temporaryDefault)}`\n\t\t\t].join(\", \")} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n};\nfunction constraintCallOptions(schemaName, tableName, constraintName) {\n\tconst opts = [];\n\tif (schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(schemaName)}`);\n\topts.push(`table: ${jsonToTsSource(tableName)}`);\n\topts.push(`constraint: ${jsonToTsSource(constraintName)}`);\n\treturn opts.join(\", \");\n}\nvar AddPrimaryKeyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addPrimaryKey\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tcolumns;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, columns) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.columns = columns;\n\t\tthis.label = `Add primary key on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddPrimaryKeyCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddPrimaryKeyCall\" } });\n\t\treturn addPrimaryKey(this.schemaName, this.tableName, this.constraintName, this.columns, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addPrimaryKey({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)}, columns: ${jsonToTsSource(this.columns)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddUniqueCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addUnique\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tcolumns;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, columns) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.columns = columns;\n\t\tthis.label = `Add unique constraint on \"${tableName}\" (${columns.join(\", \")})`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddUniqueCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddUniqueCall\" } });\n\t\treturn addUnique(this.schemaName, this.tableName, this.constraintName, this.columns, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addUnique({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)}, columns: ${jsonToTsSource(this.columns)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddForeignKeyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addForeignKey\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tfk;\n\tlabel;\n\tconstructor(schemaName, tableName, fk) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.fk = fk;\n\t\tthis.label = `Add foreign key \"${fk.name}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddForeignKeyCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.fk.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddForeignKeyCall\" } });\n\t\treturn addForeignKey(this.schemaName, this.tableName, this.fk, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`foreignKey: ${jsonToTsSource(this.fk)}`);\n\t\treturn `this.addForeignKey({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropConstraint\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tkind;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, kind = \"unique\") {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.kind = kind;\n\t\tthis.label = `Drop constraint \"${constraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropConstraintCall\" } });\n\t\treturn dropConstraint(this.schemaName, this.tableName, this.constraintName, lowerer, this.kind);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [constraintCallOptions(this.schemaName, this.tableName, this.constraintName)];\n\t\tif (this.kind !== \"unique\") opts.push(`kind: ${jsonToTsSource(this.kind)}`);\n\t\treturn `this.dropConstraint({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenameConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameConstraint\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tkind;\n\toldConstraintName;\n\tnewConstraintName;\n\tlabel;\n\tconstructor(schemaName, tableName, kind, oldConstraintName, newConstraintName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.kind = kind;\n\t\tthis.oldConstraintName = oldConstraintName;\n\t\tthis.newConstraintName = newConstraintName;\n\t\tthis.label = renameConstraintLabel(kind, oldConstraintName, newConstraintName, tableName);\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenameConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.oldConstraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenameConstraintCall\" } });\n\t\treturn renameConstraint(this.schemaName, this.tableName, this.kind, this.oldConstraintName, this.newConstraintName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`kind: ${jsonToTsSource(this.kind)}`);\n\t\topts.push(`from: ${jsonToTsSource(this.oldConstraintName)}`);\n\t\topts.push(`to: ${jsonToTsSource(this.newConstraintName)}`);\n\t\treturn `this.renameConstraint({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar AddCheckConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addCheckConstraint\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\t/** Opaque SQL: the predicate body, rendered verbatim inside `CHECK (…)`. */\n\texpression;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName, expression) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.expression = expression;\n\t\tthis.label = `Add check constraint \"${constraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddCheckConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddCheckConstraintCall\" } });\n\t\treturn addCheckConstraint(this.schemaName, this.tableName, this.constraintName, this.expression, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\timportRequirements() {\n\t\treturn this.#written().imports;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\treturn {\n\t\t\tsource: `this.addCheckConstraint({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)}, expression: ${sql.source(this.expression)} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n};\nvar DropCheckConstraintCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropCheckConstraint\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tconstraintName;\n\tlabel;\n\tconstructor(schemaName, tableName, constraintName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.constraintName = constraintName;\n\t\tthis.label = `Drop check constraint \"${constraintName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropCheckConstraintCall.toOp: a lowerer is required on the Postgres planner path (constraint \"${this.constraintName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropCheckConstraintCall\" } });\n\t\treturn dropCheckConstraint(this.schemaName, this.tableName, this.constraintName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropCheckConstraint({ ${constraintCallOptions(this.schemaName, this.tableName, this.constraintName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar CreateIndexCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createIndex\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tindexName;\n\t/** Column tuple when the index is column-based; absent for expression indexes. */\n\tcolumns;\n\t/** Opaque whole element list when the index is expression-based. */\n\texpression;\n\tindexType;\n\toptions;\n\twhere;\n\tunique;\n\tlabel;\n\tconstructor(schemaName, tableName, indexName, elements, extras) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.indexName = indexName;\n\t\tthis.columns = \"columns\" in elements ? elements.columns : void 0;\n\t\tthis.expression = \"expression\" in elements ? elements.expression : void 0;\n\t\tthis.indexType = extras?.type;\n\t\tthis.options = extras?.options;\n\t\tthis.where = extras?.where;\n\t\tthis.unique = extras?.unique === true;\n\t\tthis.label = `Create index \"${indexName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateIndexCall.toOp: a lowerer is required on the Postgres planner path (index \"${this.indexName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateIndexCall\" } });\n\t\tconst extras = {};\n\t\tif (this.indexType !== void 0) extras.type = this.indexType;\n\t\tif (this.options !== void 0) extras.options = this.options;\n\t\tif (this.where !== void 0) extras.where = this.where;\n\t\tif (this.unique) extras.unique = true;\n\t\treturn createIndex(this.schemaName, this.tableName, this.indexName, this.columns !== void 0 ? { columns: this.columns } : { expression: this.expression ?? \"\" }, lowerer, extras);\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\timportRequirements() {\n\t\treturn this.#written().imports;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`index: ${jsonToTsSource(this.indexName)}`);\n\t\tif (this.columns !== void 0) opts.push(`columns: ${jsonToTsSource(this.columns)}`);\n\t\telse opts.push(`expression: ${sql.source(this.expression ?? \"\")}`);\n\t\tif (this.indexType !== void 0 || this.options !== void 0 || this.where !== void 0 || this.unique) {\n\t\t\tconst extrasParts = [];\n\t\t\tif (this.indexType !== void 0) extrasParts.push(`type: ${jsonToTsSource(this.indexType)}`);\n\t\t\tif (this.options !== void 0) extrasParts.push(`options: ${jsonToTsSource(this.options)}`);\n\t\t\tif (this.where !== void 0) extrasParts.push(`where: ${sql.source(this.where)}`);\n\t\t\tif (this.unique) extrasParts.push(\"unique: true\");\n\t\t\topts.push(`extras: { ${extrasParts.join(\", \")} }`);\n\t\t}\n\t\treturn {\n\t\t\tsource: `this.createIndex({ ${opts.join(\", \")} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n};\nvar RenameIndexCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameIndex\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\toldIndexName;\n\tnewIndexName;\n\tlabel;\n\tconstructor(schemaName, tableName, oldIndexName, newIndexName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.oldIndexName = oldIndexName;\n\t\tthis.newIndexName = newIndexName;\n\t\tthis.label = `Rename index \"${oldIndexName}\" to \"${newIndexName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenameIndexCall.toOp: a lowerer is required on the Postgres planner path (index \"${this.oldIndexName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenameIndexCall\" } });\n\t\treturn renameIndex(this.schemaName, this.tableName, this.oldIndexName, this.newIndexName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`from: ${jsonToTsSource(this.oldIndexName)}`);\n\t\topts.push(`to: ${jsonToTsSource(this.newIndexName)}`);\n\t\treturn `this.renameIndex({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropIndexCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropIndex\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tindexName;\n\tlabel;\n\tconstructor(schemaName, tableName, indexName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.indexName = indexName;\n\t\tthis.label = `Drop index \"${indexName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropIndexCall.toOp: a lowerer is required on the Postgres planner path (index \"${this.indexName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropIndexCall\" } });\n\t\treturn dropIndex(this.schemaName, this.tableName, this.indexName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\tconst opts = [];\n\t\tif (this.schemaName !== UNBOUND_NAMESPACE_ID) opts.push(`schema: ${jsonToTsSource(this.schemaName)}`);\n\t\topts.push(`table: ${jsonToTsSource(this.tableName)}`);\n\t\topts.push(`index: ${jsonToTsSource(this.indexName)}`);\n\t\treturn `this.dropIndex({ ${opts.join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* Laundered pre-built operation.\n*\n* Wraps an already-materialized `SqlMigrationPlanOperation` — typically one\n* produced by a SQL-family method or a codec control hook — so the planner\n* can carry it alongside IR nodes without reverse-engineering it into a\n* structured call class. Doubles as the user-facing escape hatch for raw\n* migrations: authors can pass a full op shape to `rawSql({...})`.\n*\n* `toOp()` returns the stored op unchanged. `renderTypeScript()` emits\n* `rawSql({...})` with the op serialized as a JSON literal — round-tripping\n* requires every field on the op to be JSON-serializable (no closures).\n*/\nvar RawSqlCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"rawSql\";\n\toperationClass;\n\tlabel;\n\top;\n\tconstructor(op) {\n\t\tsuper();\n\t\tthis.op = op;\n\t\tthis.label = op.label;\n\t\tthis.operationClass = op.operationClass;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn this.op;\n\t}\n\trenderTypeScript() {\n\t\treturn `rawSql(${jsonToTsSource(this.op)})`;\n\t}\n};\nvar CreateExtensionCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createExtension\";\n\toperationClass = \"additive\";\n\textensionName;\n\tlabel;\n\tconstructor(extensionName) {\n\t\tsuper();\n\t\tthis.extensionName = extensionName;\n\t\tthis.label = `Create extension \"${extensionName}\"`;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn createExtension(this.extensionName);\n\t}\n\trenderTypeScript() {\n\t\treturn `createExtension(${jsonToTsSource(this.extensionName)})`;\n\t}\n};\nvar CreateSchemaCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createSchema\";\n\toperationClass = \"additive\";\n\tschemaName;\n\tlabel;\n\tconstructor(schemaName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.label = `Create schema \"${schemaName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateSchemaCall.toOp: a DDL lowerer is required on the Postgres planner path (schema \"${this.schemaName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateSchemaCall\" } });\n\t\tconst ddlNode = createSchema({\n\t\t\tschema: this.schemaName,\n\t\t\tifNotExists: true\n\t\t});\n\t\tconst statement = await lowerer.lowerToExecuteRequest(ddlNode);\n\t\tconst schemaName = this.schemaName;\n\t\treturn {\n\t\t\tid: `schema.${schemaName}`,\n\t\t\tlabel: `Create schema \"${schemaName}\"`,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: { id: \"postgres\" },\n\t\t\tprecheck: [],\n\t\t\texecute: [{\n\t\t\t\tdescription: `Create schema \"${schemaName}\"`,\n\t\t\t\tsql: statement.sql,\n\t\t\t\tparams: statement.params ?? []\n\t\t\t}],\n\t\t\tpostcheck: []\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.createSchema({ schema: ${jsonToTsSource(this.schemaName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar CreateNativeEnumTypeCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createNativeEnumType\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttypeName;\n\tmembers;\n\tlabel;\n\tconstructor(schemaName, typeName, members) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.typeName = typeName;\n\t\tthis.members = Object.freeze([...members]);\n\t\tthis.label = `Create enum type \"${typeName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreateNativeEnumTypeCall.toOp: a DDL lowerer is required on the Postgres planner path (type \"${this.typeName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreateNativeEnumTypeCall\" } });\n\t\treturn createNativeEnumType(this.schemaName, this.typeName, this.members, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.createNativeEnumType({ ${[\n\t\t\t`schema: ${jsonToTsSource(this.schemaName)}`,\n\t\t\t`typeName: ${jsonToTsSource(this.typeName)}`,\n\t\t\t`members: ${jsonToTsSource(this.members)}`\n\t\t].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DropNativeEnumTypeCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropNativeEnumType\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttypeName;\n\tlabel;\n\tconstructor(schemaName, typeName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.typeName = typeName;\n\t\tthis.label = `Drop enum type \"${typeName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropNativeEnumTypeCall.toOp: a DDL lowerer is required on the Postgres planner path (type \"${this.typeName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropNativeEnumTypeCall\" } });\n\t\treturn dropNativeEnumType(this.schemaName, this.typeName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropNativeEnumType({ ${[`schema: ${jsonToTsSource(this.schemaName)}`, `typeName: ${jsonToTsSource(this.typeName)}`].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/** Schema-qualified, quoted enum type name — unqualified when `schemaName` is the unbound sentinel, matching `boundSchema`'s DDL-node convention. */\nfunction qualifiedNativeEnumTypeName(schemaName, typeName) {\n\tconst bound = boundSchema(schemaName);\n\treturn quoteQualifiedName(bound === void 0 ? typeName : `${bound}.${typeName}`);\n}\nconst ADD_VALUE_TRANSACTION_CAVEAT = \"A newly added enum value cannot be used until the transaction that adds it commits, so a migration that both appends a value and uses it in the same step will fail at apply.\";\n/**\n* `ALTER TYPE <qualified> ADD VALUE '<value>'` for a suffix-appended member on\n* a managed native enum. Built directly as SQL text (qualified via\n* `quoteQualifiedName`, the value escaped via `escapeLiteral`) rather than a\n* typed DDL node — mirrors how `enableRowLevelSecurity` renders its execute\n* step, since no DDL-AST node exists for this statement. Prechecks/postchecks\n* are still typed catalog queries lowered through the control adapter.\n* `validateEnumValueLength` runs at construction, so an over-length value\n* fails before planning produces a call.\n*/\nvar AddNativeEnumValueCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"addNativeEnumValue\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttypeName;\n\tvalue;\n\tlabel;\n\tsummary;\n\tconstructor(schemaName, typeName, value) {\n\t\tsuper();\n\t\tvalidateEnumValueLength(value, typeName);\n\t\tthis.schemaName = schemaName;\n\t\tthis.typeName = typeName;\n\t\tthis.value = value;\n\t\tthis.label = `Add value \"${value}\" to enum type \"${typeName}\"`;\n\t\tthis.summary = `Adds value \"${value}\" to enum type \"${typeName}\". ${ADD_VALUE_TRANSACTION_CAVEAT}`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `AddNativeEnumValueCall.toOp: a lowerer is required on the Postgres planner path (type \"${this.typeName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"AddNativeEnumValueCall\" } });\n\t\tconst { schemaName, typeName, value } = this;\n\t\tconst typeChecks = nativeEnumTypeExistsAst(schemaName, typeName);\n\t\tconst valueChecks = nativeEnumValueExistsAst({\n\t\t\tschema: schemaName,\n\t\t\ttypeName,\n\t\t\tvalue\n\t\t});\n\t\tconst typePresent = await lowerer.lowerToExecuteRequest(typeChecks.typePresent());\n\t\tconst valueAbsent = await lowerer.lowerToExecuteRequest(valueChecks.valueAbsent());\n\t\tconst valuePresent = await lowerer.lowerToExecuteRequest(valueChecks.valuePresent());\n\t\tconst qualifiedType = qualifiedNativeEnumTypeName(schemaName, typeName);\n\t\treturn {\n\t\t\tid: `addNativeEnumValue.${typeName}.${value}`,\n\t\t\tlabel: this.label,\n\t\t\tsummary: this.summary,\n\t\t\toperationClass: \"additive\",\n\t\t\ttarget: targetDetails(\"type\", typeName, schemaName),\n\t\t\tprecheck: [step(`ensure enum type \"${typeName}\" exists`, typePresent.sql, typePresent.params), step(`ensure value \"${value}\" is absent from enum type \"${typeName}\"`, valueAbsent.sql, valueAbsent.params)],\n\t\t\texecute: [step(`add value \"${value}\" to enum type \"${typeName}\"`, `ALTER TYPE ${qualifiedType} ADD VALUE '${escapeLiteral(value)}'`)],\n\t\t\tpostcheck: [step(`verify value \"${value}\" exists on enum type \"${typeName}\"`, valuePresent.sql, valuePresent.params)]\n\t\t};\n\t}\n\trenderTypeScript() {\n\t\treturn `this.addNativeEnumValue({ ${[\n\t\t\t`schema: ${jsonToTsSource(this.schemaName)}`,\n\t\t\t`typeName: ${jsonToTsSource(this.typeName)}`,\n\t\t\t`value: ${jsonToTsSource(this.value)}`\n\t\t].join(\", \")} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/**\n* A planner-generated data-transform stub. `checkSlot` and `runSlot` name\n* the unfilled authoring slots that the rendered `migration.ts` will expose\n* to the user via `placeholder(\"…\")` calls. `toOp()` always rejects with\n* `MIGRATION.UNFILLED_PLACEHOLDER`: the planner cannot lower a stubbed transform to a runtime\n* op — the user must fill the rendered `migration.ts` and re-emit.\n*/\nvar DataTransformCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dataTransform\";\n\toperationClass;\n\tlabel;\n\tcheckSlot;\n\trunSlot;\n\tbackfillsColumn;\n\tconstructor(label, checkSlot, runSlot, operationClass = \"data\", backfillsColumn) {\n\t\tsuper();\n\t\tthis.label = label;\n\t\tthis.checkSlot = checkSlot;\n\t\tthis.runSlot = runSlot;\n\t\tthis.operationClass = operationClass;\n\t\tthis.backfillsColumn = backfillsColumn;\n\t\tthis.freeze();\n\t}\n\ttoOp() {\n\t\treturn unfilledPlaceholderOperation(this.label);\n\t}\n\trenderTypeScript() {\n\t\treturn [\n\t\t\t`this.dataTransform(endContract, ${jsonToTsSource(this.label)}, {`,\n\t\t\t...this.backfillsColumn === void 0 ? [] : [` backfillsColumn: ${jsonToTsSource(this.backfillsColumn).replaceAll(\"\\n\", \"\\n \")},`],\n\t\t\t` check: () => placeholder(${jsonToTsSource(this.checkSlot)}),`,\n\t\t\t` run: () => placeholder(${jsonToTsSource(this.runSlot)}),`,\n\t\t\t\"})\"\n\t\t].join(\"\\n\");\n\t}\n\timportRequirements() {\n\t\treturn [{\n\t\t\tmoduleSpecifier: POSTGRES_MIGRATION_FACADE,\n\t\t\tsymbol: \"placeholder\"\n\t\t}];\n\t}\n};\nvar CreatePostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"createRlsPolicy\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tpolicy;\n\tlabel;\n\tconstructor(schemaName, tableName, policy) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.policy = policy;\n\t\tthis.label = `Create RLS policy \"${policy.name}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `CreatePostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy \"${this.policy.name}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"CreatePostgresRlsPolicyCall\" } });\n\t\treturn createRlsPolicy(this.schemaName, this.tableName, this.policy, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn this.#written().source;\n\t}\n\timportRequirements() {\n\t\treturn this.#written().imports;\n\t}\n\t#written() {\n\t\tconst sql = createSqlTextSources(POSTGRES_MIGRATION_FACADE);\n\t\tconst p = this.policy;\n\t\tconst input = {\n\t\t\tnaming: namingOf(p.name, p.prefix),\n\t\t\ttableName: p.tableName,\n\t\t\tnamespaceId: p.namespaceId,\n\t\t\toperation: p.operation,\n\t\t\troles: p.roles,\n\t\t\t...ifDefined(\"using\", p.using),\n\t\t\t...ifDefined(\"withCheck\", p.withCheck),\n\t\t\tpermissive: p.permissive\n\t\t};\n\t\tconst sources = {\n\t\t\tnaming: jsonToTsSource(input.naming),\n\t\t\ttableName: jsonToTsSource(input.tableName),\n\t\t\tnamespaceId: jsonToTsSource(input.namespaceId),\n\t\t\toperation: jsonToTsSource(input.operation),\n\t\t\troles: jsonToTsSource(input.roles),\n\t\t\tusing: input.using === void 0 ? void 0 : sql.source(input.using),\n\t\t\twithCheck: input.withCheck === void 0 ? void 0 : sql.source(input.withCheck),\n\t\t\tpermissive: jsonToTsSource(input.permissive)\n\t\t};\n\t\tconst policy = tsObjectSource(Object.entries(sources).flatMap(([key, source]) => source === void 0 ? [] : [[key, source]]));\n\t\treturn {\n\t\t\tsource: `this.createRlsPolicy({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)}, policy: ${policy} })`,\n\t\t\timports: sql.imports()\n\t\t};\n\t}\n};\nvar DropPostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"dropRlsPolicy\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tpolicyName;\n\tlabel;\n\tconstructor(schemaName, tableName, policyName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.policyName = policyName;\n\t\tthis.label = `Drop RLS policy \"${policyName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DropPostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy \"${this.policyName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DropPostgresRlsPolicyCall\" } });\n\t\treturn dropRlsPolicy(this.schemaName, this.tableName, this.policyName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.dropRlsPolicy({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)}, policy: ${jsonToTsSource(this.policyName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar EnableRowLevelSecurityCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"enableRowLevelSecurity\";\n\toperationClass = \"additive\";\n\tschemaName;\n\ttableName;\n\tlabel;\n\tconstructor(schemaName, tableName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Enable row-level security on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `EnableRowLevelSecurityCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"EnableRowLevelSecurityCall\" } });\n\t\treturn enableRowLevelSecurity(this.schemaName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.enableRowLevelSecurity({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar DisableRowLevelSecurityCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"disableRowLevelSecurity\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\tlabel;\n\tconstructor(schemaName, tableName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.label = `Disable row-level security on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `DisableRowLevelSecurityCall.toOp: a lowerer is required on the Postgres planner path (table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"DisableRowLevelSecurityCall\" } });\n\t\treturn disableRowLevelSecurity(this.schemaName, this.tableName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.disableRowLevelSecurity({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\nvar RenamePostgresRlsPolicyCall = class extends PostgresOpFactoryCallNode {\n\tfactoryName = \"renameRlsPolicy\";\n\toperationClass = \"widening\";\n\tschemaName;\n\ttableName;\n\toldPolicyName;\n\tnewPolicyName;\n\tlabel;\n\tconstructor(schemaName, tableName, oldPolicyName, newPolicyName) {\n\t\tsuper();\n\t\tthis.schemaName = schemaName;\n\t\tthis.tableName = tableName;\n\t\tthis.oldPolicyName = oldPolicyName;\n\t\tthis.newPolicyName = newPolicyName;\n\t\tthis.label = `Rename RLS policy \"${oldPolicyName}\" to \"${newPolicyName}\" on \"${tableName}\"`;\n\t\tthis.freeze();\n\t}\n\tasync toOp(lowerer) {\n\t\tif (lowerer === void 0) throw postgresError(\"MIGRATION.POSTGRES_CONTROL_STACK_MISSING\", `RenamePostgresRlsPolicyCall.toOp: a lowerer is required on the Postgres planner path (policy \"${this.oldPolicyName}\" on table \"${this.tableName}\"). Pass the control adapter to createPostgresMigrationPlanner.`, { meta: { factory: \"RenamePostgresRlsPolicyCall\" } });\n\t\treturn renameRlsPolicy(this.schemaName, this.tableName, this.oldPolicyName, this.newPolicyName, lowerer);\n\t}\n\trenderTypeScript() {\n\t\treturn `this.renameRlsPolicy({ schema: ${jsonToTsSource(this.schemaName)}, table: ${jsonToTsSource(this.tableName)}, from: ${jsonToTsSource(this.oldPolicyName)}, to: ${jsonToTsSource(this.newPolicyName)} })`;\n\t}\n\timportRequirements() {\n\t\treturn [];\n\t}\n};\n/** The name of the column a call acts on: its `columnName`, or the name of the column it carries. */\nfunction columnNameOfCall(call) {\n\tif (\"columnName\" in call) return call.columnName;\n\tif (\"column\" in call && call.column instanceof DdlColumn) return call.column.name;\n}\n//#endregion\nexport { RenameConstraintCall as A, renameTableStatement as B, DropNativeEnumTypeCall as C, EnableRowLevelSecurityCall as D, DropTableCall as E, SetNotNullCall as F, installExtension as H, alterColumnTypeCallText as I, columnNameOfCall as L, RenamePostgresRlsPolicyCall as M, RenameTableCall as N, RawSqlCall as O, SetDefaultCall as P, isPostgresOpFactoryCall as R, DropIndexCall as S, DropPostgresRlsPolicyCall as T, createExtension as V, DisableRowLevelSecurityCall as _, AddNativeEnumValueCall as a, DropConstraintCall as b, AddUniqueCall as c, CreateIndexCall as d, CreateNativeEnumTypeCall as f, DataTransformCall as g, CreateTableCall as h, AddForeignKeyCall as i, RenameIndexCall as j, RenameColumnCall as k, AlterColumnTypeCall as l, CreateSchemaCall as m, AddColumnCall as n, AddPrimaryKeyCall as o, CreatePostgresRlsPolicyCall as p, AddColumnWithTemporaryDefaultCall as r, AddRequiredColumnToEmptyTableCall as s, AddCheckConstraintCall as t, CreateExtensionCall as u, DropCheckConstraintCall as v, DropNotNullCall as w, DropDefaultCall as x, DropColumnCall as y, postgresDefaultToDdlColumnDefault as z };\n\n//# sourceMappingURL=op-factory-call-ltgiEZ8g.mjs.map"],"mappings":"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"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
+
import { i as quoteIdentifier } from "./sql-utils-Df-nf6eM-Ov1KgjWm.mjs";
|
|
1
2
|
import { t as DEFAULT_NAMESPACE_ID } from "./namespace-ids-xtp_ZY86-Cpp8PTxD.mjs";
|
|
2
|
-
import { d as isPostgresSchema, i as PostgresRlsPolicy } from "./postgres-schema-
|
|
3
|
+
import { d as isPostgresSchema, i as PostgresRlsPolicy } from "./postgres-schema-Ysxbqkzr-hFRwS-zT.mjs";
|
|
3
4
|
import { r as PostgresTableSchemaNode } from "./postgres-table-schema-node-BBkitBQh-DT1T5VWU.mjs";
|
|
4
5
|
import { n as PostgresNamespaceSchemaNode, r as PostgresPolicySchemaNode, t as PostgresDatabaseSchemaNode } from "./postgres-role-schema-node-B8Z5i5D--PObwlU2Z.mjs";
|
|
5
|
-
import { t as resolveDdlSchemaForNamespaceStorage } from "./resolve-ddl-schema-
|
|
6
|
-
import { A as RenameConstraintCall, C as DropNativeEnumTypeCall, E as DropTableCall, M as RenamePostgresRlsPolicyCall, O as RawSqlCall, T as DropPostgresRlsPolicyCall, _ as DisableRowLevelSecurityCall, l as AlterColumnTypeCall, p as CreatePostgresRlsPolicyCall, y as DropColumnCall } from "./op-factory-call-
|
|
6
|
+
import { t as resolveDdlSchemaForNamespaceStorage } from "./resolve-ddl-schema-BvsUhPsJ-CY5uEwIr.mjs";
|
|
7
|
+
import { A as RenameConstraintCall, C as DropNativeEnumTypeCall, E as DropTableCall, M as RenamePostgresRlsPolicyCall, O as RawSqlCall, T as DropPostgresRlsPolicyCall, _ as DisableRowLevelSecurityCall, l as AlterColumnTypeCall, p as CreatePostgresRlsPolicyCall, r as AddColumnWithTemporaryDefaultCall, t as AddCheckConstraintCall, v as DropCheckConstraintCall, y as DropColumnCall } from "./op-factory-call-ltgiEZ8g-CX6WX57X.mjs";
|
|
7
8
|
import { n as defaultPrimaryKeyName, r as defaultUniqueName, t as defaultForeignKeyName } from "./default-constraint-names-CtcRXhV8-nz3ff6b8.mjs";
|
|
8
|
-
import { a as planIssues, c as renderPostgresSuppression, d as resolvePostgresNodeIssueControlPolicySubject, f as resolvePostgresNodeIssueCreationFactoryName, i as issueSchemaName, l as resolveNamespaceIdForDdlSchema, n as conflictForDisallowedCall, o as postgresNodeStorageCoordinate, r as issueNode, s as postgresPlannerStrategies, t as coalesceSubtreeIssues, u as resolvePostgresCallControlPolicySubject } from "./control-policy-
|
|
9
|
-
import { t as buildPostgresPlanDiff } from "./diff-database-schema-
|
|
10
|
-
import { a as postgresColumnRenameCall, c as postgresSchemaTables, d as renameTableByHandStatements, f as renderRenameTableCall, i as pairIndexRenames, l as postgresTableRenameByHand, n as createWorkingSchema, o as postgresContractToSchema, r as pairCheckRenames, u as postgresTableRenameCall } from "./postgres-migration-
|
|
11
|
-
import { t as TypeScriptRenderablePostgresMigration } from "./planner-produced-postgres-migration-
|
|
9
|
+
import { a as planIssues, c as renderPostgresSuppression, d as resolvePostgresNodeIssueControlPolicySubject, f as resolvePostgresNodeIssueCreationFactoryName, i as issueSchemaName, l as resolveNamespaceIdForDdlSchema, n as conflictForDisallowedCall, o as postgresNodeStorageCoordinate, r as issueNode, s as postgresPlannerStrategies, t as coalesceSubtreeIssues, u as resolvePostgresCallControlPolicySubject } from "./control-policy-DXaIsgUW-Btyo9Vs8.mjs";
|
|
10
|
+
import { t as buildPostgresPlanDiff } from "./diff-database-schema-BV6Px0Gg-DAC6TL3P.mjs";
|
|
11
|
+
import { a as postgresColumnRenameCall, c as postgresSchemaTables, d as renameTableByHandStatements, f as renderRenameTableCall, i as pairIndexRenames, l as postgresTableRenameByHand, n as createWorkingSchema, o as postgresContractToSchema, r as pairCheckRenames, u as postgresTableRenameCall } from "./postgres-migration-CLIfS2iQ-BgnVMLRT.mjs";
|
|
12
|
+
import { t as TypeScriptRenderablePostgresMigration } from "./planner-produced-postgres-migration-Brgj59VY-DOOLRWyy.mjs";
|
|
12
13
|
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
13
14
|
import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
|
|
14
|
-
import { issueOutcome } from "@prisma/orm-framework/components/control";
|
|
15
|
+
import { isRenameStatement, issueOutcome } from "@prisma/orm-framework/components/control";
|
|
15
16
|
import { namingOf, parseWireName } from "@prisma/orm-family-sql/schema-ir/naming";
|
|
16
17
|
import { ifDefined } from "@prisma/orm-framework/utils/defined";
|
|
17
|
-
import { controlPolicyForCall, detectTableNameCaseChanges, extractCodecControlHooks, fieldEventStorage, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventCalls, planStatements, plannerFailure, sqlTypeLookupsOf, storageNameOfOperation, subjectsOfCalls, unknownCallNames } from "@prisma/orm-family-sql/family/control";
|
|
18
|
+
import { appliedStatementsInOrder, backfillOfDefaultedField, controlPolicyForCall, detectTableNameCaseChanges, extractCodecControlHooks, fieldEventStorage, fieldStatementColumns, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventCalls, planStatements, plannerFailure, sqlTypeLookupsOf, storageNameOfOperation, subjectsOfCalls, unknownCallNames } from "@prisma/orm-family-sql/family/control";
|
|
18
19
|
import { ok } from "@prisma/orm-framework/utils/result";
|
|
19
|
-
//#region ../../../3-targets/3-targets/postgres/dist/planner-
|
|
20
|
+
//#region ../../../3-targets/3-targets/postgres/dist/planner-Ccn9yxL7.mjs
|
|
20
21
|
/** The constraint of `nextNodes` the diff pairs with `node` and finds unchanged. */
|
|
21
22
|
function unchangedIn(node, nextNodes) {
|
|
22
23
|
return nextNodes.find((next) => next.id === node.id && next.isEqualTo(node));
|
|
@@ -141,16 +142,84 @@ function postgresCallSubjects(calls, locator) {
|
|
|
141
142
|
return calls.map((call) => {
|
|
142
143
|
const lossTarget = known.get(call);
|
|
143
144
|
const unknownName = unknownNames.get(call);
|
|
145
|
+
const loss = call instanceof AlterColumnTypeCall ? "typeChange" : "drop";
|
|
144
146
|
return {
|
|
145
147
|
operationCount: operationCountOf(call),
|
|
146
|
-
|
|
148
|
+
label: call.label,
|
|
149
|
+
dataLoss: lossTarget !== void 0 ? [{
|
|
150
|
+
...lossTarget,
|
|
151
|
+
loss
|
|
152
|
+
}] : unknownName !== void 0 ? [{
|
|
147
153
|
storageName: unknownName,
|
|
148
|
-
table: void 0
|
|
154
|
+
table: void 0,
|
|
155
|
+
loss
|
|
149
156
|
}] : [],
|
|
150
|
-
accessWidening: accessWideningOf(locator, call, replaced)
|
|
157
|
+
accessWidening: accessWideningOf(locator, call, replaced),
|
|
158
|
+
temporaryValues: call instanceof AddColumnWithTemporaryDefaultCall ? [{
|
|
159
|
+
table: call.tableName,
|
|
160
|
+
column: call.columnName,
|
|
161
|
+
value: call.temporaryDefault
|
|
162
|
+
}] : []
|
|
151
163
|
};
|
|
152
164
|
});
|
|
153
165
|
}
|
|
166
|
+
function tableIn(tree, ddlSchemaName, tableName) {
|
|
167
|
+
return Object.values(tree.namespaces).find((node) => node.schemaName === ddlSchemaName)?.tables[tableName];
|
|
168
|
+
}
|
|
169
|
+
function escapedForPattern(text) {
|
|
170
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Whether a check's predicate names the column, quoted or bare. The predicate is opaque SQL, so this
|
|
174
|
+
* reads its text, and may name a check that does not depend on the column: dropping and adding
|
|
175
|
+
* such a check again changes nothing.
|
|
176
|
+
*/
|
|
177
|
+
function mentionsColumn(check, column) {
|
|
178
|
+
const quoted = escapedForPattern(quoteIdentifier(column));
|
|
179
|
+
const bare = escapedForPattern(column);
|
|
180
|
+
return new RegExp(`${quoted}|(?<![\\w$"])${bare}(?![\\w$"])`, "i").test(check.expression);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Puts a drop of each check that names a column a type change alters before the first such type
|
|
184
|
+
* change, and the check back after the last. Postgres stores a check bound to the column's old type,
|
|
185
|
+
* such as `array_position(tags, NULL::integer)`, and re-checks it while it alters the type, so a
|
|
186
|
+
* check left in place can fail the alter; a check that names two retyped columns can only be added
|
|
187
|
+
* back once both have their new types. Only checks the plan keeps unchanged are moved: one the plan
|
|
188
|
+
* drops or adds is already planned around the alter. The check is added back as the destination
|
|
189
|
+
* contract writes it.
|
|
190
|
+
*/
|
|
191
|
+
function withChecksAroundTypeChanges(input) {
|
|
192
|
+
const moved = /* @__PURE__ */ new Map();
|
|
193
|
+
input.calls.forEach((call, index) => {
|
|
194
|
+
if (!(call instanceof AlterColumnTypeCall)) return;
|
|
195
|
+
const ddlSchemaName = input.ddlSchemaOf(call.schemaName);
|
|
196
|
+
const kept = tableIn(input.actual, ddlSchemaName, call.tableName)?.checks ?? [];
|
|
197
|
+
for (const check of tableIn(input.expected, ddlSchemaName, call.tableName)?.checks ?? []) {
|
|
198
|
+
if (!mentionsColumn(check, call.columnName)) continue;
|
|
199
|
+
if (!kept.some(({ name }) => name === check.name)) continue;
|
|
200
|
+
const key = JSON.stringify([
|
|
201
|
+
ddlSchemaName,
|
|
202
|
+
call.tableName,
|
|
203
|
+
check.name
|
|
204
|
+
]);
|
|
205
|
+
const entry = moved.get(key);
|
|
206
|
+
if (entry === void 0) moved.set(key, {
|
|
207
|
+
schemaName: call.schemaName,
|
|
208
|
+
tableName: call.tableName,
|
|
209
|
+
check,
|
|
210
|
+
first: index,
|
|
211
|
+
last: index
|
|
212
|
+
});
|
|
213
|
+
else entry.last = index;
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
const entries = [...moved.values()];
|
|
217
|
+
return input.calls.flatMap((call, index) => [
|
|
218
|
+
...entries.filter(({ first }) => first === index).map(({ schemaName, tableName, check }) => new DropCheckConstraintCall(schemaName, tableName, check.name)),
|
|
219
|
+
call,
|
|
220
|
+
...entries.filter(({ last }) => last === index).map(({ schemaName, tableName, check }) => new AddCheckConstraintCall(schemaName, tableName, check.name, check.expression))
|
|
221
|
+
]);
|
|
222
|
+
}
|
|
154
223
|
/**
|
|
155
224
|
* Resolves the live-database schema name for a given namespace
|
|
156
225
|
* coordinate. Mirrors `resolveDdlSchemaForNamespace` in
|
|
@@ -283,7 +352,7 @@ var PostgresMigrationPlanner = class {
|
|
|
283
352
|
const statements = this.planStatements(options, options.schema);
|
|
284
353
|
if (!statements.ok) return plannerFailure([statements.failure]);
|
|
285
354
|
const { schema } = statements.value;
|
|
286
|
-
const { issues: rawIssues } = buildPostgresPlanDiff({
|
|
355
|
+
const { issues: rawIssues, expected: expectedSchema } = buildPostgresPlanDiff({
|
|
287
356
|
contract: options.contract,
|
|
288
357
|
actualSchema: schema,
|
|
289
358
|
frameworkComponents: options.frameworkComponents
|
|
@@ -324,6 +393,8 @@ var PostgresMigrationPlanner = class {
|
|
|
324
393
|
defaultNamespaceId: DEFAULT_NAMESPACE_ID
|
|
325
394
|
});
|
|
326
395
|
if (caseChangeConflicts.length > 0) return plannerFailure(caseChangeConflicts);
|
|
396
|
+
const defaultedBackfill = backfillOfDefaultedField(options.statements, options.fromContract, options.contract);
|
|
397
|
+
if (defaultedBackfill !== void 0) return plannerFailure([defaultedBackfill]);
|
|
327
398
|
const result = planIssues({
|
|
328
399
|
issues: issuePartition.plannable,
|
|
329
400
|
toContract: options.contract,
|
|
@@ -335,6 +406,7 @@ var PostgresMigrationPlanner = class {
|
|
|
335
406
|
...ifDefined("schema", relationalSchema),
|
|
336
407
|
policy: options.policy,
|
|
337
408
|
frameworkComponents: options.frameworkComponents,
|
|
409
|
+
statementColumns: fieldStatementColumns(options.statements, options.contract),
|
|
338
410
|
strategies: postgresPlannerStrategies
|
|
339
411
|
});
|
|
340
412
|
const schemaDiff = this.planPostgresSchemaDiff(options, policyDiffIssues);
|
|
@@ -356,7 +428,12 @@ var PostgresMigrationPlanner = class {
|
|
|
356
428
|
columnRenames: statements.value.columnRenames
|
|
357
429
|
});
|
|
358
430
|
const fieldEventPartition = partitionPostgresCallsByControlPolicy(blindCast(fieldEventCalls.map(({ call }) => call)), options.contract);
|
|
359
|
-
const ordered = movePolicyDropsBeforeBlockedDdl(
|
|
431
|
+
const ordered = movePolicyDropsBeforeBlockedDdl(withChecksAroundTypeChanges({
|
|
432
|
+
calls: result.value.calls,
|
|
433
|
+
expected: expectedSchema,
|
|
434
|
+
actual: schema,
|
|
435
|
+
ddlSchemaOf: (name) => name === UNBOUND_NAMESPACE_ID ? resolveDdlSchemaForNamespaceStorage(options.contract.storage, UNBOUND_NAMESPACE_ID) : name
|
|
436
|
+
}), schemaDiffPartition.kept);
|
|
360
437
|
const calls = [
|
|
361
438
|
...statements.value.calls,
|
|
362
439
|
...ordered.structural,
|
|
@@ -383,7 +460,7 @@ var PostgresMigrationPlanner = class {
|
|
|
383
460
|
from: options.origin?.storageHash ?? null,
|
|
384
461
|
to: options.contract.storage.storageHash
|
|
385
462
|
}, options.spaceId, options.snapshotsImportPath, this.#lowerer),
|
|
386
|
-
appliedStatements: statements.value.appliedStatements,
|
|
463
|
+
appliedStatements: appliedStatementsInOrder(options.statements, statements.value.appliedStatements),
|
|
387
464
|
...subjectsOfCalls(postgresCallSubjects(calls, {
|
|
388
465
|
contract: options.fromContract ?? options.contract,
|
|
389
466
|
fieldEvents: new Map(fieldEventCalls.map((fieldEvent) => [fieldEvent.call, fieldEvent]))
|
|
@@ -531,7 +608,7 @@ var PostgresMigrationPlanner = class {
|
|
|
531
608
|
planStatements(options, schema) {
|
|
532
609
|
const working = createWorkingSchema(schema);
|
|
533
610
|
const planned = planStatements({
|
|
534
|
-
statements: options.statements,
|
|
611
|
+
statements: options.statements.filter(isRenameStatement),
|
|
535
612
|
fromContract: options.fromContract,
|
|
536
613
|
contract: options.contract,
|
|
537
614
|
policy: options.policy,
|
|
@@ -725,4 +802,4 @@ function policyNodeToContractPolicy(node) {
|
|
|
725
802
|
//#endregion
|
|
726
803
|
export { createPostgresMigrationPlanner as t };
|
|
727
804
|
|
|
728
|
-
//# sourceMappingURL=planner-
|
|
805
|
+
//# sourceMappingURL=planner-Ccn9yxL7-B6Pgoz6c.mjs.map
|