@prisma-next/target-postgres 0.12.0-dev.4 → 0.12.0-dev.40

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.
Files changed (158) hide show
  1. package/dist/{codec-ids-DliyCWPY.d.mts → codec-ids-Cx7C07Y_.d.mts} +3 -2
  2. package/dist/codec-ids-Cx7C07Y_.d.mts.map +1 -0
  3. package/dist/{codec-ids-C5qzBqus.mjs → codec-ids-DTqscwN9.mjs} +3 -2
  4. package/dist/codec-ids-DTqscwN9.mjs.map +1 -0
  5. package/dist/codec-ids.d.mts +2 -2
  6. package/dist/codec-ids.mjs +2 -2
  7. package/dist/{codec-types-BF1DXTPs.d.mts → codec-types-BoxMGJk-.d.mts} +2 -2
  8. package/dist/{codec-types-BF1DXTPs.d.mts.map → codec-types-BoxMGJk-.d.mts.map} +1 -1
  9. package/dist/codec-types.d.mts +1 -1
  10. package/dist/{codecs-DuP3d9Au.d.mts → codecs-DCSyTOCb.d.mts} +2 -2
  11. package/dist/codecs-DCSyTOCb.d.mts.map +1 -0
  12. package/dist/codecs.d.mts +1 -1
  13. package/dist/codecs.mjs +37 -2
  14. package/dist/codecs.mjs.map +1 -1
  15. package/dist/column-type-compatibility-Dzxz_CkP.mjs +11 -0
  16. package/dist/column-type-compatibility-Dzxz_CkP.mjs.map +1 -0
  17. package/dist/column-type-compatibility.d.mts +5 -0
  18. package/dist/column-type-compatibility.d.mts.map +1 -0
  19. package/dist/column-type-compatibility.mjs +2 -0
  20. package/dist/contract-free.d.mts +75 -0
  21. package/dist/contract-free.d.mts.map +1 -0
  22. package/dist/contract-free.mjs +139 -0
  23. package/dist/contract-free.mjs.map +1 -0
  24. package/dist/control.d.mts +1 -1
  25. package/dist/control.mjs +64 -36
  26. package/dist/control.mjs.map +1 -1
  27. package/dist/{data-transform-CAPmAdxS.d.mts → data-transform-5gLOgP68.d.mts} +2 -2
  28. package/dist/{data-transform-CAPmAdxS.d.mts.map → data-transform-5gLOgP68.d.mts.map} +1 -1
  29. package/dist/{data-transform-CRkv2T_U.mjs → data-transform-DIYwbe4S.mjs} +1 -1
  30. package/dist/{data-transform-CRkv2T_U.mjs.map → data-transform-DIYwbe4S.mjs.map} +1 -1
  31. package/dist/data-transform.d.mts +1 -1
  32. package/dist/data-transform.mjs +1 -1
  33. package/dist/ddl.d.mts +2 -0
  34. package/dist/ddl.mjs +2 -0
  35. package/dist/{default-normalizer-DaAhmzBV.mjs → default-normalizer-DFHtpCPH.mjs} +1 -1
  36. package/dist/{default-normalizer-DaAhmzBV.mjs.map → default-normalizer-DFHtpCPH.mjs.map} +1 -1
  37. package/dist/default-normalizer.mjs +1 -1
  38. package/dist/{descriptor-meta-Uu8QaClr.mjs → descriptor-meta-BqATo5Dz.mjs} +3 -2
  39. package/dist/descriptor-meta-BqATo5Dz.mjs.map +1 -0
  40. package/dist/{descriptor-meta-runtime-DMRX39kp.mjs → descriptor-meta-runtime-BBL7VdnR.mjs} +2 -2
  41. package/dist/{descriptor-meta-runtime-DMRX39kp.mjs.map → descriptor-meta-runtime-BBL7VdnR.mjs.map} +1 -1
  42. package/dist/{enum-planning-DRA9LaMU.mjs → enum-planning-Nt9TYPHe.mjs} +0 -0
  43. package/dist/{enum-planning-DRA9LaMU.mjs.map → enum-planning-Nt9TYPHe.mjs.map} +1 -1
  44. package/dist/enum-planning.d.mts +1 -1
  45. package/dist/enum-planning.mjs +1 -1
  46. package/dist/{errors-BbnITmAD.mjs → errors-De185dnO.mjs} +1 -1
  47. package/dist/{errors-BbnITmAD.mjs.map → errors-De185dnO.mjs.map} +1 -1
  48. package/dist/errors.mjs +1 -1
  49. package/dist/{issue-planner-BtaL6OfW.mjs → issue-planner-SUBi9fH8.mjs} +10 -10
  50. package/dist/{issue-planner-BtaL6OfW.mjs.map → issue-planner-SUBi9fH8.mjs.map} +1 -1
  51. package/dist/issue-planner.d.mts +1 -1
  52. package/dist/issue-planner.mjs +1 -1
  53. package/dist/migration.d.mts +3 -3
  54. package/dist/migration.mjs +3 -3
  55. package/dist/{native-type-normalizer-BNEQ9VDs.mjs → native-type-normalizer-BUUe8USD.mjs} +1 -1
  56. package/dist/{native-type-normalizer-BNEQ9VDs.mjs.map → native-type-normalizer-BUUe8USD.mjs.map} +1 -1
  57. package/dist/native-type-normalizer.mjs +1 -1
  58. package/dist/nodes-DCC8-DhV.mjs +42 -0
  59. package/dist/nodes-DCC8-DhV.mjs.map +1 -0
  60. package/dist/nodes-DflxwrE8.d.mts +38 -0
  61. package/dist/nodes-DflxwrE8.d.mts.map +1 -0
  62. package/dist/{op-factory-call-CDlImOF_.d.mts → op-factory-call-B-HEOf41.d.mts} +3 -3
  63. package/dist/{op-factory-call-CDlImOF_.d.mts.map → op-factory-call-B-HEOf41.d.mts.map} +1 -1
  64. package/dist/{op-factory-call-ewOd5q6L.mjs → op-factory-call-D8XePTfV.mjs} +2 -2
  65. package/dist/{op-factory-call-ewOd5q6L.mjs.map → op-factory-call-D8XePTfV.mjs.map} +1 -1
  66. package/dist/op-factory-call.d.mts +1 -1
  67. package/dist/op-factory-call.mjs +1 -1
  68. package/dist/pack.d.mts +3 -2
  69. package/dist/pack.d.mts.map +1 -1
  70. package/dist/pack.mjs +1 -1
  71. package/dist/planner-BruD4_LM.mjs +342 -0
  72. package/dist/planner-BruD4_LM.mjs.map +1 -0
  73. package/dist/{planner-ddl-builders-BNMfSE9r.mjs → planner-ddl-builders-BcRMeGgx.mjs} +3 -3
  74. package/dist/{planner-ddl-builders-BNMfSE9r.mjs.map → planner-ddl-builders-BcRMeGgx.mjs.map} +1 -1
  75. package/dist/planner-ddl-builders.d.mts +1 -1
  76. package/dist/planner-ddl-builders.mjs +1 -1
  77. package/dist/{planner-identity-values-nhVj0hp-.mjs → planner-identity-values-DmwlJe_z.mjs} +1 -1
  78. package/dist/{planner-identity-values-nhVj0hp-.mjs.map → planner-identity-values-DmwlJe_z.mjs.map} +1 -1
  79. package/dist/planner-identity-values.mjs +1 -1
  80. package/dist/{planner-produced-postgres-migration-D02NOhVQ.d.mts → planner-produced-postgres-migration-Co71_VbU.d.mts} +3 -3
  81. package/dist/{planner-produced-postgres-migration-D02NOhVQ.d.mts.map → planner-produced-postgres-migration-Co71_VbU.d.mts.map} +1 -1
  82. package/dist/{planner-produced-postgres-migration-D_nsXbhl.mjs → planner-produced-postgres-migration-D6KXC2DH.mjs} +4 -4
  83. package/dist/{planner-produced-postgres-migration-D_nsXbhl.mjs.map → planner-produced-postgres-migration-D6KXC2DH.mjs.map} +1 -1
  84. package/dist/planner-produced-postgres-migration.d.mts +1 -1
  85. package/dist/planner-produced-postgres-migration.mjs +1 -1
  86. package/dist/{planner-schema-lookup-CGxxYfnD.mjs → planner-schema-lookup-Bm4S3LvB.mjs} +1 -1
  87. package/dist/{planner-schema-lookup-CGxxYfnD.mjs.map → planner-schema-lookup-Bm4S3LvB.mjs.map} +1 -1
  88. package/dist/planner-schema-lookup.mjs +1 -1
  89. package/dist/{planner-sql-checks-CfEiTXoQ.mjs → planner-sql-checks-lxWZQCFz.mjs} +3 -3
  90. package/dist/{planner-sql-checks-CfEiTXoQ.mjs.map → planner-sql-checks-lxWZQCFz.mjs.map} +1 -1
  91. package/dist/planner-sql-checks.mjs +1 -1
  92. package/dist/{planner-target-details-a_wuOiYf.d.mts → planner-target-details-Dv5N6x6k.d.mts} +1 -1
  93. package/dist/{planner-target-details-a_wuOiYf.d.mts.map → planner-target-details-Dv5N6x6k.d.mts.map} +1 -1
  94. package/dist/planner-target-details.d.mts +1 -1
  95. package/dist/planner.d.mts +3 -2
  96. package/dist/planner.d.mts.map +1 -1
  97. package/dist/planner.mjs +1 -1
  98. package/dist/{postgres-contract-serializer-BnOboPWs.mjs → postgres-contract-serializer-OfORJ-GY.mjs} +3 -3
  99. package/dist/{postgres-contract-serializer-BnOboPWs.mjs.map → postgres-contract-serializer-OfORJ-GY.mjs.map} +1 -1
  100. package/dist/{postgres-enum-type-CSzsvXrO.d.mts → postgres-enum-type-CWwVGBNK.d.mts} +1 -1
  101. package/dist/{postgres-enum-type-CSzsvXrO.d.mts.map → postgres-enum-type-CWwVGBNK.d.mts.map} +1 -1
  102. package/dist/{postgres-enum-type-BMgyxNyy.mjs → postgres-enum-type-CaGZ2mfI.mjs} +1 -1
  103. package/dist/{postgres-enum-type-BMgyxNyy.mjs.map → postgres-enum-type-CaGZ2mfI.mjs.map} +1 -1
  104. package/dist/{postgres-migration-DRY8V-bQ.d.mts → postgres-migration-BcKS2Lqq.d.mts} +3 -3
  105. package/dist/{postgres-migration-DRY8V-bQ.d.mts.map → postgres-migration-BcKS2Lqq.d.mts.map} +1 -1
  106. package/dist/{postgres-migration-BatbEvU6.mjs → postgres-migration-BnDg_Nj0.mjs} +3 -3
  107. package/dist/{postgres-migration-BatbEvU6.mjs.map → postgres-migration-BnDg_Nj0.mjs.map} +1 -1
  108. package/dist/{postgres-schema-BxAuNFX0.mjs → postgres-schema-Dky_Jff8.mjs} +3 -3
  109. package/dist/{postgres-schema-BxAuNFX0.mjs.map → postgres-schema-Dky_Jff8.mjs.map} +1 -1
  110. package/dist/{render-ops-XhICjX_P.mjs → render-ops-BpU-Qv06.mjs} +1 -1
  111. package/dist/{render-ops-XhICjX_P.mjs.map → render-ops-BpU-Qv06.mjs.map} +1 -1
  112. package/dist/render-ops.d.mts +1 -1
  113. package/dist/render-ops.mjs +1 -1
  114. package/dist/{render-typescript-K125n-RZ.mjs → render-typescript-D9O7aOS_.mjs} +1 -1
  115. package/dist/{render-typescript-K125n-RZ.mjs.map → render-typescript-D9O7aOS_.mjs.map} +1 -1
  116. package/dist/render-typescript.mjs +1 -1
  117. package/dist/runtime.mjs +2 -2
  118. package/dist/{shared-Do_a5ymU.d.mts → shared-CMqM-2BA.d.mts} +2 -2
  119. package/dist/{shared-Do_a5ymU.d.mts.map → shared-CMqM-2BA.d.mts.map} +1 -1
  120. package/dist/{sql-utils-CggjWNij.mjs → sql-utils-DR_F9aHR.mjs} +1 -1
  121. package/dist/{sql-utils-CggjWNij.mjs.map → sql-utils-DR_F9aHR.mjs.map} +1 -1
  122. package/dist/sql-utils.mjs +1 -1
  123. package/dist/{tables-DoA39Yqo.mjs → tables-Cuy4VIgu.mjs} +3 -3
  124. package/dist/{tables-DoA39Yqo.mjs.map → tables-Cuy4VIgu.mjs.map} +1 -1
  125. package/dist/{types-O40IcFV9.d.mts → types-kggVJs6C.d.mts} +1 -1
  126. package/dist/types-kggVJs6C.d.mts.map +1 -0
  127. package/dist/types.d.mts +2 -2
  128. package/dist/types.mjs +2 -2
  129. package/package.json +20 -18
  130. package/src/contract-free/columns.ts +49 -0
  131. package/src/contract-free/control-bootstrap.ts +55 -0
  132. package/src/contract-free/ddl.ts +32 -0
  133. package/src/core/ast/table-source.ts +23 -0
  134. package/src/core/codec-ids.ts +1 -0
  135. package/src/core/codecs.ts +44 -0
  136. package/src/core/column-type-compatibility.ts +13 -0
  137. package/src/core/ddl/nodes.ts +59 -0
  138. package/src/core/descriptor-meta.ts +1 -0
  139. package/src/core/migrations/control-policy.ts +235 -0
  140. package/src/core/migrations/planner.ts +57 -6
  141. package/src/core/migrations/runner.ts +78 -45
  142. package/src/exports/column-type-compatibility.ts +1 -0
  143. package/src/exports/contract-free.ts +7 -0
  144. package/src/exports/ddl.ts +7 -0
  145. package/dist/codec-ids-C5qzBqus.mjs.map +0 -1
  146. package/dist/codec-ids-DliyCWPY.d.mts.map +0 -1
  147. package/dist/codecs-DuP3d9Au.d.mts.map +0 -1
  148. package/dist/descriptor-meta-Uu8QaClr.mjs.map +0 -1
  149. package/dist/planner-Bjz5pnLa.mjs +0 -177
  150. package/dist/planner-Bjz5pnLa.mjs.map +0 -1
  151. package/dist/statement-builders-DVI5IVAa.mjs +0 -131
  152. package/dist/statement-builders-DVI5IVAa.mjs.map +0 -1
  153. package/dist/statement-builders.d.mts +0 -51
  154. package/dist/statement-builders.d.mts.map +0 -1
  155. package/dist/statement-builders.mjs +0 -2
  156. package/dist/types-O40IcFV9.d.mts.map +0 -1
  157. package/src/core/migrations/statement-builders.ts +0 -183
  158. package/src/exports/statement-builders.ts +0 -8
@@ -0,0 +1,235 @@
1
+ import type { Contract } from '@prisma-next/contract/types';
2
+ import type { ControlPolicySubject } from '@prisma-next/family-sql/control';
3
+ import type { SchemaIssue } from '@prisma-next/framework-components/control';
4
+ import { UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';
5
+ import {
6
+ isPostgresEnumStorageEntry,
7
+ type SqlStorage,
8
+ storageTableAt,
9
+ } from '@prisma-next/sql-contract/types';
10
+ import { ifDefined } from '@prisma-next/utils/defined';
11
+ import { isPostgresSchema } from '../postgres-schema';
12
+ import type { PostgresOpFactoryCall } from './op-factory-call';
13
+
14
+ /**
15
+ * Factory calls that create a whole, previously-absent top-level storage
16
+ * object. Used to decide whether `tolerated` permits a call (it only allows
17
+ * creating absent objects, never modifying existing ones).
18
+ *
19
+ * Deliberately an explicit, closed set rather than a `factoryName`
20
+ * create/alter/drop classification: it answers exactly one yes/no question
21
+ * and is fail-closed. Any call not listed here — including future or
22
+ * extension-contributed factories — is treated as NOT object-creation, so it
23
+ * is suppressed under `tolerated` rather than permissively emitted.
24
+ */
25
+ const OBJECT_CREATION_FACTORIES: ReadonlySet<string> = new Set<string>([
26
+ 'createTable',
27
+ 'createEnumType',
28
+ 'createSchema',
29
+ ]);
30
+
31
+ function createsNewTopLevelObject(call: PostgresOpFactoryCall): boolean {
32
+ return OBJECT_CREATION_FACTORIES.has(call.factoryName);
33
+ }
34
+
35
+ function ddlSchemaNameForNamespace(contract: Contract<SqlStorage>, namespaceId: string): string {
36
+ const namespace = contract.storage.namespaces[namespaceId];
37
+ return isPostgresSchema(namespace) ? namespace.ddlSchemaName(contract.storage) : namespaceId;
38
+ }
39
+
40
+ function resolveNamespaceIdForTable(
41
+ contract: Contract<SqlStorage>,
42
+ tableName: string,
43
+ ddlSchemaName: string | undefined,
44
+ ): string {
45
+ for (const namespaceId of Object.keys(contract.storage.namespaces)) {
46
+ const table = storageTableAt(contract.storage, namespaceId, tableName);
47
+ if (!table) continue;
48
+ if (
49
+ ddlSchemaName === undefined ||
50
+ ddlSchemaNameForNamespace(contract, namespaceId) === ddlSchemaName
51
+ ) {
52
+ return namespaceId;
53
+ }
54
+ }
55
+ return UNBOUND_NAMESPACE_ID;
56
+ }
57
+
58
+ function resolveNamespaceIdForDdlSchema(
59
+ contract: Contract<SqlStorage>,
60
+ ddlSchemaName: string,
61
+ ): string {
62
+ for (const namespaceId of Object.keys(contract.storage.namespaces)) {
63
+ const ns = contract.storage.namespaces[namespaceId];
64
+ if (isPostgresSchema(ns) && ns.ddlSchemaName(contract.storage) === ddlSchemaName) {
65
+ return namespaceId;
66
+ }
67
+ if (namespaceId === ddlSchemaName) {
68
+ return namespaceId;
69
+ }
70
+ }
71
+ return UNBOUND_NAMESPACE_ID;
72
+ }
73
+
74
+ interface PostgresCallFields {
75
+ readonly schemaName?: string;
76
+ readonly tableName?: string;
77
+ readonly columnName?: string;
78
+ readonly typeName?: string;
79
+ }
80
+
81
+ function postgresCallFields(call: PostgresOpFactoryCall): PostgresCallFields {
82
+ return {
83
+ ...ifDefined('schemaName', 'schemaName' in call ? call.schemaName : undefined),
84
+ ...ifDefined('tableName', 'tableName' in call ? call.tableName : undefined),
85
+ ...ifDefined('columnName', 'columnName' in call ? call.columnName : undefined),
86
+ ...ifDefined('typeName', 'typeName' in call ? call.typeName : undefined),
87
+ };
88
+ }
89
+
90
+ export function formatPostgresControlPolicySubjectLabel(
91
+ factoryName: string,
92
+ subject: ControlPolicySubject | undefined,
93
+ contract: Contract<SqlStorage>,
94
+ ): string {
95
+ if (subject?.table) {
96
+ const ddlSchema = ddlSchemaNameForNamespace(contract, subject.namespaceId);
97
+ return `${factoryName}(${ddlSchema}.${subject.table})`;
98
+ }
99
+ if (subject?.typeName) {
100
+ const ddlSchema = ddlSchemaNameForNamespace(contract, subject.namespaceId);
101
+ return `${factoryName}(${ddlSchema}.${subject.typeName})`;
102
+ }
103
+ return factoryName;
104
+ }
105
+
106
+ export function resolvePostgresCallControlPolicySubject(
107
+ call: PostgresOpFactoryCall,
108
+ contract: Contract<SqlStorage>,
109
+ ): ControlPolicySubject | undefined {
110
+ const callFields = postgresCallFields(call);
111
+ const createsNewObject = createsNewTopLevelObject(call);
112
+
113
+ if (call.factoryName === 'createSchema' && callFields.schemaName) {
114
+ return {
115
+ namespaceId: resolveNamespaceIdForDdlSchema(contract, callFields.schemaName),
116
+ createsNewObject,
117
+ };
118
+ }
119
+
120
+ if (callFields.typeName && call.factoryName !== 'addColumn') {
121
+ const namespaceId = callFields.schemaName
122
+ ? resolveNamespaceIdForDdlSchema(contract, callFields.schemaName)
123
+ : UNBOUND_NAMESPACE_ID;
124
+ const ns = contract.storage.namespaces[namespaceId];
125
+ const rawEnum =
126
+ ns && 'enum' in ns && ns.enum != null ? ns.enum[callFields.typeName] : undefined;
127
+ const controlPolicy = isPostgresEnumStorageEntry(rawEnum) ? rawEnum.control : undefined;
128
+ return {
129
+ namespaceId,
130
+ ...ifDefined('explicitNodeControlPolicy', controlPolicy),
131
+ typeName: callFields.typeName,
132
+ createsNewObject,
133
+ };
134
+ }
135
+
136
+ if (callFields.tableName) {
137
+ const namespaceId = resolveNamespaceIdForTable(
138
+ contract,
139
+ callFields.tableName,
140
+ callFields.schemaName,
141
+ );
142
+ const table = storageTableAt(contract.storage, namespaceId, callFields.tableName);
143
+ const tableControlPolicy = table?.control;
144
+ return {
145
+ namespaceId,
146
+ ...ifDefined('explicitNodeControlPolicy', tableControlPolicy),
147
+ table: callFields.tableName,
148
+ ...ifDefined('column', callFields.columnName),
149
+ createsNewObject,
150
+ };
151
+ }
152
+
153
+ if (callFields.schemaName) {
154
+ return {
155
+ namespaceId: resolveNamespaceIdForDdlSchema(contract, callFields.schemaName),
156
+ createsNewObject,
157
+ };
158
+ }
159
+
160
+ return undefined;
161
+ }
162
+
163
+ /**
164
+ * Issue kinds that describe the absence of a whole, top-level Postgres
165
+ * object — the same kinds `createsNewTopLevelObject` recognises for calls.
166
+ * Used by {@link resolvePostgresIssueCreationFactoryName} to decide whether
167
+ * a `tolerated` subject permits the issue to flow into the planner
168
+ * (create-if-absent) and to seed the suppressed-subject warning's
169
+ * `factoryName` when the planner is skipped.
170
+ */
171
+ const POSTGRES_ISSUE_CREATION_FACTORY: Readonly<Record<string, string>> = Object.freeze({
172
+ missing_schema: 'createSchema',
173
+ missing_table: 'createTable',
174
+ type_missing: 'createEnumType',
175
+ });
176
+
177
+ export function resolvePostgresIssueCreationFactoryName(issue: SchemaIssue): string | undefined {
178
+ return POSTGRES_ISSUE_CREATION_FACTORY[issue.kind];
179
+ }
180
+
181
+ /**
182
+ * Resolve the control-policy subject coordinate for a single
183
+ * {@link SchemaIssue}. Mirrors the resolution `resolvePostgresCallControlPolicySubject`
184
+ * performs for a generated DDL call, but works *off the issue* — so the
185
+ * planner can partition issues by effective policy before the diff engine
186
+ * runs. `createsNewObject` is derived from the issue's kind: schema/table/
187
+ * type-missing issues describe a brand-new top-level object; everything else
188
+ * touches an existing object.
189
+ *
190
+ * An `extra_table` issue carries no contract namespace coordinate (the table
191
+ * isn't in any contract namespace), so the subject's `namespaceId` falls
192
+ * back to {@link UNBOUND_NAMESPACE_ID}; the call-side resolver does the same
193
+ * for the `DropTableCall` it produces.
194
+ */
195
+ export function resolvePostgresIssueControlPolicySubject(
196
+ issue: SchemaIssue,
197
+ contract: Contract<SqlStorage>,
198
+ ): ControlPolicySubject | undefined {
199
+ const createsNewObject = POSTGRES_ISSUE_CREATION_FACTORY[issue.kind] !== undefined;
200
+
201
+ if (issue.kind === 'missing_schema' && issue.namespaceId) {
202
+ return { namespaceId: issue.namespaceId, createsNewObject };
203
+ }
204
+
205
+ if ('typeName' in issue && issue.typeName) {
206
+ const namespaceId =
207
+ 'namespaceId' in issue && issue.namespaceId ? issue.namespaceId : UNBOUND_NAMESPACE_ID;
208
+ const ns = contract.storage.namespaces[namespaceId];
209
+ const rawEnum = ns && 'enum' in ns && ns.enum != null ? ns.enum[issue.typeName] : undefined;
210
+ const controlPolicy = isPostgresEnumStorageEntry(rawEnum) ? rawEnum.control : undefined;
211
+ return {
212
+ namespaceId,
213
+ ...ifDefined('explicitNodeControlPolicy', controlPolicy),
214
+ typeName: issue.typeName,
215
+ createsNewObject,
216
+ };
217
+ }
218
+
219
+ if ('table' in issue && issue.table) {
220
+ const namespaceId =
221
+ 'namespaceId' in issue && issue.namespaceId
222
+ ? issue.namespaceId
223
+ : resolveNamespaceIdForTable(contract, issue.table, undefined);
224
+ const table = storageTableAt(contract.storage, namespaceId, issue.table);
225
+ return {
226
+ namespaceId,
227
+ ...ifDefined('explicitNodeControlPolicy', table?.control),
228
+ table: issue.table,
229
+ ...ifDefined('column', 'column' in issue ? issue.column : undefined),
230
+ createsNewObject,
231
+ };
232
+ }
233
+
234
+ return undefined;
235
+ }
@@ -2,10 +2,13 @@ import type { Contract } from '@prisma-next/contract/types';
2
2
  import type {
3
3
  MigrationOperationPolicy,
4
4
  SqlMigrationPlannerPlanOptions,
5
+ SqlPlannerConflict,
5
6
  SqlPlannerFailureResult,
6
7
  } from '@prisma-next/family-sql/control';
7
8
  import {
8
9
  extractCodecControlHooks,
10
+ partitionCallsByControlPolicy,
11
+ partitionIssuesByControlPolicy,
9
12
  planFieldEventOperations,
10
13
  plannerFailure,
11
14
  } from '@prisma-next/family-sql/control';
@@ -18,10 +21,19 @@ import type {
18
21
  SchemaIssue,
19
22
  } from '@prisma-next/framework-components/control';
20
23
  import { UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';
24
+ import { blindCast } from '@prisma-next/utils/casts';
25
+ import { postgresColumnsCompatible } from '../column-type-compatibility';
21
26
  import { parsePostgresDefault } from '../default-normalizer';
22
27
  import { normalizeSchemaNativeType } from '../native-type-normalizer';
28
+ import {
29
+ formatPostgresControlPolicySubjectLabel,
30
+ resolvePostgresCallControlPolicySubject,
31
+ resolvePostgresIssueControlPolicySubject,
32
+ resolvePostgresIssueCreationFactoryName,
33
+ } from './control-policy';
23
34
  import { createResolveExistingEnumValues } from './enum-planning';
24
35
  import { planIssues } from './issue-planner';
36
+ import type { PostgresOpFactoryCall } from './op-factory-call';
25
37
  import { TypeScriptRenderablePostgresMigration } from './planner-produced-postgres-migration';
26
38
  import { postgresPlannerStrategies } from './planner-strategies';
27
39
  import { verifyPostgresNamespacePresence } from './verify-postgres-namespaces';
@@ -52,7 +64,11 @@ export function createPostgresMigrationPlanner(): PostgresMigrationPlanner {
52
64
  * uniformly.
53
65
  */
54
66
  export type PostgresPlanResult =
55
- | { readonly kind: 'success'; readonly plan: TypeScriptRenderablePostgresMigration }
67
+ | {
68
+ readonly kind: 'success';
69
+ readonly plan: TypeScriptRenderablePostgresMigration;
70
+ readonly warnings?: readonly SqlPlannerConflict[];
71
+ }
56
72
  | SqlPlannerFailureResult;
57
73
 
58
74
  /**
@@ -131,8 +147,25 @@ export class PostgresMigrationPlanner implements MigrationPlanner<'sql', 'postgr
131
147
  const codecHooks = extractCodecControlHooks(options.frameworkComponents);
132
148
  const storageTypes = options.contract.storage.types ?? {};
133
149
 
134
- const result = planIssues({
150
+ // Input-side control-policy partition. `external` / `observed` subjects
151
+ // — and non-creation issues for `tolerated` subjects — are dropped from
152
+ // the planner's input entirely; the planner never observes them, never
153
+ // diffs them, never generates DDL for them. Suppression warnings are
154
+ // built directly from the suppressed partition (one per subject), so the
155
+ // user-visible message survives even when the planner would have failed
156
+ // to model the subject's live shape.
157
+ const issuePartition = partitionIssuesByControlPolicy({
135
158
  issues: schemaIssues,
159
+ contract: options.contract,
160
+ resolveControlPolicySubject: (issue) =>
161
+ resolvePostgresIssueControlPolicySubject(issue, options.contract),
162
+ resolveCreationFactoryName: resolvePostgresIssueCreationFactoryName,
163
+ formatSubjectLabel: (factoryName, subject) =>
164
+ formatPostgresControlPolicySubjectLabel(factoryName, subject, options.contract),
165
+ });
166
+
167
+ const result = planIssues({
168
+ issues: issuePartition.plannable,
136
169
  toContract: options.contract,
137
170
  // `fromContract` is only supplied by `migration plan`. It is `null` for
138
171
  // `db update` / `db init`, which means data-safety strategies needing
@@ -163,10 +196,26 @@ export class PostgresMigrationPlanner implements MigrationPlanner<'sql', 'postgr
163
196
  newContract: options.contract,
164
197
  codecHooks,
165
198
  });
166
- // Codec-emitted calls already conform to `OpFactoryCall` render +
167
- // toOp + importRequirements ride directly through the same emit path
168
- // as structural ops, no `RawSqlCall` wrap.
169
- const calls = [...result.value.calls, ...fieldEventOps];
199
+ // Codec hook ops are target-agnostic `OpFactoryCall`; Postgres planning
200
+ // lifts them at this integration boundary (see field-event-planner JSDoc).
201
+ const fieldEventPostgresCalls = blindCast<
202
+ readonly PostgresOpFactoryCall[],
203
+ 'Codec hook ops conform to PostgresOpFactoryCall at the app emitter boundary'
204
+ >(fieldEventOps);
205
+ const fieldEventPartition = partitionCallsByControlPolicy({
206
+ calls: fieldEventPostgresCalls,
207
+ contract: options.contract,
208
+ resolveControlPolicySubject: (call) =>
209
+ resolvePostgresCallControlPolicySubject(call, options.contract),
210
+ resolveFactoryName: (call) => call.factoryName,
211
+ formatSubjectLabel: (factoryName, subject) =>
212
+ formatPostgresControlPolicySubjectLabel(factoryName, subject, options.contract),
213
+ });
214
+ const calls = [...result.value.calls, ...fieldEventPartition.kept];
215
+ const warnings: SqlPlannerConflict[] = [
216
+ ...issuePartition.warnings,
217
+ ...fieldEventPartition.warnings,
218
+ ];
170
219
 
171
220
  return Object.freeze({
172
221
  kind: 'success' as const,
@@ -178,6 +227,7 @@ export class PostgresMigrationPlanner implements MigrationPlanner<'sql', 'postgr
178
227
  },
179
228
  options.spaceId,
180
229
  ),
230
+ ...(warnings.length > 0 ? { warnings: Object.freeze(warnings) } : {}),
181
231
  });
182
232
  }
183
233
 
@@ -208,6 +258,7 @@ export class PostgresMigrationPlanner implements MigrationPlanner<'sql', 'postgr
208
258
  frameworkComponents: options.frameworkComponents,
209
259
  normalizeDefault: parsePostgresDefault,
210
260
  normalizeNativeType: normalizeSchemaNativeType,
261
+ columnsCompatible: postgresColumnsCompatible,
211
262
  resolveExistingEnumValues: createResolveExistingEnumValues(options.contract.storage),
212
263
  };
213
264
  const verifyResult = verifySqlSchema(verifyOptions);
@@ -1,4 +1,4 @@
1
- import type { ContractMarkerRecord } from '@prisma-next/contract/types';
1
+ import type { Contract, ContractMarkerRecord } from '@prisma-next/contract/types';
2
2
  import type {
3
3
  MigrationOperationPolicy,
4
4
  SqlControlFamilyInstance,
@@ -19,22 +19,17 @@ import type {
19
19
  } from '@prisma-next/framework-components/control';
20
20
  import { APP_SPACE_ID } from '@prisma-next/framework-components/control';
21
21
  import { UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';
22
+ import type { SqlStorage } from '@prisma-next/sql-contract/types';
22
23
  import { SqlQueryError } from '@prisma-next/sql-errors';
24
+ import type { LoweredStatement } from '@prisma-next/sql-relational-core/ast';
23
25
  import { ifDefined } from '@prisma-next/utils/defined';
24
26
  import type { Result } from '@prisma-next/utils/result';
25
27
  import { notOk, ok, okVoid } from '@prisma-next/utils/result';
28
+ import { postgresColumnsCompatible } from '../column-type-compatibility';
26
29
  import { parsePostgresDefault } from '../default-normalizer';
27
30
  import { normalizeSchemaNativeType } from '../native-type-normalizer';
28
31
  import { createResolveExistingEnumValues } from './enum-planning';
29
32
  import type { PostgresPlanTargetDetails } from './planner-target-details';
30
- import {
31
- buildLedgerInsertStatement,
32
- buildMergeMarkerStatements,
33
- ensureLedgerTableStatement,
34
- ensureMarkerTableStatement,
35
- ensurePrismaContractSchemaStatement,
36
- type SqlStatement,
37
- } from './statement-builders';
38
33
 
39
34
  interface ApplyPlanSuccessValue {
40
35
  readonly operationsExecuted: number;
@@ -107,7 +102,7 @@ class PostgresMigrationRunner implements SqlMigrationRunner<PostgresPlanTargetDe
107
102
  if (!policyCheck.ok) return policyCheck;
108
103
 
109
104
  await this.acquireLock(driver, lockKey);
110
- const ensureResult = await this.ensureControlTables(driver);
105
+ const ensureResult = await this.ensureControlTables(driver, options.destinationContract);
111
106
  if (!ensureResult.ok) return ensureResult;
112
107
  const existingMarker = await this.family.readMarker({ driver, space });
113
108
 
@@ -146,6 +141,7 @@ class PostgresMigrationRunner implements SqlMigrationRunner<PostgresPlanTargetDe
146
141
  frameworkComponents: options.frameworkComponents,
147
142
  normalizeDefault: parsePostgresDefault,
148
143
  normalizeNativeType: normalizeSchemaNativeType,
144
+ columnsCompatible: postgresColumnsCompatible,
149
145
  resolveExistingEnumValues: createResolveExistingEnumValues(
150
146
  options.destinationContract.storage,
151
147
  ),
@@ -165,8 +161,9 @@ class PostgresMigrationRunner implements SqlMigrationRunner<PostgresPlanTargetDe
165
161
  isSelfEdge && applyValue.operationsExecuted === 0 && incomingIsSubsetOfExisting;
166
162
 
167
163
  if (!isSelfEdgeNoOp) {
168
- await this.upsertMarker(driver, options, existingMarker, space);
169
- await this.recordLedgerEntry(driver, options, existingMarker, applyValue.executedOperations);
164
+ const markerResult = await this.upsertMarker(driver, options, existingMarker, space);
165
+ if (!markerResult.ok) return markerResult;
166
+ await this.recordLedgerEntries(driver, options, applyValue.executedOperations);
170
167
  }
171
168
 
172
169
  return runnerSuccess({
@@ -282,18 +279,22 @@ class PostgresMigrationRunner implements SqlMigrationRunner<PostgresPlanTargetDe
282
279
 
283
280
  private async ensureControlTables(
284
281
  driver: SqlMigrationRunnerExecuteOptions<PostgresPlanTargetDetails>['driver'],
282
+ contract: Contract<SqlStorage>,
285
283
  ): Promise<Result<void, SqlMigrationRunnerFailure>> {
286
- await this.executeStatement(driver, ensurePrismaContractSchemaStatement);
287
- // Pre-1.0 zero-range guardrail: detect a pre-cleanup single-row
288
- // marker table (no `space` column) and surface a structured failure
289
- // rather than silently auto-migrating it to the per-space shape.
290
- // See `specs/framework-mechanism.spec.md § 2`.
284
+ const lowererContext = { contract };
285
+ const bootstrapQueries = this.family.bootstrapControlTableQueries();
286
+ const [schemaQuery, ...tableQueries] = bootstrapQueries;
287
+ if (schemaQuery === undefined) {
288
+ throw new Error('Postgres control-table bootstrap must include CREATE SCHEMA');
289
+ }
290
+ await this.executeStatement(driver, this.family.lowerAst(schemaQuery, lowererContext));
291
291
  const legacyDetection = await this.detectLegacyMarkerShape(driver);
292
292
  if (!legacyDetection.ok) {
293
293
  return legacyDetection;
294
294
  }
295
- await this.executeStatement(driver, ensureMarkerTableStatement);
296
- await this.executeStatement(driver, ensureLedgerTableStatement);
295
+ for (const query of tableQueries) {
296
+ await this.executeStatement(driver, this.family.lowerAst(query, lowererContext));
297
+ }
297
298
  return okVoid();
298
299
  }
299
300
 
@@ -594,43 +595,75 @@ class PostgresMigrationRunner implements SqlMigrationRunner<PostgresPlanTargetDe
594
595
  options: SqlMigrationRunnerExecuteOptions<PostgresPlanTargetDetails>,
595
596
  existingMarker: ContractMarkerRecord | null,
596
597
  space: string,
597
- ): Promise<void> {
598
- const incomingInvariants = options.plan.providedInvariants ?? [];
599
- const writeStatements = buildMergeMarkerStatements({
600
- space,
598
+ ): Promise<Result<void, SqlMigrationRunnerFailure>> {
599
+ const destination = {
601
600
  storageHash: options.plan.destination.storageHash,
602
601
  profileHash:
603
602
  options.plan.destination.profileHash ??
604
603
  options.destinationContract.profileHash ??
605
604
  options.plan.destination.storageHash,
606
- contractJson: options.destinationContract,
607
- canonicalVersion: null,
608
- meta: {},
609
- invariants: incomingInvariants,
605
+ invariants: options.plan.providedInvariants ?? [],
606
+ };
607
+ if (!existingMarker) {
608
+ await this.family.initMarker({ driver, space, destination });
609
+ return okVoid();
610
+ }
611
+ const updated = await this.family.updateMarker({
612
+ driver,
613
+ space,
614
+ expectedFrom: existingMarker.storageHash,
615
+ destination,
610
616
  });
611
- const statement = existingMarker ? writeStatements.update : writeStatements.insert;
612
- await this.executeStatement(driver, statement);
617
+ if (!updated) {
618
+ return runnerFailure(
619
+ 'MARKER_CAS_FAILURE',
620
+ 'Marker was modified by another process during migration execution.',
621
+ {
622
+ meta: {
623
+ space,
624
+ expectedStorageHash: existingMarker.storageHash,
625
+ destinationStorageHash: options.plan.destination.storageHash,
626
+ },
627
+ },
628
+ );
629
+ }
630
+ return okVoid();
613
631
  }
614
632
 
615
- private async recordLedgerEntry(
633
+ private async recordLedgerEntries(
616
634
  driver: SqlMigrationRunnerExecuteOptions<PostgresPlanTargetDetails>['driver'],
617
635
  options: SqlMigrationRunnerExecuteOptions<PostgresPlanTargetDetails>,
618
- existingMarker: ContractMarkerRecord | null,
619
636
  executedOperations: readonly SqlMigrationPlanOperation<PostgresPlanTargetDetails>[],
620
637
  ): Promise<void> {
621
- const ledgerStatement = buildLedgerInsertStatement({
622
- originStorageHash: existingMarker?.storageHash ?? null,
623
- originProfileHash: existingMarker?.profileHash ?? null,
624
- destinationStorageHash: options.plan.destination.storageHash,
625
- destinationProfileHash:
626
- options.plan.destination.profileHash ??
627
- options.destinationContract.profileHash ??
628
- options.plan.destination.storageHash,
629
- contractJsonBefore: existingMarker?.contractJson ?? null,
630
- contractJsonAfter: options.destinationContract,
631
- operations: executedOperations,
632
- });
633
- await this.executeStatement(driver, ledgerStatement);
638
+ const plan = options.plan;
639
+ const space = plan.spaceId;
640
+ const edges = options.migrationEdges;
641
+ const totalEdgeOps = edges.reduce((sum, edge) => sum + edge.operationCount, 0);
642
+ if (totalEdgeOps !== plan.operations.length) {
643
+ throw new Error(
644
+ `Ledger write: plan.operations length (${plan.operations.length}) does not match sum of migrationEdges operationCount (${totalEdgeOps})`,
645
+ );
646
+ }
647
+ // The ledger records the operations as executed — idempotency-skipped ops
648
+ // are substituted with skip records (empty `execute`) by `applyPlan`, so the
649
+ // journal reflects what actually ran rather than the raw plan.
650
+ let offset = 0;
651
+ for (const edge of edges) {
652
+ const edgeOps = executedOperations.slice(offset, offset + edge.operationCount);
653
+ offset += edge.operationCount;
654
+ await this.family.writeLedgerEntry({
655
+ driver,
656
+ space,
657
+ entry: {
658
+ edgeId: `${edge.from}->${edge.to}`,
659
+ from: edge.from,
660
+ to: edge.to,
661
+ migrationName: edge.dirName,
662
+ migrationHash: edge.migrationHash,
663
+ operations: edgeOps,
664
+ },
665
+ });
666
+ }
634
667
  }
635
668
 
636
669
  private async acquireLock(
@@ -660,7 +693,7 @@ class PostgresMigrationRunner implements SqlMigrationRunner<PostgresPlanTargetDe
660
693
 
661
694
  private async executeStatement(
662
695
  driver: SqlMigrationRunnerExecuteOptions<PostgresPlanTargetDetails>['driver'],
663
- statement: SqlStatement,
696
+ statement: LoweredStatement,
664
697
  ): Promise<void> {
665
698
  if (statement.params.length > 0) {
666
699
  await driver.query(statement.sql, statement.params);
@@ -0,0 +1 @@
1
+ export { postgresColumnsCompatible } from '../core/column-type-compatibility';
@@ -0,0 +1,7 @@
1
+ export { int4, int8, jsonb, pgTable, text, textArray, timestamptz } from '../contract-free/columns';
2
+ export {
3
+ buildControlTableBootstrapQueries,
4
+ buildSignMarkerBootstrapQueries,
5
+ } from '../contract-free/control-bootstrap';
6
+ export { createSchema, createTable } from '../contract-free/ddl';
7
+ export { PostgresTableSource } from '../core/ast/table-source';
@@ -0,0 +1,7 @@
1
+ export {
2
+ type AnyPostgresDdlNode,
3
+ PostgresCreateSchema,
4
+ PostgresCreateTable,
5
+ PostgresDdlNode,
6
+ type PostgresDdlVisitor,
7
+ } from '../core/ddl/nodes';
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec-ids-C5qzBqus.mjs","names":[],"sources":["../src/core/codec-ids.ts"],"sourcesContent":["export {\n SQL_CHAR_CODEC_ID,\n SQL_FLOAT_CODEC_ID,\n SQL_INT_CODEC_ID,\n SQL_TEXT_CODEC_ID,\n SQL_TIMESTAMP_CODEC_ID,\n SQL_VARCHAR_CODEC_ID,\n} from '@prisma-next/sql-relational-core/ast';\nexport const PG_TEXT_CODEC_ID = 'pg/text@1' as const;\nexport const PG_ENUM_CODEC_ID = 'pg/enum@1' as const;\nexport const PG_CHAR_CODEC_ID = 'pg/char@1' as const;\nexport const PG_VARCHAR_CODEC_ID = 'pg/varchar@1' as const;\nexport const PG_INT_CODEC_ID = 'pg/int@1' as const;\nexport const PG_INT2_CODEC_ID = 'pg/int2@1' as const;\nexport const PG_INT4_CODEC_ID = 'pg/int4@1' as const;\nexport const PG_INT8_CODEC_ID = 'pg/int8@1' as const;\nexport const PG_FLOAT_CODEC_ID = 'pg/float@1' as const;\nexport const PG_FLOAT4_CODEC_ID = 'pg/float4@1' as const;\nexport const PG_FLOAT8_CODEC_ID = 'pg/float8@1' as const;\nexport const PG_NUMERIC_CODEC_ID = 'pg/numeric@1' as const;\nexport const PG_BOOL_CODEC_ID = 'pg/bool@1' as const;\nexport const PG_BIT_CODEC_ID = 'pg/bit@1' as const;\nexport const PG_VARBIT_CODEC_ID = 'pg/varbit@1' as const;\nexport const PG_TIMESTAMP_CODEC_ID = 'pg/timestamp@1' as const;\nexport const PG_TIMESTAMPTZ_CODEC_ID = 'pg/timestamptz@1' as const;\nexport const PG_TIME_CODEC_ID = 'pg/time@1' as const;\nexport const PG_TIMETZ_CODEC_ID = 'pg/timetz@1' as const;\nexport const PG_INTERVAL_CODEC_ID = 'pg/interval@1' as const;\nexport const PG_JSON_CODEC_ID = 'pg/json@1' as const;\nexport const PG_JSONB_CODEC_ID = 'pg/jsonb@1' as const;\nexport const PG_BYTEA_CODEC_ID = 'pg/bytea@1' as const;\n"],"mappings":";;AAQA,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,sBAAsB;AACnC,MAAa,kBAAkB;AAC/B,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,mBAAmB;AAChC,MAAa,oBAAoB;AACjC,MAAa,qBAAqB;AAClC,MAAa,qBAAqB;AAClC,MAAa,sBAAsB;AACnC,MAAa,mBAAmB;AAChC,MAAa,kBAAkB;AAC/B,MAAa,qBAAqB;AAClC,MAAa,wBAAwB;AACrC,MAAa,0BAA0B;AACvC,MAAa,mBAAmB;AAChC,MAAa,qBAAqB;AAClC,MAAa,uBAAuB;AACpC,MAAa,mBAAmB;AAChC,MAAa,oBAAoB;AACjC,MAAa,oBAAoB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec-ids-DliyCWPY.d.mts","names":[],"sources":["../src/core/codec-ids.ts"],"mappings":";;;cAQa,gBAAA;AAAA,cACA,gBAAA;AAAA,cACA,gBAAA;AAAA,cACA,mBAAA;AAAA,cACA,eAAA;AAAA,cACA,gBAAA;AAAA,cACA,gBAAA;AAAA,cACA,gBAAA;AAAA,cACA,iBAAA;AAAA,cACA,kBAAA;AAAA,cACA,kBAAA;AAAA,cACA,mBAAA;AAAA,cACA,gBAAA;AAAA,cACA,eAAA;AAAA,cACA,kBAAA;AAAA,cACA,qBAAA;AAAA,cACA,uBAAA;AAAA,cACA,gBAAA;AAAA,cACA,kBAAA;AAAA,cACA,oBAAA;AAAA,cACA,gBAAA;AAAA,cACA,iBAAA;AAAA,cACA,iBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codecs-DuP3d9Au.d.mts","names":[],"sources":["../src/core/codecs.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptor-meta-Uu8QaClr.mjs","names":[],"sources":["../src/core/descriptor-meta.ts"],"sourcesContent":["import type { CodecTypes } from '../exports/codec-types';\nimport {\n postgresAuthoringEntityTypes,\n postgresAuthoringFieldPresets,\n postgresAuthoringTypes,\n} from './authoring';\nimport { postgresTargetDescriptorMetaRuntime } from './descriptor-meta-runtime';\n\nconst postgresTargetDescriptorMetaBase = {\n ...postgresTargetDescriptorMetaRuntime,\n authoring: {\n type: postgresAuthoringTypes,\n field: postgresAuthoringFieldPresets,\n entityTypes: postgresAuthoringEntityTypes,\n },\n} as const;\n\nexport const postgresTargetDescriptorMeta: typeof postgresTargetDescriptorMetaBase & {\n readonly __codecTypes?: CodecTypes;\n} = postgresTargetDescriptorMetaBase;\n"],"mappings":";AAiBA,MAAa,+BAET;CAVF,GAAG;CACH,WAAW;EACT,MAAM;EACN,OAAO;EACP,aAAa;CACf;AAKE"}