@chkit/plugin-backfill 0.1.0-beta.14 → 0.1.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/planner.js CHANGED
@@ -1,5 +1,9 @@
1
+ import { dirname } from 'node:path';
2
+ import { unlink } from 'node:fs/promises';
3
+ import { loadSchemaDefinitions } from '@chkit/core';
4
+ import { findMvForTarget } from './detect.js';
1
5
  import { BackfillConfigError } from './errors.js';
2
- import { backfillPaths, computeBackfillStateDir, hashId, planIdentity, readExistingPlan, stableSerialize, writeJson, } from './state.js';
6
+ import { backfillPaths, computeBackfillStateDir, computeEnvironmentFingerprint, hashId, planIdentity, readExistingPlan, stableSerialize, writeJson, } from './state.js';
3
7
  function ensureHoursWithinLimits(input) {
4
8
  const fromMillis = new Date(input.from).getTime();
5
9
  const toMillis = new Date(input.to).getTime();
@@ -11,14 +15,220 @@ function ensureHoursWithinLimits(input) {
11
15
  throw new BackfillConfigError(`Requested window (${durationHours.toFixed(2)} hours) exceeds limits.maxWindowHours=${input.limits.maxWindowHours}. Retry with --force-large-window to acknowledge risk.`);
12
16
  }
13
17
  }
18
+ function buildSettingsClause(token) {
19
+ if (token) {
20
+ return `SETTINGS async_insert=0, insert_deduplication_token='${token}'`;
21
+ }
22
+ return `SETTINGS async_insert=0`;
23
+ }
24
+ /**
25
+ * Inject a time-range filter directly into a SQL query.
26
+ *
27
+ * Scans for top-level (not inside parentheses or string literals) SQL keywords
28
+ * to determine where to place the condition:
29
+ * - If a top-level WHERE exists, appends AND conditions at its end.
30
+ * - Otherwise, inserts a WHERE clause before trailing clauses (GROUP BY, etc.).
31
+ *
32
+ * This avoids wrapping the query in a CTE, which causes ClickHouse to infer
33
+ * Nullable wrappers on Array/Map columns — an illegal type combination.
34
+ */
35
+ export function injectTimeFilter(query, timeColumn, from, to) {
36
+ const trimmed = query.trimEnd();
37
+ const upper = trimmed.toUpperCase();
38
+ const hits = [];
39
+ let depth = 0;
40
+ for (let i = 0; i < trimmed.length; i++) {
41
+ const ch = trimmed[i];
42
+ if (ch === '(') {
43
+ depth++;
44
+ continue;
45
+ }
46
+ if (ch === ')') {
47
+ depth--;
48
+ continue;
49
+ }
50
+ if (ch === "'") {
51
+ i++;
52
+ while (i < trimmed.length && trimmed[i] !== "'") {
53
+ if (trimmed[i] === '\\')
54
+ i++;
55
+ i++;
56
+ }
57
+ continue;
58
+ }
59
+ if (depth !== 0)
60
+ continue;
61
+ // Must be preceded by whitespace or be at start
62
+ if (i > 0 && /\S/.test(trimmed[i - 1] ?? ''))
63
+ continue;
64
+ const rest = upper.slice(i);
65
+ for (const kw of ['WHERE', 'GROUP BY', 'HAVING', 'ORDER BY', 'QUALIFY', 'LIMIT', 'SETTINGS']) {
66
+ if (rest.startsWith(kw) && (i + kw.length >= trimmed.length || /\s/.test(trimmed[i + kw.length] ?? ''))) {
67
+ hits.push({ keyword: kw, position: i });
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ const whereHit = hits.find(h => h.keyword === 'WHERE');
73
+ const trailingKeywords = ['GROUP BY', 'HAVING', 'ORDER BY', 'QUALIFY', 'LIMIT', 'SETTINGS'];
74
+ const firstTrailing = hits
75
+ .filter(h => trailingKeywords.includes(h.keyword))
76
+ .filter(h => !whereHit || h.position > whereHit.position)[0];
77
+ const timeCondition = `${timeColumn} >= parseDateTimeBestEffort('${from}')\n AND ${timeColumn} < parseDateTimeBestEffort('${to}')`;
78
+ const insertAt = firstTrailing ? firstTrailing.position : trimmed.length;
79
+ const before = trimmed.slice(0, insertAt).trimEnd();
80
+ const after = trimmed.slice(insertAt);
81
+ if (whereHit) {
82
+ return `${before}\n AND ${timeCondition}${after ? '\n' + after : ''}`;
83
+ }
84
+ return `${before}\nWHERE ${timeCondition}${after ? '\n' + after : ''}`;
85
+ }
86
+ /**
87
+ * Rewrite a SQL query's SELECT projection so its output columns are in the
88
+ * same positional order as `targetColumns`.
89
+ *
90
+ * Parses the existing SELECT clause to build an alias→expression map,
91
+ * then emits columns in `targetColumns` order. Columns that came from
92
+ * a `*` expansion are emitted as bare names; aliased expressions (e.g.
93
+ * `_skills as skills`) are preserved with their original expression.
94
+ */
95
+ export function rewriteSelectColumns(query, targetColumns) {
96
+ const trimmed = query.trimEnd();
97
+ const upper = trimmed.toUpperCase();
98
+ // Scan for top-level SELECT and FROM positions (outside parens and strings)
99
+ let selectPos = -1;
100
+ let fromPos = -1;
101
+ let depth = 0;
102
+ for (let i = 0; i < trimmed.length; i++) {
103
+ const ch = trimmed[i];
104
+ if (ch === '(') {
105
+ depth++;
106
+ continue;
107
+ }
108
+ if (ch === ')') {
109
+ depth--;
110
+ continue;
111
+ }
112
+ if (ch === "'") {
113
+ i++;
114
+ while (i < trimmed.length && trimmed[i] !== "'") {
115
+ if (trimmed[i] === '\\')
116
+ i++;
117
+ i++;
118
+ }
119
+ continue;
120
+ }
121
+ if (depth !== 0)
122
+ continue;
123
+ if (i > 0 && /\S/.test(trimmed[i - 1] ?? ''))
124
+ continue;
125
+ const rest = upper.slice(i);
126
+ if (selectPos === -1 && rest.startsWith('SELECT') && (i + 6 >= trimmed.length || /\s/.test(trimmed[i + 6] ?? ''))) {
127
+ selectPos = i;
128
+ }
129
+ else if (selectPos !== -1 && fromPos === -1 && rest.startsWith('FROM') && (i + 4 >= trimmed.length || /\s/.test(trimmed[i + 4] ?? ''))) {
130
+ fromPos = i;
131
+ }
132
+ }
133
+ if (selectPos === -1 || fromPos === -1)
134
+ return query;
135
+ const projStart = selectPos + 6;
136
+ const projText = trimmed.slice(projStart, fromPos).trim();
137
+ // Split projection by top-level commas
138
+ const items = [];
139
+ let itemStart = 0;
140
+ depth = 0;
141
+ for (let i = 0; i < projText.length; i++) {
142
+ const ch = projText[i];
143
+ if (ch === '(') {
144
+ depth++;
145
+ continue;
146
+ }
147
+ if (ch === ')') {
148
+ depth--;
149
+ continue;
150
+ }
151
+ if (ch === "'") {
152
+ i++;
153
+ while (i < projText.length && projText[i] !== "'") {
154
+ if (projText[i] === '\\')
155
+ i++;
156
+ i++;
157
+ }
158
+ continue;
159
+ }
160
+ if (depth === 0 && ch === ',') {
161
+ items.push(projText.slice(itemStart, i).trim());
162
+ itemStart = i + 1;
163
+ }
164
+ }
165
+ items.push(projText.slice(itemStart).trim());
166
+ // Build alias → expression map from non-star items
167
+ const aliasMap = new Map();
168
+ for (const item of items) {
169
+ if (item === '*')
170
+ continue;
171
+ const itemUpper = item.toUpperCase();
172
+ let asPos = -1;
173
+ let d = 0;
174
+ for (let i = 0; i < item.length; i++) {
175
+ const ch = item[i];
176
+ if (ch === '(') {
177
+ d++;
178
+ continue;
179
+ }
180
+ if (ch === ')') {
181
+ d--;
182
+ continue;
183
+ }
184
+ if (ch === "'") {
185
+ i++;
186
+ while (i < item.length && item[i] !== "'") {
187
+ if (item[i] === '\\')
188
+ i++;
189
+ i++;
190
+ }
191
+ continue;
192
+ }
193
+ if (d !== 0)
194
+ continue;
195
+ if (i > 0 && /\S/.test(item[i - 1] ?? ''))
196
+ continue;
197
+ const rest = itemUpper.slice(i);
198
+ if (rest.startsWith('AS') && (i + 2 >= item.length || /\s/.test(item[i + 2] ?? ''))) {
199
+ asPos = i;
200
+ }
201
+ }
202
+ if (asPos !== -1) {
203
+ const alias = item.slice(asPos + 2).trim();
204
+ aliasMap.set(alias, item);
205
+ }
206
+ }
207
+ // Emit columns in target order
208
+ const rewrittenCols = targetColumns.map(col => aliasMap.get(col) ?? col);
209
+ const before = trimmed.slice(0, projStart);
210
+ const after = trimmed.slice(fromPos);
211
+ return `${before} ${rewrittenCols.join(', ')}\n${after}`;
212
+ }
14
213
  function buildChunkSqlTemplate(chunk) {
214
+ const header = `/* chkit backfill plan=${chunk.planId} chunk=${chunk.chunkId} token=${chunk.token} */`;
215
+ const settings = buildSettingsClause(chunk.token);
216
+ if (chunk.mvAsQuery) {
217
+ const filtered = injectTimeFilter(chunk.mvAsQuery, chunk.timeColumn, chunk.from, chunk.to);
218
+ if (chunk.targetColumns?.length) {
219
+ const reordered = rewriteSelectColumns(filtered, chunk.targetColumns);
220
+ return [header, `INSERT INTO ${chunk.target}`, reordered, settings].join('\n');
221
+ }
222
+ return [header, `INSERT INTO ${chunk.target}`, filtered, settings].join('\n');
223
+ }
15
224
  return [
16
- `/* chkit backfill plan=${chunk.planId} chunk=${chunk.chunkId} token=${chunk.token} */`,
225
+ header,
17
226
  `INSERT INTO ${chunk.target}`,
18
227
  `SELECT *`,
19
228
  `FROM ${chunk.target}`,
20
- `WHERE ${chunk.timeColumn} >= toDateTime('${chunk.from}')`,
21
- ` AND ${chunk.timeColumn} < toDateTime('${chunk.to}');`,
229
+ `WHERE ${chunk.timeColumn} >= parseDateTimeBestEffort('${chunk.from}')`,
230
+ ` AND ${chunk.timeColumn} < parseDateTimeBestEffort('${chunk.to}')`,
231
+ settings,
22
232
  ].join('\n');
23
233
  }
24
234
  function buildChunks(input) {
@@ -49,6 +259,8 @@ function buildChunks(input) {
49
259
  from: chunkFrom,
50
260
  to: chunkTo,
51
261
  timeColumn: input.timeColumn,
262
+ mvAsQuery: input.mvAsQuery,
263
+ targetColumns: input.targetColumns,
52
264
  }),
53
265
  });
54
266
  current = next;
@@ -66,14 +278,40 @@ export async function buildBackfillPlan(input) {
66
278
  limits: input.options.limits,
67
279
  forceLargeWindow: input.forceLargeWindow ?? false,
68
280
  });
69
- const planId = hashId(planIdentity(input.target, input.from, input.to, chunkHours, input.timeColumn)).slice(0, 16);
281
+ const env = computeEnvironmentFingerprint(input.clickhouse);
282
+ const planId = hashId(planIdentity(input.target, input.from, input.to, chunkHours, input.timeColumn, env?.fingerprint)).slice(0, 16);
70
283
  const stateDir = computeBackfillStateDir(input.config, input.configPath, input.options);
71
284
  const paths = backfillPaths(stateDir, planId);
285
+ let strategy = 'table';
286
+ let mvAsQuery;
287
+ let targetColumns;
288
+ const [database, table] = input.target.split('.');
289
+ if (database && table) {
290
+ try {
291
+ const definitions = await loadSchemaDefinitions(input.config.schema, {
292
+ cwd: dirname(input.configPath),
293
+ });
294
+ const mv = findMvForTarget(definitions, database, table);
295
+ if (mv) {
296
+ strategy = 'mv_replay';
297
+ mvAsQuery = mv.as;
298
+ const tableDef = definitions.find((d) => d.kind === 'table' && d.database === database && d.name === table);
299
+ if (tableDef && tableDef.kind === 'table') {
300
+ targetColumns = tableDef.columns.map((c) => c.name);
301
+ }
302
+ }
303
+ }
304
+ catch {
305
+ // Schema load failed — fall back to plain table strategy
306
+ }
307
+ }
72
308
  const plan = {
73
309
  planId,
74
310
  target: input.target,
75
311
  createdAt: '1970-01-01T00:00:00.000Z',
76
312
  status: 'planned',
313
+ strategy,
314
+ ...(env ? { environment: env } : {}),
77
315
  from: input.from,
78
316
  to: input.to,
79
317
  chunks: buildChunks({
@@ -84,6 +322,8 @@ export async function buildBackfillPlan(input) {
84
322
  chunkHours,
85
323
  requireIdempotencyToken: input.options.defaults.requireIdempotencyToken,
86
324
  timeColumn: input.timeColumn,
325
+ mvAsQuery,
326
+ targetColumns,
87
327
  }),
88
328
  options: {
89
329
  chunkHours,
@@ -95,6 +335,14 @@ export async function buildBackfillPlan(input) {
95
335
  policy: input.options.policy,
96
336
  limits: input.options.limits,
97
337
  };
338
+ if (input.force) {
339
+ for (const filePath of [paths.planPath, paths.runPath, paths.eventPath]) {
340
+ await unlink(filePath).catch((err) => {
341
+ if (err.code !== 'ENOENT')
342
+ throw err;
343
+ });
344
+ }
345
+ }
98
346
  const existing = await readExistingPlan(paths.planPath);
99
347
  if (existing) {
100
348
  if (stableSerialize(existing) !== stableSerialize(plan)) {
@@ -1 +1 @@
1
- {"version":3,"file":"planner.js","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAG3B,MAAM,YAAY,CAAA;AAmFnB,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CA4SxF;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,0BAA0B,CAOxF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAG3B,MAAM,YAAY,CAAA;AA+GnB,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CA+SxF;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,0BAA0B,CAOxF"}