chkit 0.1.2-beta.7 → 0.2.0-beta.11

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 (291) hide show
  1. package/README.md +69 -56
  2. package/dist/bin/chkit.js +57 -26
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/commands/drift/compare.d.ts +25 -1
  5. package/dist/commands/drift/compare.d.ts.map +1 -1
  6. package/dist/commands/drift/compare.js +147 -45
  7. package/dist/commands/drift/compare.js.map +1 -1
  8. package/dist/commands/drift/payload.d.ts.map +1 -1
  9. package/dist/commands/drift/payload.js +39 -8
  10. package/dist/commands/drift/payload.js.map +1 -1
  11. package/dist/commands/generate/command.js +6 -18
  12. package/dist/commands/generate/command.js.map +1 -1
  13. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  14. package/dist/commands/generate/plan-pipeline.js +35 -36
  15. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  16. package/dist/commands/init.d.ts +2 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +21 -4
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/migrate/abandon.d.ts +38 -0
  21. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  22. package/dist/commands/migrate/abandon.js +75 -0
  23. package/dist/commands/migrate/abandon.js.map +1 -0
  24. package/dist/commands/migrate/apply.d.ts +7 -0
  25. package/dist/commands/migrate/apply.d.ts.map +1 -1
  26. package/dist/commands/migrate/apply.js +45 -6
  27. package/dist/commands/migrate/apply.js.map +1 -1
  28. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  29. package/dist/commands/migrate/async-apply.js +78 -16
  30. package/dist/commands/migrate/async-apply.js.map +1 -1
  31. package/dist/commands/migrate/command.d.ts +44 -1
  32. package/dist/commands/migrate/command.d.ts.map +1 -1
  33. package/dist/commands/migrate/command.js +148 -34
  34. package/dist/commands/migrate/command.js.map +1 -1
  35. package/dist/commands/migrate/empty.d.ts +8 -0
  36. package/dist/commands/migrate/empty.d.ts.map +1 -0
  37. package/dist/commands/migrate/empty.js +17 -0
  38. package/dist/commands/migrate/empty.js.map +1 -0
  39. package/dist/commands/migrate/errors.d.ts +22 -0
  40. package/dist/commands/migrate/errors.d.ts.map +1 -0
  41. package/dist/commands/migrate/errors.js +31 -0
  42. package/dist/commands/migrate/errors.js.map +1 -0
  43. package/dist/commands/migrate/output.d.ts +31 -0
  44. package/dist/commands/migrate/output.d.ts.map +1 -1
  45. package/dist/commands/migrate/output.js +120 -9
  46. package/dist/commands/migrate/output.js.map +1 -1
  47. package/dist/commands/migrate/prompts.d.ts +1 -0
  48. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  49. package/dist/commands/migrate/prompts.js +3 -0
  50. package/dist/commands/migrate/prompts.js.map +1 -1
  51. package/dist/commands/migrate/recovery.d.ts +90 -0
  52. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  53. package/dist/commands/migrate/recovery.js +163 -0
  54. package/dist/commands/migrate/recovery.js.map +1 -0
  55. package/dist/commands/migrate/retry.d.ts +37 -0
  56. package/dist/commands/migrate/retry.d.ts.map +1 -0
  57. package/dist/commands/migrate/retry.js +46 -0
  58. package/dist/commands/migrate/retry.js.map +1 -0
  59. package/dist/commands/plugin.js +3 -1
  60. package/dist/commands/plugin.js.map +1 -1
  61. package/dist/commands/registry.d.ts +2 -0
  62. package/dist/commands/registry.d.ts.map +1 -0
  63. package/dist/commands/registry.js +228 -0
  64. package/dist/commands/registry.js.map +1 -0
  65. package/dist/commands/snapshot/command.d.ts +3 -0
  66. package/dist/commands/snapshot/command.d.ts.map +1 -0
  67. package/dist/commands/snapshot/command.js +32 -0
  68. package/dist/commands/snapshot/command.js.map +1 -0
  69. package/dist/commands/snapshot/output.d.ts +24 -0
  70. package/dist/commands/snapshot/output.d.ts.map +1 -0
  71. package/dist/commands/snapshot/output.js +86 -0
  72. package/dist/commands/snapshot/output.js.map +1 -0
  73. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  74. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  75. package/dist/commands/snapshot/rebuild.js +77 -0
  76. package/dist/commands/snapshot/rebuild.js.map +1 -0
  77. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  78. package/dist/internal-plugins/core/plugin.js +2 -0
  79. package/dist/internal-plugins/core/plugin.js.map +1 -1
  80. package/dist/registry/build.d.ts +17 -0
  81. package/dist/registry/build.d.ts.map +1 -0
  82. package/dist/registry/build.js +94 -0
  83. package/dist/registry/build.js.map +1 -0
  84. package/dist/registry/dependencies.d.ts +19 -0
  85. package/dist/registry/dependencies.d.ts.map +1 -0
  86. package/dist/registry/dependencies.js +105 -0
  87. package/dist/registry/dependencies.js.map +1 -0
  88. package/dist/registry/files.d.ts +4 -0
  89. package/dist/registry/files.d.ts.map +1 -0
  90. package/dist/registry/files.js +33 -0
  91. package/dist/registry/files.js.map +1 -0
  92. package/dist/registry/install.d.ts +55 -0
  93. package/dist/registry/install.d.ts.map +1 -0
  94. package/dist/registry/install.js +175 -0
  95. package/dist/registry/install.js.map +1 -0
  96. package/dist/registry/model.d.ts +172 -0
  97. package/dist/registry/model.d.ts.map +1 -0
  98. package/dist/registry/model.js +161 -0
  99. package/dist/registry/model.js.map +1 -0
  100. package/dist/registry/project-config.d.ts +18 -0
  101. package/dist/registry/project-config.d.ts.map +1 -0
  102. package/dist/registry/project-config.js +337 -0
  103. package/dist/registry/project-config.js.map +1 -0
  104. package/dist/registry/resolve.d.ts +7 -0
  105. package/dist/registry/resolve.d.ts.map +1 -0
  106. package/dist/registry/resolve.js +129 -0
  107. package/dist/registry/resolve.js.map +1 -0
  108. package/dist/runtime/argv.d.ts +3 -0
  109. package/dist/runtime/argv.d.ts.map +1 -0
  110. package/dist/runtime/argv.js +29 -0
  111. package/dist/runtime/argv.js.map +1 -0
  112. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  113. package/dist/runtime/command-dispatch.js +5 -0
  114. package/dist/runtime/command-dispatch.js.map +1 -1
  115. package/dist/runtime/config-merge.d.ts.map +1 -1
  116. package/dist/runtime/config-merge.js +2 -1
  117. package/dist/runtime/config-merge.js.map +1 -1
  118. package/dist/runtime/global-flags.d.ts +4 -0
  119. package/dist/runtime/global-flags.d.ts.map +1 -1
  120. package/dist/runtime/global-flags.js +1 -0
  121. package/dist/runtime/global-flags.js.map +1 -1
  122. package/dist/runtime/help.d.ts.map +1 -1
  123. package/dist/runtime/help.js +3 -0
  124. package/dist/runtime/help.js.map +1 -1
  125. package/dist/runtime/journal-store.d.ts.map +1 -1
  126. package/dist/runtime/journal-store.js +55 -26
  127. package/dist/runtime/journal-store.js.map +1 -1
  128. package/dist/runtime/json-output.d.ts +1 -1
  129. package/dist/runtime/json-output.d.ts.map +1 -1
  130. package/dist/runtime/json-output.js.map +1 -1
  131. package/dist/runtime/migration-store.d.ts +1 -1
  132. package/dist/runtime/migration-store.d.ts.map +1 -1
  133. package/dist/runtime/migration-store.js +17 -16
  134. package/dist/runtime/migration-store.js.map +1 -1
  135. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  136. package/dist/runtime/plugin-runtime/executor-debug.js +2 -0
  137. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  138. package/dist/runtime/plugin-runtime/loader.js +1 -1
  139. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  140. package/dist/runtime/safety-markers.d.ts.map +1 -1
  141. package/dist/runtime/safety-markers.js +3 -1
  142. package/dist/runtime/safety-markers.js.map +1 -1
  143. package/dist/runtime/schema-loader.d.ts +20 -1
  144. package/dist/runtime/schema-loader.d.ts.map +1 -1
  145. package/dist/runtime/schema-loader.js +26 -0
  146. package/dist/runtime/schema-loader.js.map +1 -1
  147. package/dist/runtime/snapshot-document.d.ts +33 -0
  148. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  149. package/dist/runtime/snapshot-document.js +65 -0
  150. package/dist/runtime/snapshot-document.js.map +1 -0
  151. package/package.json +17 -7
  152. package/dist/bin/clickhouse-resource.d.ts +0 -4
  153. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  154. package/dist/bin/clickhouse-resource.js +0 -11
  155. package/dist/bin/clickhouse-resource.js.map +0 -1
  156. package/dist/bin/command-dispatch.d.ts +0 -13
  157. package/dist/bin/command-dispatch.d.ts.map +0 -1
  158. package/dist/bin/command-dispatch.js +0 -186
  159. package/dist/bin/command-dispatch.js.map +0 -1
  160. package/dist/bin/command-registry.d.ts +0 -34
  161. package/dist/bin/command-registry.d.ts.map +0 -1
  162. package/dist/bin/command-registry.js +0 -87
  163. package/dist/bin/command-registry.js.map +0 -1
  164. package/dist/bin/commands/check.d.ts +0 -3
  165. package/dist/bin/commands/check.d.ts.map +0 -1
  166. package/dist/bin/commands/check.js +0 -181
  167. package/dist/bin/commands/check.js.map +0 -1
  168. package/dist/bin/commands/codegen.d.ts +0 -2
  169. package/dist/bin/commands/codegen.d.ts.map +0 -1
  170. package/dist/bin/commands/codegen.js +0 -25
  171. package/dist/bin/commands/codegen.js.map +0 -1
  172. package/dist/bin/commands/drift.d.ts +0 -27
  173. package/dist/bin/commands/drift.d.ts.map +0 -1
  174. package/dist/bin/commands/drift.js +0 -220
  175. package/dist/bin/commands/drift.js.map +0 -1
  176. package/dist/bin/commands/generate/output.d.ts +0 -8
  177. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  178. package/dist/bin/commands/generate/output.js +0 -58
  179. package/dist/bin/commands/generate/output.js.map +0 -1
  180. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  181. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  182. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  183. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  184. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  185. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  186. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  187. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  188. package/dist/bin/commands/generate.d.ts +0 -3
  189. package/dist/bin/commands/generate.d.ts.map +0 -1
  190. package/dist/bin/commands/generate.js +0 -158
  191. package/dist/bin/commands/generate.js.map +0 -1
  192. package/dist/bin/commands/init.d.ts +0 -2
  193. package/dist/bin/commands/init.d.ts.map +0 -1
  194. package/dist/bin/commands/init.js +0 -12
  195. package/dist/bin/commands/init.js.map +0 -1
  196. package/dist/bin/commands/migrate.d.ts +0 -3
  197. package/dist/bin/commands/migrate.d.ts.map +0 -1
  198. package/dist/bin/commands/migrate.js +0 -288
  199. package/dist/bin/commands/migrate.js.map +0 -1
  200. package/dist/bin/commands/plugin-like.d.ts +0 -38
  201. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  202. package/dist/bin/commands/plugin-like.js +0 -101
  203. package/dist/bin/commands/plugin-like.js.map +0 -1
  204. package/dist/bin/commands/plugin.d.ts +0 -3
  205. package/dist/bin/commands/plugin.d.ts.map +0 -1
  206. package/dist/bin/commands/plugin.js +0 -148
  207. package/dist/bin/commands/plugin.js.map +0 -1
  208. package/dist/bin/commands/pull.d.ts +0 -2
  209. package/dist/bin/commands/pull.d.ts.map +0 -1
  210. package/dist/bin/commands/pull.js +0 -25
  211. package/dist/bin/commands/pull.js.map +0 -1
  212. package/dist/bin/commands/status.d.ts +0 -3
  213. package/dist/bin/commands/status.d.ts.map +0 -1
  214. package/dist/bin/commands/status.js +0 -63
  215. package/dist/bin/commands/status.js.map +0 -1
  216. package/dist/bin/commands/typegen.d.ts +0 -2
  217. package/dist/bin/commands/typegen.d.ts.map +0 -1
  218. package/dist/bin/commands/typegen.js +0 -25
  219. package/dist/bin/commands/typegen.js.map +0 -1
  220. package/dist/bin/config.d.ts +0 -13
  221. package/dist/bin/config.d.ts.map +0 -1
  222. package/dist/bin/config.js +0 -48
  223. package/dist/bin/config.js.map +0 -1
  224. package/dist/bin/debug.d.ts +0 -3
  225. package/dist/bin/debug.d.ts.map +0 -1
  226. package/dist/bin/debug.js +0 -14
  227. package/dist/bin/debug.js.map +0 -1
  228. package/dist/bin/global-flags.d.ts +0 -16
  229. package/dist/bin/global-flags.d.ts.map +0 -1
  230. package/dist/bin/global-flags.js +0 -7
  231. package/dist/bin/global-flags.js.map +0 -1
  232. package/dist/bin/help.d.ts +0 -5
  233. package/dist/bin/help.d.ts.map +0 -1
  234. package/dist/bin/help.js +0 -84
  235. package/dist/bin/help.js.map +0 -1
  236. package/dist/bin/internal-plugins/index.d.ts +0 -3
  237. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  238. package/dist/bin/internal-plugins/index.js +0 -5
  239. package/dist/bin/internal-plugins/index.js.map +0 -1
  240. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  241. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  242. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  243. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  244. package/dist/bin/journal-store.d.ts +0 -10
  245. package/dist/bin/journal-store.d.ts.map +0 -1
  246. package/dist/bin/journal-store.js +0 -137
  247. package/dist/bin/journal-store.js.map +0 -1
  248. package/dist/bin/json-output.d.ts +0 -5
  249. package/dist/bin/json-output.d.ts.map +0 -1
  250. package/dist/bin/json-output.js +0 -21
  251. package/dist/bin/json-output.js.map +0 -1
  252. package/dist/bin/lib.d.ts +0 -5
  253. package/dist/bin/lib.d.ts.map +0 -1
  254. package/dist/bin/lib.js +0 -5
  255. package/dist/bin/lib.js.map +0 -1
  256. package/dist/bin/logging.d.ts +0 -3
  257. package/dist/bin/logging.d.ts.map +0 -1
  258. package/dist/bin/logging.js +0 -31
  259. package/dist/bin/logging.js.map +0 -1
  260. package/dist/bin/migration-store.d.ts +0 -22
  261. package/dist/bin/migration-store.d.ts.map +0 -1
  262. package/dist/bin/migration-store.js +0 -60
  263. package/dist/bin/migration-store.js.map +0 -1
  264. package/dist/bin/plugin-runtime.d.ts +0 -45
  265. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  266. package/dist/bin/plugin-runtime.js +0 -513
  267. package/dist/bin/plugin-runtime.js.map +0 -1
  268. package/dist/bin/safety-markers.d.ts +0 -23
  269. package/dist/bin/safety-markers.d.ts.map +0 -1
  270. package/dist/bin/safety-markers.js +0 -85
  271. package/dist/bin/safety-markers.js.map +0 -1
  272. package/dist/bin/schema-loader.d.ts +0 -3
  273. package/dist/bin/schema-loader.d.ts.map +0 -1
  274. package/dist/bin/schema-loader.js +0 -11
  275. package/dist/bin/schema-loader.js.map +0 -1
  276. package/dist/bin/table-scope.d.ts +0 -38
  277. package/dist/bin/table-scope.d.ts.map +0 -1
  278. package/dist/bin/table-scope.js +0 -167
  279. package/dist/bin/table-scope.js.map +0 -1
  280. package/dist/bin/version.d.ts +0 -2
  281. package/dist/bin/version.d.ts.map +0 -1
  282. package/dist/bin/version.js +0 -5
  283. package/dist/bin/version.js.map +0 -1
  284. package/dist/drift-diff.d.ts +0 -8
  285. package/dist/drift-diff.d.ts.map +0 -1
  286. package/dist/drift-diff.js +0 -46
  287. package/dist/drift-diff.js.map +0 -1
  288. package/dist/drift.d.ts +0 -66
  289. package/dist/drift.d.ts.map +0 -1
  290. package/dist/drift.js +0 -220
  291. package/dist/drift.js.map +0 -1
@@ -1,5 +1,8 @@
1
- import { normalizeEngine as coreNormalizeEngine, isIndexProjection, normalizeProjectionIndex, normalizeSQLFragment, } from '@chkit/core';
1
+ import { normalizeEngine as coreNormalizeEngine, isKafkaEngine, parseKafkaSettings, kafkaSettingFingerprint, isIndexProjection, isSyntheticEphemeralDefault, normalizeProjectionIndex, normalizeSQLFragment, renderDefault, renderKeyClauseColumns, splitTopLevelComma, sqlExpressionFingerprint, unquoteIdentifiers, textIndexFingerprint, } from '@chkit/core';
2
2
  import { diffByName, diffNamedShapeMaps, diffSettings } from './diff.js';
3
+ function canonicalizeExpression(base, canonicalizer) {
4
+ return canonicalizer?.expression(base) ?? base;
5
+ }
3
6
  function schemaObjectKey(item) {
4
7
  return `${item.kind}:${item.database}.${item.name}`;
5
8
  }
@@ -81,31 +84,26 @@ export function summarizeDriftReasons(input) {
81
84
  };
82
85
  }
83
86
  function normalizeColumnShape(column) {
84
- const normalizeDefaultValue = (value) => {
85
- const normalized = normalizeSQLFragment(value);
86
- const quoted = normalized.match(/^'(.*)'$/);
87
- if (!quoted)
88
- return normalized;
89
- return (quoted[1] ?? '').replace(/''/g, "'");
90
- };
91
- const normalizedDefault = (() => {
92
- if (column.default === undefined)
93
- return '';
94
- const asString = String(column.default);
95
- if (asString.startsWith('fn:'))
96
- return normalizeDefaultValue(asString.slice(3));
97
- return normalizeDefaultValue(asString);
98
- })();
87
+ const rendered = column.default === undefined ? undefined : renderDefault(column.default);
88
+ // ClickHouse stores a bare EPHEMERAL column as defaultValueOfTypeName('<type>'),
89
+ // which introspection reads back as no expression; an explicit one matches it.
90
+ const normalizedDefault = rendered === undefined ||
91
+ (column.defaultKind === 'EPHEMERAL' && isSyntheticEphemeralDefault(rendered))
92
+ ? ''
93
+ : sqlExpressionFingerprint(rendered);
99
94
  const parts = [
100
95
  `type=${String(column.type).trim()}`,
101
96
  `nullable=${column.nullable ? '1' : '0'}`,
102
97
  `default=${normalizedDefault}`,
98
+ `defaultKind=${column.defaultKind ?? 'DEFAULT'}`,
103
99
  `comment=${column.comment?.trim() ?? ''}`,
104
100
  ];
105
101
  return parts.join('|');
106
102
  }
107
103
  function renderIndexTypeFingerprint(index) {
108
104
  switch (index.type) {
105
+ case 'text':
106
+ return textIndexFingerprint(index);
109
107
  case 'minmax':
110
108
  return 'minmax';
111
109
  case 'set':
@@ -120,68 +118,172 @@ function renderIndexTypeFingerprint(index) {
120
118
  return `ngrambf_v1(${index.ngramSize}, ${index.sizeBytes}, ${index.hashFunctions}, ${index.randomSeed})`;
121
119
  }
122
120
  }
123
- function normalizeIndexShape(index) {
121
+ // chkit renders `INDEX name (expr)`, and ClickHouse keeps those parentheses in
122
+ // system.data_skipping_indices.expr. Strip one pair only when it encloses the
123
+ // whole expression, so `(a) + (b)` stays intact.
124
+ function stripEnclosingParens(value) {
125
+ if (!value.startsWith('(') || !value.endsWith(')'))
126
+ return value;
127
+ let depth = 0;
128
+ for (let i = 0; i < value.length; i++) {
129
+ if (value[i] === '(')
130
+ depth++;
131
+ else if (value[i] === ')')
132
+ depth--;
133
+ if (depth === 0 && i < value.length - 1)
134
+ return value;
135
+ }
136
+ return value.slice(1, -1).trim();
137
+ }
138
+ function indexExpressionBase(index) {
139
+ return stripEnclosingParens(normalizeSQLFragment(index.expression));
140
+ }
141
+ function normalizeIndexShape(index, canonicalizer) {
142
+ if (index.type === 'text')
143
+ return textIndexFingerprint(index);
124
144
  return [
125
- `expr=${normalizeSQLFragment(index.expression)}`,
145
+ `expr=${canonicalizeExpression(indexExpressionBase(index), canonicalizer)}`,
126
146
  `type=${renderIndexTypeFingerprint(index)}`,
127
147
  `granularity=${index.granularity}`,
128
148
  ].join('|');
129
149
  }
130
- function normalizeProjectionShape(projection) {
150
+ function normalizeProjectionShape(projection, canonicalizer) {
131
151
  if (isIndexProjection(projection)) {
132
152
  return [
133
153
  `index=${normalizeProjectionIndex(projection.index)}`,
134
154
  `type=${projection.type.trim()}`,
135
155
  ].join('|');
136
156
  }
137
- return `query=${normalizeSQLFragment(projection.query)}`;
157
+ const base = normalizeSQLFragment(projection.query);
158
+ return `query=${canonicalizer?.query(base) ?? base}`;
138
159
  }
139
- function normalizeClause(value) {
160
+ // Key and partition clauses are compared as SQL: the schema's keys as chkit
161
+ // renders them, the live clauses as ClickHouse reports them. Comments are
162
+ // removed while quoted names still carry their backticks. Then the names are
163
+ // unquoted, since ClickHouse re-renders identifiers with its own quoting and
164
+ // escaping, and one pair of parentheses around the whole clause is dropped.
165
+ // From there on only whitespace is collapsed: unquoted, `user--id` would read
166
+ // as `user` followed by a comment. For the same reason a canonicalizer sees each
167
+ // element while its names are still quoted.
168
+ function normalizeClause(value, canonicalizer) {
140
169
  if (!value)
141
170
  return '';
142
- const normalized = normalizeSQLFragment(value).replace(/`/g, '');
143
- const wrapped = normalized.match(/^\((.*)\)$/);
144
- return wrapped?.[1] ? normalizeSQLFragment(wrapped[1]) : normalized;
171
+ const sql = normalizeSQLFragment(value);
172
+ const canonical = canonicalizer
173
+ ? clauseElements(sql)
174
+ .map((element) => canonicalizeExpression(element, canonicalizer))
175
+ .join(', ')
176
+ : sql;
177
+ const unquoted = unquoteIdentifiers(canonical).replace(/\s+/g, ' ').trim();
178
+ const wrapped = unquoted.match(/^\((.*)\)$/);
179
+ return wrapped?.[1] ? wrapped[1].trim() : unquoted;
180
+ }
181
+ /** The elements of a key/partition clause, canonicalized one by one so a
182
+ * function expression (`cityHash64(a,b)`) matches ClickHouse's spelling. */
183
+ function clauseElements(sql) {
184
+ const wrapped = sql.match(/^\((.*)\)$/);
185
+ return splitTopLevelComma(wrapped?.[1] ?? sql);
186
+ }
187
+ /** The key/partition clauses compared for a table, schema side vs live side. */
188
+ function tableClauses(expected, actual) {
189
+ // ClickHouse derives PRIMARY KEY from ORDER BY when it is omitted, then omits
190
+ // it from SHOW CREATE — so a table with only ORDER BY reports no primary key.
191
+ // Mirror that on both sides (as canonical.ts does for the schema), else every
192
+ // such table drifts forever (#194).
193
+ // Render expected keys as chkit emits them so declared column names (which may
194
+ // contain commas or backticks) are compared as single identifiers.
195
+ const columnNames = new Set(expected.columns.map((column) => column.name));
196
+ return {
197
+ primaryKey: [
198
+ renderKeyClauseColumns(expected.primaryKey.length > 0 ? expected.primaryKey : expected.orderBy, columnNames),
199
+ actual.primaryKey ?? actual.orderBy,
200
+ ],
201
+ orderBy: [renderKeyClauseColumns(expected.orderBy, columnNames), actual.orderBy],
202
+ uniqueKey: [renderKeyClauseColumns(expected.uniqueKey ?? [], columnNames), actual.uniqueKey],
203
+ partitionBy: [expected.partitionBy, actual.partitionBy],
204
+ };
145
205
  }
146
206
  function normalizeEngine(value) {
147
207
  if (!value)
148
208
  return '';
149
209
  return coreNormalizeEngine(normalizeSQLFragment(value)).toLowerCase();
150
210
  }
151
- export function compareTableShape(expected, actual) {
152
- const columnDiff = diffByName(expected.columns, actual.columns, (column) => column.name, normalizeColumnShape);
211
+ /**
212
+ * Every SQL fragment `compareTableShape` will look up in a `SqlCanonicalizer`,
213
+ * at the exact granularity it looks them up (whole expressions for index/ttl,
214
+ * per-element for key/partition clauses, whole query for SELECT projections).
215
+ * The drift command collects these across all compared tables, formats them in
216
+ * one round-trip, and hands back a map-backed canonicalizer.
217
+ */
218
+ export function collectTableSqlFragments(expected, actual) {
219
+ const expressions = [];
220
+ const queries = [];
221
+ for (const index of [...(expected.indexes ?? []), ...actual.indexes]) {
222
+ if (index.type !== 'text')
223
+ expressions.push(indexExpressionBase(index));
224
+ }
225
+ for (const ttl of [expected.ttl, actual.ttl]) {
226
+ if (ttl)
227
+ expressions.push(normalizeSQLFragment(ttl));
228
+ }
229
+ for (const clause of Object.values(tableClauses(expected, actual)).flat()) {
230
+ if (clause)
231
+ expressions.push(...clauseElements(normalizeSQLFragment(clause)));
232
+ }
233
+ for (const projection of [...(expected.projections ?? []), ...actual.projections]) {
234
+ if (!isIndexProjection(projection))
235
+ queries.push(normalizeSQLFragment(projection.query));
236
+ }
237
+ return { expressions, queries };
238
+ }
239
+ export function compareTableShape(expected, actual, canonicalizer) {
240
+ const columnDiff = diffByName(expected.columns,
241
+ // system.columns stores SQL, whereas schema strings are literals unless fn:-prefixed.
242
+ actual.columns.map((column) => ({
243
+ ...column,
244
+ default: typeof column.default === 'string' && !column.default.startsWith('fn:')
245
+ ? `fn:${column.default}`
246
+ : column.default,
247
+ })), (column) => column.name, normalizeColumnShape);
153
248
  const missingColumns = columnDiff.missing;
154
249
  const extraColumns = columnDiff.extra;
155
250
  const changedColumns = columnDiff.changed;
156
- const settingDiffs = diffSettings(expected.settings ?? {}, actual.settings);
157
- const expectedIndexes = new Map((expected.indexes ?? []).map((idx) => [idx.name, normalizeIndexShape(idx)]));
158
- const actualIndexes = new Map(actual.indexes.map((idx) => [idx.name, normalizeIndexShape(idx)]));
251
+ const kafka = isKafkaEngine(expected.engine);
252
+ const expectedSettings = kafka
253
+ ? Object.fromEntries(Object.entries(expected.settings ?? {}).map(([key, value]) => [key, kafkaSettingFingerprint(value)]))
254
+ : expected.settings ?? {};
255
+ const actualSettings = kafka
256
+ ? Object.fromEntries(Object.entries(parseKafkaSettings(actual.settings)).map(([key, value]) => [key, kafkaSettingFingerprint(value)]))
257
+ : actual.settings;
258
+ const settingDiffs = diffSettings(expectedSettings, actualSettings);
259
+ const expectedIndexes = new Map((expected.indexes ?? []).map((idx) => [idx.name, normalizeIndexShape(idx, canonicalizer)]));
260
+ const actualIndexes = new Map(actual.indexes.map((idx) => [idx.name, normalizeIndexShape(idx, canonicalizer)]));
159
261
  const indexDiffs = diffNamedShapeMaps(expectedIndexes, actualIndexes);
160
- const expectedTTL = expected.ttl ? normalizeSQLFragment(expected.ttl) : '';
161
- const actualTTL = actual.ttl ? normalizeSQLFragment(actual.ttl) : '';
262
+ const expectedTTL = canonicalizeExpression(expected.ttl ? normalizeSQLFragment(expected.ttl) : '', canonicalizer);
263
+ const actualTTL = canonicalizeExpression(actual.ttl ? normalizeSQLFragment(actual.ttl) : '', canonicalizer);
162
264
  const ttlMismatch = expectedTTL !== actualTTL;
163
265
  const engineMismatch = normalizeEngine(expected.engine) !== normalizeEngine(actual.engine);
164
- // ClickHouse derives PRIMARY KEY from ORDER BY when it is omitted, then omits
165
- // it from SHOW CREATE — so a table with only ORDER BY reports no primary key.
166
- // Mirror that on both sides (as canonical.ts does for the schema), else every
167
- // such table drifts forever (#194).
168
- const expectedPrimaryKey = normalizeClause((expected.primaryKey.length > 0 ? expected.primaryKey : expected.orderBy).join(', '));
169
- const actualPrimaryKey = normalizeClause(actual.primaryKey ?? actual.orderBy);
266
+ const clauses = tableClauses(expected, actual);
267
+ const expectedPrimaryKey = normalizeClause(clauses.primaryKey[0], canonicalizer);
268
+ const actualPrimaryKey = normalizeClause(clauses.primaryKey[1], canonicalizer);
170
269
  const primaryKeyMismatch = expectedPrimaryKey !== actualPrimaryKey;
171
- const expectedOrderBy = normalizeClause(expected.orderBy.join(', '));
172
- const actualOrderBy = normalizeClause(actual.orderBy);
270
+ const expectedOrderBy = normalizeClause(clauses.orderBy[0], canonicalizer);
271
+ const actualOrderBy = normalizeClause(clauses.orderBy[1], canonicalizer);
173
272
  const orderByMismatch = expectedOrderBy !== actualOrderBy;
174
- const expectedUniqueKey = normalizeClause((expected.uniqueKey ?? []).join(', '));
175
- const actualUniqueKey = normalizeClause(actual.uniqueKey);
273
+ const expectedUniqueKey = normalizeClause(clauses.uniqueKey[0], canonicalizer);
274
+ const actualUniqueKey = normalizeClause(clauses.uniqueKey[1], canonicalizer);
176
275
  const uniqueKeyMismatch = expectedUniqueKey !== actualUniqueKey;
177
- const expectedPartitionBy = normalizeClause(expected.partitionBy);
178
- const actualPartitionBy = normalizeClause(actual.partitionBy);
276
+ const expectedPartitionBy = normalizeClause(clauses.partitionBy[0], canonicalizer);
277
+ const actualPartitionBy = normalizeClause(clauses.partitionBy[1], canonicalizer);
179
278
  const partitionByMismatch = expectedPartitionBy !== actualPartitionBy;
180
279
  const expectedProjections = new Map((expected.projections ?? []).map((projection) => [
181
280
  projection.name,
182
- normalizeProjectionShape(projection),
281
+ normalizeProjectionShape(projection, canonicalizer),
282
+ ]));
283
+ const actualProjections = new Map(actual.projections.map((projection) => [
284
+ projection.name,
285
+ normalizeProjectionShape(projection, canonicalizer),
183
286
  ]));
184
- const actualProjections = new Map(actual.projections.map((projection) => [projection.name, normalizeProjectionShape(projection)]));
185
287
  const projectionDiffs = diffNamedShapeMaps(expectedProjections, actualProjections);
186
288
  const reasonCodes = [];
187
289
  if (missingColumns.length > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/drift/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/drift/compare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/commands/drift/payload.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,kBAAkB,EAAwB,MAAM,mBAAmB,CAAA;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAA;AAGvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAA;AAErB,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,cAAc,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,OAAO,CAAA;CAC5B,GAAG,OAAO,CAOV;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,YAAY,CAAC,CA8FvB"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/commands/drift/payload.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,kBAAkB,EAGxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAA;AAGvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAIL,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAA;AAoCrB,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,cAAc,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,kBAAkB,EAAE,OAAO,CAAA;CAC5B,GAAG,OAAO,CAOV;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,YAAY,CAAC,CA+FvB"}
@@ -1,7 +1,38 @@
1
1
  import { join } from 'node:path';
2
- import { isUnknownDatabaseError } from '@chkit/clickhouse';
2
+ import { canonicalizeSqlFragments, isUnknownDatabaseError, } from '@chkit/clickhouse';
3
3
  import { debug } from '../../runtime/debug.js';
4
- import { compareSchemaObjects, compareTableShape, } from './compare.js';
4
+ import { collectTableSqlFragments, compareSchemaObjects, compareTableShape, } from './compare.js';
5
+ /**
6
+ * Build a canonicalizer for every SQL fragment across the compared tables in a
7
+ * single ClickHouse round-trip. Returns undefined when there is nothing to
8
+ * canonicalize or ClickHouse can't format (old server, offline) — the comparer
9
+ * then falls back to plain string normalization.
10
+ */
11
+ async function buildSqlCanonicalizer(db, pairs) {
12
+ const expressions = [];
13
+ const queries = [];
14
+ for (const { expected, actual } of pairs) {
15
+ const fragments = collectTableSqlFragments(expected, actual);
16
+ expressions.push(...fragments.expressions);
17
+ queries.push(...fragments.queries);
18
+ }
19
+ if (expressions.length === 0 && queries.length === 0)
20
+ return undefined;
21
+ try {
22
+ const [expressionMap, queryMap] = await Promise.all([
23
+ canonicalizeSqlFragments(db, expressions, { wrap: true }),
24
+ canonicalizeSqlFragments(db, queries, { wrap: false }),
25
+ ]);
26
+ return {
27
+ expression: (fragment) => expressionMap.get(fragment) ?? null,
28
+ query: (fragment) => queryMap.get(fragment) ?? null,
29
+ };
30
+ }
31
+ catch (error) {
32
+ debug('drift', `sql canonicalization unavailable, using string comparison: ${String(error)}`);
33
+ return undefined;
34
+ }
35
+ }
5
36
  /**
6
37
  * Decide whether a schema has drifted. Objects that exist in ClickHouse but are
7
38
  * not in the schema (`extra_object` → `extraCount`) are NOT drift by default:
@@ -78,13 +109,13 @@ export async function buildDriftPayload(config, metaDir, snapshot, scope, execut
78
109
  });
79
110
  const expectedTableMap = new Map(expectedTables.map((table) => [`${table.database}.${table.name}`, table]));
80
111
  const actualTables = await db.listTableDetails([...expectedDatabases]);
81
- const tableDrift = actualTables
82
- .map((actual) => {
112
+ const pairs = actualTables.flatMap((actual) => {
83
113
  const expected = expectedTableMap.get(`${actual.database}.${actual.name}`);
84
- if (!expected)
85
- return null;
86
- return compareTableShape(expected, actual);
87
- })
114
+ return expected ? [{ expected, actual }] : [];
115
+ });
116
+ const canonicalizer = await buildSqlCanonicalizer(db, pairs);
117
+ const tableDrift = pairs
118
+ .map(({ expected, actual }) => compareTableShape(expected, actual, canonicalizer))
88
119
  .filter((item) => item !== null)
89
120
  .sort((a, b) => a.table.localeCompare(b.table));
90
121
  debug('drift', `comparison: missing=${missing.length}, extra=${extra.length}, kindMismatches=${kindMismatches.length}, objectDrift=${objectDrift.length}, tableDrift=${tableDrift.length}`);
@@ -1 +1 @@
1
- {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/drift/payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/drift/payload.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { resolveDirs } from '../../runtime/config.js';
5
5
  import { GLOBAL_FLAGS } from '../../runtime/global-flags.js';
6
6
  import { emitJson } from '../../runtime/json-output.js';
7
7
  import { readSnapshot } from '../../runtime/migration-store.js';
8
- import { loadSchemaDefinitions } from '../../runtime/schema-loader.js';
8
+ import { loadSchemaDefinitionsWithHooks } from '../../runtime/schema-loader.js';
9
9
  import { CLI_VERSION } from '../../runtime/version.js';
10
10
  import { buildScopedSnapshotDefinitions, filterPlanByTableScope, resolveTableScope, tableKeysFromDefinitions, } from '../../runtime/table-scope.js';
11
11
  import { detectDictionaryPasswordWarnings } from './dictionary-password-warnings.js';
@@ -53,22 +53,7 @@ async function cmdGenerate(ctx) {
53
53
  emitGenerateEmptyOutput(result, jsonMode);
54
54
  return 0;
55
55
  }
56
- await pluginRuntime.runOnConfigLoaded({
57
- command: 'generate',
58
- config,
59
- configPath,
60
- tableScope: resolveTableScope(tableSelector, []),
61
- flags,
62
- });
63
- let definitions = await loadSchemaDefinitions(config.schema);
64
- definitions = await pluginRuntime.runOnSchemaLoaded({
65
- command: 'generate',
66
- config,
67
- tableScope: resolveTableScope(tableSelector, tableKeysFromDefinitions(definitions)),
68
- flags,
69
- jsonMode,
70
- definitions,
71
- });
56
+ const definitions = await loadSchemaDefinitionsWithHooks({ command: 'generate', config, configPath, flags, jsonMode, tableSelector }, { pluginRuntime });
72
57
  const renameTableValues = f['--rename-table'] ?? [];
73
58
  const renameColumnValues = f['--rename-column'] ?? [];
74
59
  const renameDictionaryValues = f['--rename-dictionary'] ?? [];
@@ -147,7 +132,10 @@ async function cmdGenerate(ctx) {
147
132
  // Cluster mode: stamp `ON CLUSTER <name>` onto every DDL statement as a final
148
133
  // post-pass, after all plan transforms (renames, plugins, scope filtering).
149
134
  plan = applyOnClusterToPlan(plan, config.clickhouse?.cluster);
150
- const dictionaryPasswordWarnings = detectDictionaryPasswordWarnings(plan);
135
+ const dictionaryPasswordWarnings = [
136
+ ...detectDictionaryPasswordWarnings(plan),
137
+ ...plan.operations.flatMap((operation) => operation.warning ? [operation.warning] : []),
138
+ ];
151
139
  if (planMode) {
152
140
  emitGeneratePlanOutput(plan, jsonMode, resolvedScope, dictionaryPasswordWarnings);
153
141
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/generate/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEhF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAA;AACpF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAC9B,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,qCAAqC,EACrC,gCAAgC,EAChC,iCAAiC,EACjC,qCAAqC,EACrC,gCAAgC,EAChC,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,uCAAuC,EACvC,kCAAkC,EAClC,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,MAAM,cAAc,GAAG,WAAW,CAAC;IACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE;IACxF,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE,WAAW,EAAE,MAAM,EAAE;IAC/H,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,+BAA+B,EAAE,WAAW,EAAE,WAAW,EAAE;IACpH,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gCAAgC,EAAE,WAAW,EAAE,WAAW,EAAE;IACtH,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE,WAAW,EAAE,WAAW,EAAE;IAC9H,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sCAAsC,EAAE;IAC1F,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wEAAwE,EAAE;CACnH,CAAC,CAAA;AAEX,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,sDAAsD;IACnE,KAAK,EAAE,cAAc;IACrB,GAAG,EAAE,WAAW;CACjB,CAAA;AAED,KAAK,UAAU,WAAW,CAAC,GAAuD;IAChF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,GAAG,CAAA;IACxD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAU,CAAC,CAAA;IAC1E,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjC,MAAM,WAAW,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAA;IACvC,MAAM,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IACvC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;IACrC,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;IAEvC,KAAK,CAAC,UAAU,EAAE,eAAe,aAAa,IAAI,QAAQ,YAAY,QAAQ,UAAU,QAAQ,WAAW,SAAS,EAAE,CAAC,CAAA;IAEvH,0EAA0E;IAC1E,4EAA4E;IAC5E,kEAAkE;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,UAAU,EAAE,yCAAyC,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;YAC1C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa;YACb,WAAW;YACX,UAAU,EAAE,WAAW;SACxB,CAAC,CAAA;QACF,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,aAAa,CAAC,iBAAiB,CAAC;QACpC,OAAO,EAAE,UAAU;QACnB,MAAM;QACN,UAAU;QACV,UAAU,EAAE,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC;QAChD,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5D,WAAW,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;QAClD,OAAO,EAAE,UAAU;QACnB,MAAM;QACN,UAAU,EAAE,iBAAiB,CAAC,aAAa,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACnF,KAAK;QACL,QAAQ;QACR,WAAW;KACZ,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;IACnD,MAAM,kBAAkB,GAAG,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;IACrD,MAAM,sBAAsB,GAAG,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAA;IAC7D,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,CAAA;IACpE,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAA;IACvE,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,sBAAsB,CAAC,CAAA;IACnF,MAAM,cAAc,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,aAAa,GAAG,kBAAkB,CAAC,cAAc,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;IACxF,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAC5F,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,cAAc,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAA;IAE5G,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IACvC,MAAM,mBAAmB,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,IAAI,EAAE,CAAA;IAC5E,MAAM,aAAa,GAAG,iBAAiB,CAAC,aAAa,EAAE;QACrD,GAAG,wBAAwB,CAAC,mBAAmB,CAAC;QAChD,GAAG,wBAAwB,CAAC,WAAW,CAAC;KACzC,CAAC,CAAA;IAEF,IAAI,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,UAAU,EAAE;gBACnB,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBACjC,cAAc,EAAE,CAAC;gBACjB,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBAC/C,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,+BAA+B,aAAa,CAAC,QAAQ,IAAI,EAAE,IAAI;aACzE,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,+BAA+B,aAAa,CAAC,QAAQ,IAAI,EAAE,wBAAwB,CAAC,CAAA;QAClG,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,gCAAgC,CAAC,aAAa,CAAC,CAAA;IAC/C,iCAAiC,CAAC,cAAc,CAAC,CAAA;IACjD,qCAAqC,CAAC,kBAAkB,CAAC,CAAA;IACzD,gCAAgC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAA;IACpF,qCAAqC,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAA;IAE9F,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,mBAAmB,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA;IACvG,MAAM,wBAAwB,GAAG,+BAA+B,CAC9D,mBAAmB,EACnB,WAAW,EACX,kBAAkB,CACnB,CAAA;IACD,MAAM,2BAA2B,GAAG,uCAAuC,CACzE,kCAAkC,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAC5E,wBAAwB,CACzB,CAAA;IAED,KAAK,CAAC,UAAU,EAAE,sBAAsB,mBAAmB,CAAC,MAAM,0BAA0B,WAAW,CAAC,MAAM,cAAc,CAAC,CAAA;IAE7H,IAAI,IAAiC,CAAA;IACrC,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,UAAU,EAAE;oBACnB,KAAK,EAAE,mBAAmB;oBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAA;gBACF,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5F,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC,CAAA;QACjD,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IAED,IAAI,GAAG,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IAC3D,IAAI,GAAG,8BAA8B,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;IACrE,iCAAiC,CAAC,iBAAiB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IACvE,IAAI,GAAG,8BAA8B,CAAC,IAAI,EAAE,oCAAoC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;IAEvG,IAAI,GAAG,MAAM,aAAa,CAAC,gBAAgB,CACzC;QACE,OAAO,EAAE,UAAU;QACnB,MAAM;QACN,UAAU,EAAE,aAAa;QACzB,KAAK;KACN,EACD,IAAI,CACL,CAAA;IAED,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;YACxE,cAAc,EAAE,mBAAmB;SACpC,CAAC,CAAC,IAAI,CAAA;IACT,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAE7D,MAAM,0BAA0B,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAA;IAEzE,IAAI,QAAQ,EAAE,CAAC;QACb,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAA;QACjF,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO;QAC/C,CAAC,CAAC,8BAA8B,CAAC;YAC7B,mBAAmB;YACnB,eAAe,EAAE,WAAW;YAC5B,aAAa,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC;YACnD,cAAc,EAAE,mBAAmB;SACpC,CAAC;QACJ,CAAC,CAAC,WAAW,CAAA;IAEf,KAAK,CAAC,UAAU,EAAE,SAAS,IAAI,CAAC,UAAU,CAAC,MAAM,iCAAiC,CAAC,CAAA;IAEnF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,WAAW,EAAE,mBAAmB;QAChC,aAAa;QACb,OAAO;QACP,aAAa;QACb,WAAW;QACX,IAAI;QACJ,UAAU,EAAE,WAAW;KACxB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACrG,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IAClG,IAAI,aAAa,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE;YACjF,MAAM;YACN,UAAU;YACV,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,KAAK,KAAI,CAAC;SACX,CAAC,CAAA;QACF,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,kEAAkE,eAAe,GAAG,CAAC,CAAA;QACvG,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAA;IAC/G,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/generate/command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-pipeline.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/plan-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEtB,aAAa,EAEb,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE5G,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,mBAAmB,EAAE,sBAAsB,EAAE,GAC5C,aAAa,CAwCf;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,aAAa,CA8Cf;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,uBAAuB,EAAE,GAClC,aAAa,CA8Cf;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,mBAAmB,EAAE,EAClC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,gBAAgB,EAAE,GAClC,IAAI,CAsBN"}
1
+ {"version":3,"file":"plan-pipeline.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/plan-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEtB,aAAa,EAEb,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAO5G,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,mBAAmB,EAAE,sBAAsB,EAAE,GAC5C,aAAa,CAoCf;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,aAAa,CA0Cf;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,uBAAuB,EAAE,GAClC,aAAa,CA0Cf;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,mBAAmB,EAAE,EAClC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,gBAAgB,EAAE,GAClC,IAAI,CAsBN"}
@@ -1,3 +1,8 @@
1
+ import { quoteIdentifier, renderQualifiedName } from '@chkit/core';
2
+ // Drops and object creates keep the order planDiff gave them, which is
3
+ // dependency-aware (#231); the classes this pipeline adds to sort by key.
4
+ const DROP_RANK = 0;
5
+ const CREATE_RANK = 4;
1
6
  export function applySelectedRenameSuggestions(plan, selectedSuggestions) {
2
7
  if (selectedSuggestions.length === 0)
3
8
  return plan;
@@ -13,15 +18,7 @@ export function applySelectedRenameSuggestions(plan, selectedSuggestions) {
13
18
  sql: suggestion.confirmationSQL,
14
19
  });
15
20
  }
16
- const operations = [
17
- ...plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)),
18
- ...renameOperations,
19
- ].sort((a, b) => {
20
- const rankOrder = rankOperation(a) - rankOperation(b);
21
- if (rankOrder !== 0)
22
- return rankOrder;
23
- return a.key.localeCompare(b.key);
24
- });
21
+ const operations = mergeOperations(plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)), renameOperations);
25
22
  return {
26
23
  operations,
27
24
  riskSummary: summarizeRisk(operations),
@@ -56,18 +53,10 @@ export function applyExplicitTableRenames(plan, mappings) {
56
53
  type: 'alter_table_rename_table',
57
54
  key: `table:${mapping.newDatabase}.${mapping.newName}:rename_table`,
58
55
  risk: 'caution',
59
- sql: `RENAME TABLE IF EXISTS ${mapping.oldDatabase}.${mapping.oldName} TO ${mapping.newDatabase}.${mapping.newName};`,
56
+ sql: `RENAME TABLE IF EXISTS ${renderQualifiedName(mapping.oldDatabase, mapping.oldName)} TO ${renderQualifiedName(mapping.newDatabase, mapping.newName)};`,
60
57
  });
61
58
  }
62
- const operations = [
63
- ...plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)),
64
- ...extraOperations,
65
- ].sort((a, b) => {
66
- const rankOrder = rankOperation(a) - rankOperation(b);
67
- if (rankOrder !== 0)
68
- return rankOrder;
69
- return a.key.localeCompare(b.key);
70
- });
59
+ const operations = mergeOperations(plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)), extraOperations);
71
60
  return {
72
61
  operations,
73
62
  riskSummary: summarizeRisk(operations),
@@ -99,18 +88,10 @@ export function applyExplicitDictionaryRenames(plan, mappings) {
99
88
  type: 'rename_dictionary',
100
89
  key: `dictionary:${mapping.newDatabase}.${mapping.newName}:rename_dictionary`,
101
90
  risk: 'caution',
102
- sql: `RENAME DICTIONARY IF EXISTS ${mapping.oldDatabase}.${mapping.oldName} TO ${mapping.newDatabase}.${mapping.newName};`,
91
+ sql: `RENAME DICTIONARY IF EXISTS ${renderQualifiedName(mapping.oldDatabase, mapping.oldName)} TO ${renderQualifiedName(mapping.newDatabase, mapping.newName)};`,
103
92
  });
104
93
  }
105
- const operations = [
106
- ...plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)),
107
- ...extraOperations,
108
- ].sort((a, b) => {
109
- const rankOrder = rankOperation(a) - rankOperation(b);
110
- if (rankOrder !== 0)
111
- return rankOrder;
112
- return a.key.localeCompare(b.key);
113
- });
94
+ const operations = mergeOperations(plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)), extraOperations);
114
95
  return {
115
96
  operations,
116
97
  riskSummary: summarizeRisk(operations),
@@ -139,7 +120,7 @@ export function buildExplicitColumnRenameSuggestions(plan, mappings) {
139
120
  : 'Explicitly confirmed by schema metadata (renamedFrom).',
140
121
  dropOperationKey,
141
122
  addOperationKey,
142
- confirmationSQL: `ALTER TABLE ${mapping.database}.${mapping.table} RENAME COLUMN IF EXISTS \`${mapping.from}\` TO \`${mapping.to}\`;`,
123
+ confirmationSQL: `ALTER TABLE ${renderQualifiedName(mapping.database, mapping.table)} RENAME COLUMN IF EXISTS ${quoteIdentifier(mapping.from)} TO ${quoteIdentifier(mapping.to)};`,
143
124
  });
144
125
  }
145
126
  return suggestions;
@@ -158,20 +139,38 @@ export function assertCliColumnMappingsResolvable(cliMappings, plan, nextDefinit
158
139
  throw new Error(`--rename-column mapping "${mapping.database}.${mapping.table}.${mapping.from}=${mapping.to}" is invalid: planner did not find both matching drop and add operations.`);
159
140
  }
160
141
  }
142
+ /**
143
+ * Combines the planner's operations (minus the ones a rename replaces) with the
144
+ * rename/create_database operations added here. Drops and object creates keep
145
+ * the planner's order, which is dependency-aware (#231); the classes this
146
+ * pipeline adds to are ordered by key, and operations that share a key keep
147
+ * the planner's order, so a column's `REMOVE DEFAULT` still runs before its
148
+ * `MODIFY COLUMN`.
149
+ */
150
+ function mergeOperations(kept, added) {
151
+ return [...kept, ...added]
152
+ .map((operation, index) => ({ operation, index }))
153
+ .sort((a, b) => {
154
+ const rank = rankOperation(a.operation);
155
+ const rankOrder = rank - rankOperation(b.operation);
156
+ if (rankOrder !== 0)
157
+ return rankOrder;
158
+ if (rank === DROP_RANK || rank === CREATE_RANK)
159
+ return a.index - b.index;
160
+ return a.operation.key.localeCompare(b.operation.key) || a.index - b.index;
161
+ })
162
+ .map(({ operation }) => operation);
163
+ }
161
164
  function rankOperation(op) {
162
165
  if (op.type.startsWith('drop_'))
163
- return 0;
166
+ return DROP_RANK;
164
167
  if (op.type === 'create_database')
165
168
  return 1;
166
169
  if (op.type === 'alter_table_rename_table' || op.type === 'rename_dictionary')
167
170
  return 2;
168
171
  if (op.type.startsWith('alter_'))
169
172
  return 3;
170
- if (op.type === 'create_table')
171
- return 4;
172
- if (op.type === 'create_view')
173
- return 5;
174
- return 6;
173
+ return CREATE_RANK;
175
174
  }
176
175
  function summarizeRisk(operations) {
177
176
  const riskSummary = { safe: 0, caution: 0, danger: 0 };