@chkit/plugin-backfill 0.1.0-beta.15 → 0.1.0-beta.17

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;AA+GnB,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAkPxF;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;AAiHnB,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CA+SxF;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,0BAA0B,CAOxF"}
package/dist/plugin.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import process from 'node:process';
2
2
  import { createInterface } from 'node:readline/promises';
3
+ import { createClickHouseExecutor } from '@chkit/clickhouse';
3
4
  import { wrapPluginRun } from '@chkit/core';
4
5
  import { PLAN_FLAGS, PLAN_ID_FLAGS, RESUME_FLAGS, RUN_FLAGS, parseCancelArgs, parseDoctorArgs, parsePlanArgs, parseResumeArgs, parseRunArgs, parseStatusArgs, } from './args.js';
5
6
  import { loadTimeColumnInfo } from './detect.js';
@@ -20,6 +21,7 @@ async function resolveTimeColumn(input) {
20
21
  throw new BackfillConfigError(`Cannot determine time column for ${input.target}. Specify --time-column <column>, set plugins.backfill.timeColumn in table schema, or set defaults.timeColumn in plugin config.`);
21
22
  }
22
23
  if (input.jsonMode) {
24
+ // biome-ignore lint/style/noNonNullAssertion: length checked above
23
25
  return candidates[0].name;
24
26
  }
25
27
  if (candidates.length === 1) {
@@ -56,6 +58,7 @@ async function selectFromCandidates(candidates, target) {
56
58
  if (!Number.isInteger(index) || index < 0 || index >= candidates.length) {
57
59
  throw new BackfillConfigError(`Invalid selection. Specify --time-column <column> explicitly.`);
58
60
  }
61
+ // biome-ignore lint/style/noNonNullAssertion: index bounds checked above
59
62
  return candidates[index].name;
60
63
  }
61
64
  finally {
@@ -112,6 +115,8 @@ export function createBackfillPlugin(options = {}) {
112
115
  options: effectiveOptions,
113
116
  chunkHours: parsed.chunkHours,
114
117
  forceLargeWindow: parsed.forceLargeWindow,
118
+ force: parsed.force,
119
+ clickhouse: context.config.clickhouse,
115
120
  });
116
121
  const payload = planPayload(output);
117
122
  if (context.jsonMode) {
@@ -133,33 +138,59 @@ export function createBackfillPlugin(options = {}) {
133
138
  label: 'Backfill run',
134
139
  async run({ context, effectiveOptions }) {
135
140
  const parsed = parseRunArgs(context.flags);
136
- const output = await executeBackfillRun({
137
- planId: parsed.planId,
138
- config: context.config,
139
- configPath: context.configPath,
140
- options: effectiveOptions,
141
- execution: {
142
- replayDone: parsed.replayDone,
143
- replayFailed: parsed.replayFailed,
144
- forceOverlap: parsed.forceOverlap,
145
- forceCompatibility: parsed.forceCompatibility,
146
- simulation: {
147
- failChunkId: parsed.simulateFailChunk,
148
- failCount: parsed.simulateFailCount,
141
+ const db = context.config.clickhouse
142
+ ? createClickHouseExecutor(context.config.clickhouse)
143
+ : undefined;
144
+ try {
145
+ const output = await executeBackfillRun({
146
+ planId: parsed.planId,
147
+ config: context.config,
148
+ configPath: context.configPath,
149
+ options: effectiveOptions,
150
+ execution: {
151
+ replayDone: parsed.replayDone,
152
+ replayFailed: parsed.replayFailed,
153
+ forceOverlap: parsed.forceOverlap,
154
+ forceCompatibility: parsed.forceCompatibility,
155
+ forceEnvironment: parsed.forceEnvironment,
156
+ simulation: {
157
+ failChunkId: parsed.simulateFailChunk,
158
+ failCount: parsed.simulateFailCount,
159
+ },
149
160
  },
150
- },
151
- });
152
- const payload = {
153
- ...runPayload(output),
154
- command: 'run',
155
- };
156
- if (context.jsonMode) {
157
- context.print(payload);
161
+ execute: db ? async (sql) => { await db.execute(sql); return undefined; } : undefined,
162
+ clickhouse: context.config.clickhouse,
163
+ });
164
+ const payload = {
165
+ ...runPayload(output),
166
+ command: 'run',
167
+ };
168
+ if (payload.noop) {
169
+ if (!context.jsonMode) {
170
+ context.print(`Plan ${payload.planId} is already completed (${payload.chunkCounts.done}/${payload.chunkCounts.total} chunks done). Nothing to do.`);
171
+ }
172
+ else {
173
+ context.print(payload);
174
+ }
175
+ return 0;
176
+ }
177
+ if (context.jsonMode) {
178
+ context.print(payload);
179
+ }
180
+ else {
181
+ let line = `Backfill run ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total}, ${payload.rowsWritten} rows written)`;
182
+ if (payload.lastError)
183
+ line += ` \u2014 ${payload.lastError}`;
184
+ context.print(line);
185
+ if (payload.status === 'completed' && payload.rowsWritten === 0) {
186
+ context.print('Warning: 0 rows written across all chunks. Verify that source data exists in the time range and passes the query\'s WHERE filters.');
187
+ }
188
+ }
189
+ return payload.ok ? 0 : 1;
158
190
  }
159
- else {
160
- context.print(`Backfill run ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total})`);
191
+ finally {
192
+ await db?.close();
161
193
  }
162
- return payload.ok ? 0 : 1;
163
194
  },
164
195
  }),
165
196
  },
@@ -172,29 +203,55 @@ export function createBackfillPlugin(options = {}) {
172
203
  label: 'Backfill resume',
173
204
  async run({ context, effectiveOptions }) {
174
205
  const parsed = parseResumeArgs(context.flags);
175
- const output = await resumeBackfillRun({
176
- planId: parsed.planId,
177
- config: context.config,
178
- configPath: context.configPath,
179
- options: effectiveOptions,
180
- execution: {
181
- replayDone: parsed.replayDone,
182
- replayFailed: parsed.replayFailed,
183
- forceOverlap: parsed.forceOverlap,
184
- forceCompatibility: parsed.forceCompatibility,
185
- },
186
- });
187
- const payload = {
188
- ...runPayload(output),
189
- command: 'resume',
190
- };
191
- if (context.jsonMode) {
192
- context.print(payload);
206
+ const db = context.config.clickhouse
207
+ ? createClickHouseExecutor(context.config.clickhouse)
208
+ : undefined;
209
+ try {
210
+ const output = await resumeBackfillRun({
211
+ planId: parsed.planId,
212
+ config: context.config,
213
+ configPath: context.configPath,
214
+ options: effectiveOptions,
215
+ execution: {
216
+ replayDone: parsed.replayDone,
217
+ replayFailed: parsed.replayFailed,
218
+ forceOverlap: parsed.forceOverlap,
219
+ forceCompatibility: parsed.forceCompatibility,
220
+ forceEnvironment: parsed.forceEnvironment,
221
+ },
222
+ execute: db ? async (sql) => { await db.execute(sql); return undefined; } : undefined,
223
+ clickhouse: context.config.clickhouse,
224
+ });
225
+ const payload = {
226
+ ...runPayload(output),
227
+ command: 'resume',
228
+ };
229
+ if (payload.noop) {
230
+ if (!context.jsonMode) {
231
+ context.print(`Plan ${payload.planId} is already completed (${payload.chunkCounts.done}/${payload.chunkCounts.total} chunks done). Nothing to do.`);
232
+ }
233
+ else {
234
+ context.print(payload);
235
+ }
236
+ return 0;
237
+ }
238
+ if (context.jsonMode) {
239
+ context.print(payload);
240
+ }
241
+ else {
242
+ let line = `Backfill resume ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total}, ${payload.rowsWritten} rows written)`;
243
+ if (payload.lastError)
244
+ line += ` \u2014 ${payload.lastError}`;
245
+ context.print(line);
246
+ if (payload.status === 'completed' && payload.rowsWritten === 0) {
247
+ context.print('Warning: 0 rows written across all chunks. Verify that source data exists in the time range and passes the query\'s WHERE filters.');
248
+ }
249
+ }
250
+ return payload.ok ? 0 : 1;
193
251
  }
194
- else {
195
- context.print(`Backfill resume ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total})`);
252
+ finally {
253
+ await db?.close();
196
254
  }
197
- return payload.ok ? 0 : 1;
198
255
  },
199
256
  }),
200
257
  },
@@ -218,7 +275,13 @@ export function createBackfillPlugin(options = {}) {
218
275
  context.print(payload);
219
276
  }
220
277
  else {
221
- context.print(`Backfill status ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total}, failed=${payload.chunkCounts.failed})`);
278
+ let line = `Backfill status ${payload.planId}: ${payload.status} (done=${payload.chunkCounts.done}/${payload.chunkCounts.total}, failed=${payload.chunkCounts.failed}, ${payload.rowsWritten} rows written)`;
279
+ if (payload.lastError)
280
+ line += ` \u2014 ${payload.lastError}`;
281
+ context.print(line);
282
+ if (payload.status === 'completed' && payload.rowsWritten === 0) {
283
+ context.print('Warning: 0 rows written across all chunks. Verify that source data exists in the time range and passes the query\'s WHERE filters.');
284
+ }
222
285
  }
223
286
  return payload.ok ? 0 : 1;
224
287
  },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AASrB,KAAK,UAAU,iBAAiB,CAAC,KAOhC;IACC,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC,SAAS,CAAA;IAE3C,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CAC/D,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,UAAU,CACjB,CAAA;IAED,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAA;IAC7C,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAA;IAE/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,CAC3B,oCAAoC,KAAK,CAAC,MAAM,iIAAiI,CAClL,CAAA;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAA;IAC5B,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;AACvD,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,SAA8B,EAC9B,MAAc;IAEd,MAAM,KAAK,GAAG,GAAG,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;IAC9G,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,MAAM,KAAK,KAAK,SAAS,SAAS,CAAC,IAAI,WAAW,CAAC,CAAA;QAClH,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,mBAAmB,CAC3B,uEAAuE,CACxE,CAAA;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,UAAiC,EACjC,MAAc;IAEd,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5E,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,uCAAuC,MAAM,GAAG,CAAC,CAAA;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,UAAU,CAAC,MAAM,KAAK,CAAC,CAAA;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACxE,MAAM,IAAI,mBAAmB,CAC3B,+DAA+D,CAChE,CAAA;QACH,CAAC;QACD,OAAO,UAAU,CAAC,KAAK,CAAE,CAAC,IAAI,CAAA;IAChC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC;AAID,SAAS,qBAAqB,CAC5B,IAAqC,EACrC,KAOC;IAED,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE,CACvB,aAAa,CAAC;QACZ,OAAO,EAAE,KAAK,CAAC,IAAI;QACnB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,gBAAgB,EAAE,mBAAmB;QACrC,EAAE,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;YAC5D,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;YACrC,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACjD,CAAC;KACF,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAC9C,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAEzB,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,CAAC;SACd;QACD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sEAAsE;gBACnF,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,qBAAqB,CAAC,IAAI,EAAE;oBAC/B,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,eAAe;oBACtB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC3C,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC;4BACzC,SAAS,EAAE,MAAM,CAAC,UAAU;4BAC5B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;4BACnC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;4BAClC,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;yBAC3B,CAAC,CAAA;wBAEF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;4BACrC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,EAAE,EAAE,MAAM,CAAC,EAAE;4BACb,UAAU;4BACV,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;yBAC1C,CAAC,CAAA;wBAEF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;wBACnC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CACX,iBAAiB,OAAO,CAAC,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,cAAc,OAAO,CAAC,UAAU,mBAAmB,OAAO,CAAC,UAAU,QAAQ,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CACnN,CAAA;wBACH,CAAC;wBAED,OAAO,CAAC,CAAA;oBACV,CAAC;iBACF,CAAC;aACH;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,6DAA6D;gBAC1E,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,qBAAqB,CAAC,IAAI,EAAE;oBAC/B,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,cAAc;oBACrB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC1C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;4BACtC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,OAAO,EAAE,gBAAgB;4BACzB,SAAS,EAAE;gCACT,UAAU,EAAE,MAAM,CAAC,UAAU;gCAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gCACjC,YAAY,EAAE,MAAM,CAAC,YAAY;gCACjC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gCAC7C,UAAU,EAAE;oCACV,WAAW,EAAE,MAAM,CAAC,iBAAiB;oCACrC,SAAS,EAAE,MAAM,CAAC,iBAAiB;iCACpC;6BACF;yBACF,CAAC,CAAA;wBAEF,MAAM,OAAO,GAAG;4BACd,GAAG,UAAU,CAAC,MAAM,CAAC;4BACrB,OAAO,EAAE,KAAc;yBACxB,CAAA;wBACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CACX,gBAAgB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CACpH,CAAA;wBACH,CAAC;wBACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3B,CAAC;iBACF,CAAC;aACH;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4CAA4C;gBACzD,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE,qBAAqB,CAAC,IAAI,EAAE;oBAC/B,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC7C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;4BACrC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,OAAO,EAAE,gBAAgB;4BACzB,SAAS,EAAE;gCACT,UAAU,EAAE,MAAM,CAAC,UAAU;gCAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gCACjC,YAAY,EAAE,MAAM,CAAC,YAAY;gCACjC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;6BAC9C;yBACF,CAAC,CAAA;wBAEF,MAAM,OAAO,GAAG;4BACd,GAAG,UAAU,CAAC,MAAM,CAAC;4BACrB,OAAO,EAAE,QAAiB;yBAC3B,CAAA;wBACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CACX,mBAAmB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CACvH,CAAA;wBACH,CAAC;wBACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3B,CAAC;iBACF,CAAC;aACH;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;gBACpE,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,qBAAqB,CAAC,IAAI,EAAE;oBAC/B,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC7C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;4BACtC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,OAAO,EAAE,gBAAgB;yBAC1B,CAAC,CAAA;wBACF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;wBACtC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CACX,mBAAmB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAC7J,CAAA;wBACH,CAAC;wBACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3B,CAAC;iBACF,CAAC;aACH;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wEAAwE;gBACrF,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,qBAAqB,CAAC,IAAI,EAAE;oBAC/B,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC7C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;4BACtC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,OAAO,EAAE,gBAAgB;yBAC1B,CAAC,CAAA;wBACF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;wBACtC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CACX,mBAAmB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CACvH,CAAA;wBACH,CAAC;wBACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3B,CAAC;iBACF,CAAC;aACH;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0EAA0E;gBACvF,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,qBAAqB,CAAC,IAAI,EAAE;oBAC/B,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE;wBACrC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAC7C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;4BAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,OAAO,EAAE,gBAAgB;yBAC1B,CAAC,CAAA;wBACF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;wBACrC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBACxB,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CACX,mBAAmB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/G,CAAA;4BACD,KAAK,MAAM,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gCACrD,OAAO,CAAC,KAAK,CAAC,KAAK,cAAc,EAAE,CAAC,CAAA;4BACtC,CAAC;wBACH,CAAC;wBACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3B,CAAC;iBACF,CAAC;aACH;SACF;QACD,KAAK,EAAE;YACL,cAAc,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE;gBACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;gBACjD,mBAAmB,CAAC,MAAM,CAAC,CAAA;YAC7B,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE;gBAC3D,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;gBAC3D,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;gBACrC,OAAO,qBAAqB,CAAC;oBAC3B,UAAU;oBACV,MAAM;oBACN,OAAO,EAAE,gBAAgB;iBAC1B,CAAC,CAAA;YACJ,CAAC;YACD,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;gBAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACnE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;oBACd,KAAK,CAAC,oBAAoB,CAAC,CAAA;oBAC3B,OAAM;gBACR,CAAC;gBACD,KAAK,CACH,yBAAyB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1F,CAAA;YACH,CAAC;SACF;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,UAAiC,EAAE;IAC1D,OAAO;QACL,MAAM,EAAE,oBAAoB,EAAE;QAC9B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI;QACb,OAAO;KACR,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -11,6 +11,13 @@ export declare function executeBackfillRun(input: {
11
11
  config: Pick<ResolvedChxConfig, 'metaDir'>;
12
12
  options: NormalizedBackfillPluginOptions;
13
13
  execution?: BackfillExecutionOptions;
14
+ execute?: (sql: string) => Promise<undefined | {
15
+ rowsWritten?: number;
16
+ }>;
17
+ clickhouse?: {
18
+ url: string;
19
+ database: string;
20
+ };
14
21
  }): Promise<ExecuteBackfillRunOutput>;
15
22
  export declare function resumeBackfillRun(input: {
16
23
  planId: string;
@@ -18,6 +25,13 @@ export declare function resumeBackfillRun(input: {
18
25
  config: Pick<ResolvedChxConfig, 'metaDir'>;
19
26
  options: NormalizedBackfillPluginOptions;
20
27
  execution?: BackfillExecutionOptions;
28
+ execute?: (sql: string) => Promise<undefined | {
29
+ rowsWritten?: number;
30
+ }>;
31
+ clickhouse?: {
32
+ url: string;
33
+ database: string;
34
+ };
21
35
  }): Promise<ExecuteBackfillRunOutput>;
22
36
  export declare function getBackfillStatus(input: {
23
37
  planId: string;