@chkit/plugin-backfill 0.1.2-beta.7 → 0.2.0-beta.8
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/async-backfill.d.ts +1 -1
- package/dist/async-backfill.d.ts.map +1 -1
- package/dist/async-backfill.js +6 -5
- package/dist/async-backfill.js.map +1 -1
- package/package.json +3 -3
- package/dist/args.d.ts +0 -111
- package/dist/args.d.ts.map +0 -1
- package/dist/args.js +0 -146
- package/dist/args.js.map +0 -1
- package/dist/chunking/build.d.ts +0 -11
- package/dist/chunking/build.d.ts.map +0 -1
- package/dist/chunking/build.js +0 -51
- package/dist/chunking/build.js.map +0 -1
- package/dist/chunking/introspect.d.ts +0 -40
- package/dist/chunking/introspect.d.ts.map +0 -1
- package/dist/chunking/introspect.js +0 -187
- package/dist/chunking/introspect.js.map +0 -1
- package/dist/chunking/splitter.d.ts +0 -20
- package/dist/chunking/splitter.d.ts.map +0 -1
- package/dist/chunking/splitter.js +0 -76
- package/dist/chunking/splitter.js.map +0 -1
- package/dist/runtime.d.ts +0 -54
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -517
- package/dist/runtime.js.map +0 -1
package/dist/async-backfill.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-backfill.d.ts","sourceRoot":"","sources":["../src/async-backfill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"async-backfill.d.ts","sourceRoot":"","sources":["../src/async-backfill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,kBAAkB,EAAoB,MAAM,mBAAmB,CAAA;AAGpG,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;IACjF,6EAA6E;IAC7E,UAAU,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACzE,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,gDAAgD;IAChD,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAEjE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAuED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAuF3B;AA2CD,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAsGvF"}
|
package/dist/async-backfill.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { setTimeout as sleep } from 'node:timers/promises';
|
|
2
|
+
import { observableSystemTable } from '@chkit/clickhouse';
|
|
1
3
|
import pMap from 'p-map';
|
|
2
|
-
function sleep(ms) {
|
|
3
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
4
|
-
}
|
|
5
4
|
/** Build the deterministic query ID for a chunk. */
|
|
6
5
|
function chunkQueryId(planId, chunkId) {
|
|
7
6
|
return `backfill-${planId}-${chunkId}`;
|
|
@@ -81,10 +80,12 @@ export async function syncProgress(executor, planId, chunks, progress) {
|
|
|
81
80
|
return progress;
|
|
82
81
|
// Escape single-quotes in the prefix for safe SQL embedding
|
|
83
82
|
const safePrefix = prefix.replace(/'/g, "''").replace(/%/g, '\\%').replace(/_/g, '\\_');
|
|
84
|
-
const
|
|
83
|
+
const processesFrom = observableSystemTable(executor, 'processes');
|
|
84
|
+
const queryLogFrom = observableSystemTable(executor, 'query_log');
|
|
85
|
+
const runningRows = await executor.query(`SELECT query_id FROM ${processesFrom} WHERE user = currentUser() AND query_id LIKE '${safePrefix}%' SETTINGS skip_unavailable_shards = 1`);
|
|
85
86
|
const runningSet = new Set(runningRows.map((r) => r.query_id));
|
|
86
87
|
const logRows = await executor.query(`SELECT query_id, type, written_rows, written_bytes, query_duration_ms, exception
|
|
87
|
-
FROM
|
|
88
|
+
FROM ${queryLogFrom}
|
|
88
89
|
WHERE user = currentUser()
|
|
89
90
|
AND query_id LIKE '${safePrefix}%'
|
|
90
91
|
AND type IN ('QueryFinish', 'ExceptionWhileProcessing')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-backfill.js","sourceRoot":"","sources":["../src/async-backfill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"async-backfill.js","sourceRoot":"","sources":["../src/async-backfill.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chkit/plugin-backfill",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-beta.8",
|
|
4
4
|
"description": "Time-windowed data backfill with checkpoints for chkit",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ObsessionDB",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"clean": "rm -rf dist"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@chkit/clickhouse": "0.
|
|
52
|
-
"@chkit/core": "0.
|
|
51
|
+
"@chkit/clickhouse": "0.2.0-beta.8",
|
|
52
|
+
"@chkit/core": "0.2.0-beta.8",
|
|
53
53
|
"@logtape/logtape": "^2.0.5",
|
|
54
54
|
"p-map": "^7.0.4",
|
|
55
55
|
"zod": "^4.3.6"
|
package/dist/args.d.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { type ParsedFlags } from '@chkit/core';
|
|
2
|
-
import type { ParsedCancelArgs, ParsedDoctorArgs, ParsedPlanArgs, ParsedResumeArgs, ParsedRunArgs, ParsedStatusArgs } from './types.js';
|
|
3
|
-
export declare const PLAN_FLAGS: readonly [{
|
|
4
|
-
readonly name: "--target";
|
|
5
|
-
readonly type: "string";
|
|
6
|
-
readonly description: "Target table (database.table)";
|
|
7
|
-
readonly placeholder: "<database.table>";
|
|
8
|
-
}, {
|
|
9
|
-
readonly name: "--from";
|
|
10
|
-
readonly type: "string";
|
|
11
|
-
readonly description: "Start timestamp";
|
|
12
|
-
readonly placeholder: "<timestamp>";
|
|
13
|
-
}, {
|
|
14
|
-
readonly name: "--to";
|
|
15
|
-
readonly type: "string";
|
|
16
|
-
readonly description: "End timestamp";
|
|
17
|
-
readonly placeholder: "<timestamp>";
|
|
18
|
-
}, {
|
|
19
|
-
readonly name: "--chunk-hours";
|
|
20
|
-
readonly type: "string";
|
|
21
|
-
readonly description: "Hours per chunk";
|
|
22
|
-
readonly placeholder: "<hours>";
|
|
23
|
-
}, {
|
|
24
|
-
readonly name: "--time-column";
|
|
25
|
-
readonly type: "string";
|
|
26
|
-
readonly description: "Time column for WHERE clause";
|
|
27
|
-
readonly placeholder: "<column>";
|
|
28
|
-
}, {
|
|
29
|
-
readonly name: "--force-large-window";
|
|
30
|
-
readonly type: "boolean";
|
|
31
|
-
readonly description: "Allow large time windows without confirmation";
|
|
32
|
-
}, {
|
|
33
|
-
readonly name: "--force";
|
|
34
|
-
readonly type: "boolean";
|
|
35
|
-
readonly description: "Delete existing plan and regenerate from scratch";
|
|
36
|
-
}];
|
|
37
|
-
export declare const RUN_FLAGS: readonly [{
|
|
38
|
-
readonly name: "--plan-id";
|
|
39
|
-
readonly type: "string";
|
|
40
|
-
readonly description: "Plan ID to execute";
|
|
41
|
-
readonly placeholder: "<id>";
|
|
42
|
-
}, {
|
|
43
|
-
readonly name: "--replay-done";
|
|
44
|
-
readonly type: "boolean";
|
|
45
|
-
readonly description: "Re-execute already completed chunks";
|
|
46
|
-
}, {
|
|
47
|
-
readonly name: "--replay-failed";
|
|
48
|
-
readonly type: "boolean";
|
|
49
|
-
readonly description: "Re-execute failed chunks";
|
|
50
|
-
}, {
|
|
51
|
-
readonly name: "--force-overlap";
|
|
52
|
-
readonly type: "boolean";
|
|
53
|
-
readonly description: "Allow overlapping runs";
|
|
54
|
-
}, {
|
|
55
|
-
readonly name: "--force-compatibility";
|
|
56
|
-
readonly type: "boolean";
|
|
57
|
-
readonly description: "Skip compatibility checks";
|
|
58
|
-
}, {
|
|
59
|
-
readonly name: "--force-environment";
|
|
60
|
-
readonly type: "boolean";
|
|
61
|
-
readonly description: "Skip environment mismatch checks";
|
|
62
|
-
}, {
|
|
63
|
-
readonly name: "--simulate-fail-chunk";
|
|
64
|
-
readonly type: "string";
|
|
65
|
-
readonly description: "Simulate failure on chunk";
|
|
66
|
-
readonly placeholder: "<chunk-id>";
|
|
67
|
-
}, {
|
|
68
|
-
readonly name: "--simulate-fail-count";
|
|
69
|
-
readonly type: "string";
|
|
70
|
-
readonly description: "Number of simulated failures";
|
|
71
|
-
readonly placeholder: "<count>";
|
|
72
|
-
}];
|
|
73
|
-
export declare const RESUME_FLAGS: readonly [{
|
|
74
|
-
readonly name: "--plan-id";
|
|
75
|
-
readonly type: "string";
|
|
76
|
-
readonly description: "Plan ID to resume";
|
|
77
|
-
readonly placeholder: "<id>";
|
|
78
|
-
}, {
|
|
79
|
-
readonly name: "--replay-done";
|
|
80
|
-
readonly type: "boolean";
|
|
81
|
-
readonly description: "Re-execute already completed chunks";
|
|
82
|
-
}, {
|
|
83
|
-
readonly name: "--replay-failed";
|
|
84
|
-
readonly type: "boolean";
|
|
85
|
-
readonly description: "Re-execute failed chunks";
|
|
86
|
-
}, {
|
|
87
|
-
readonly name: "--force-overlap";
|
|
88
|
-
readonly type: "boolean";
|
|
89
|
-
readonly description: "Allow overlapping runs";
|
|
90
|
-
}, {
|
|
91
|
-
readonly name: "--force-compatibility";
|
|
92
|
-
readonly type: "boolean";
|
|
93
|
-
readonly description: "Skip compatibility checks";
|
|
94
|
-
}, {
|
|
95
|
-
readonly name: "--force-environment";
|
|
96
|
-
readonly type: "boolean";
|
|
97
|
-
readonly description: "Skip environment mismatch checks";
|
|
98
|
-
}];
|
|
99
|
-
export declare const PLAN_ID_FLAGS: readonly [{
|
|
100
|
-
readonly name: "--plan-id";
|
|
101
|
-
readonly type: "string";
|
|
102
|
-
readonly description: "Plan ID";
|
|
103
|
-
readonly placeholder: "<id>";
|
|
104
|
-
}];
|
|
105
|
-
export declare function parsePlanArgs(flags: ParsedFlags): ParsedPlanArgs;
|
|
106
|
-
export declare function parseRunArgs(flags: ParsedFlags): ParsedRunArgs;
|
|
107
|
-
export declare function parseResumeArgs(flags: ParsedFlags): ParsedResumeArgs;
|
|
108
|
-
export declare function parseStatusArgs(flags: ParsedFlags): ParsedStatusArgs;
|
|
109
|
-
export declare function parseCancelArgs(flags: ParsedFlags): ParsedCancelArgs;
|
|
110
|
-
export declare function parseDoctorArgs(flags: ParsedFlags): ParsedDoctorArgs;
|
|
111
|
-
//# sourceMappingURL=args.d.ts.map
|
package/dist/args.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAGvE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQZ,CAAA;AAEX,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASX,CAAA;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAOd,CAAA;AAEX,eAAO,MAAM,aAAa;;;;;EAEf,CAAA;AAgCX,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAgChE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAgC9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAUpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAKpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAEpE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAEpE"}
|
package/dist/args.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { defineFlags, typedFlags } from '@chkit/core';
|
|
2
|
-
import { BackfillConfigError } from './errors.js';
|
|
3
|
-
export const PLAN_FLAGS = defineFlags([
|
|
4
|
-
{ name: '--target', type: 'string', description: 'Target table (database.table)', placeholder: '<database.table>' },
|
|
5
|
-
{ name: '--from', type: 'string', description: 'Start timestamp', placeholder: '<timestamp>' },
|
|
6
|
-
{ name: '--to', type: 'string', description: 'End timestamp', placeholder: '<timestamp>' },
|
|
7
|
-
{ name: '--chunk-hours', type: 'string', description: 'Hours per chunk', placeholder: '<hours>' },
|
|
8
|
-
{ name: '--time-column', type: 'string', description: 'Time column for WHERE clause', placeholder: '<column>' },
|
|
9
|
-
{ name: '--force-large-window', type: 'boolean', description: 'Allow large time windows without confirmation' },
|
|
10
|
-
{ name: '--force', type: 'boolean', description: 'Delete existing plan and regenerate from scratch' },
|
|
11
|
-
]);
|
|
12
|
-
export const RUN_FLAGS = defineFlags([
|
|
13
|
-
{ name: '--plan-id', type: 'string', description: 'Plan ID to execute', placeholder: '<id>' },
|
|
14
|
-
{ name: '--replay-done', type: 'boolean', description: 'Re-execute already completed chunks' },
|
|
15
|
-
{ name: '--replay-failed', type: 'boolean', description: 'Re-execute failed chunks' },
|
|
16
|
-
{ name: '--force-overlap', type: 'boolean', description: 'Allow overlapping runs' },
|
|
17
|
-
{ name: '--force-compatibility', type: 'boolean', description: 'Skip compatibility checks' },
|
|
18
|
-
{ name: '--force-environment', type: 'boolean', description: 'Skip environment mismatch checks' },
|
|
19
|
-
{ name: '--simulate-fail-chunk', type: 'string', description: 'Simulate failure on chunk', placeholder: '<chunk-id>' },
|
|
20
|
-
{ name: '--simulate-fail-count', type: 'string', description: 'Number of simulated failures', placeholder: '<count>' },
|
|
21
|
-
]);
|
|
22
|
-
export const RESUME_FLAGS = defineFlags([
|
|
23
|
-
{ name: '--plan-id', type: 'string', description: 'Plan ID to resume', placeholder: '<id>' },
|
|
24
|
-
{ name: '--replay-done', type: 'boolean', description: 'Re-execute already completed chunks' },
|
|
25
|
-
{ name: '--replay-failed', type: 'boolean', description: 'Re-execute failed chunks' },
|
|
26
|
-
{ name: '--force-overlap', type: 'boolean', description: 'Allow overlapping runs' },
|
|
27
|
-
{ name: '--force-compatibility', type: 'boolean', description: 'Skip compatibility checks' },
|
|
28
|
-
{ name: '--force-environment', type: 'boolean', description: 'Skip environment mismatch checks' },
|
|
29
|
-
]);
|
|
30
|
-
export const PLAN_ID_FLAGS = defineFlags([
|
|
31
|
-
{ name: '--plan-id', type: 'string', description: 'Plan ID', placeholder: '<id>' },
|
|
32
|
-
]);
|
|
33
|
-
function normalizeTimestamp(raw, flagName) {
|
|
34
|
-
const value = raw.trim();
|
|
35
|
-
if (value.length === 0) {
|
|
36
|
-
throw new BackfillConfigError(`Missing value for ${flagName}`);
|
|
37
|
-
}
|
|
38
|
-
const date = new Date(value);
|
|
39
|
-
if (Number.isNaN(date.getTime())) {
|
|
40
|
-
throw new BackfillConfigError(`Invalid timestamp for ${flagName}: ${raw}`);
|
|
41
|
-
}
|
|
42
|
-
return date.toISOString();
|
|
43
|
-
}
|
|
44
|
-
function normalizeTarget(raw) {
|
|
45
|
-
const value = raw.trim();
|
|
46
|
-
if (!/^[A-Za-z0-9_]+\.[A-Za-z0-9_]+$/.test(value)) {
|
|
47
|
-
throw new BackfillConfigError('Invalid value for --target. Expected <database.table>.');
|
|
48
|
-
}
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
|
-
function normalizePlanId(raw) {
|
|
52
|
-
const value = raw.trim();
|
|
53
|
-
if (!/^[a-f0-9]{16}$/.test(value)) {
|
|
54
|
-
throw new BackfillConfigError('Invalid value for --plan-id. Expected a 16-char lowercase hex id.');
|
|
55
|
-
}
|
|
56
|
-
return value;
|
|
57
|
-
}
|
|
58
|
-
export function parsePlanArgs(flags) {
|
|
59
|
-
const f = typedFlags(flags, PLAN_FLAGS);
|
|
60
|
-
const target = f['--target'];
|
|
61
|
-
const from = f['--from'];
|
|
62
|
-
const to = f['--to'];
|
|
63
|
-
const rawChunkHours = f['--chunk-hours'];
|
|
64
|
-
const timeColumn = f['--time-column'];
|
|
65
|
-
const forceLargeWindow = f['--force-large-window'] === true;
|
|
66
|
-
const force = f['--force'] === true;
|
|
67
|
-
let chunkHours;
|
|
68
|
-
if (rawChunkHours !== undefined) {
|
|
69
|
-
const parsed = Number(rawChunkHours);
|
|
70
|
-
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
71
|
-
throw new BackfillConfigError('Invalid value for --chunk-hours. Expected a positive number.');
|
|
72
|
-
}
|
|
73
|
-
chunkHours = parsed;
|
|
74
|
-
}
|
|
75
|
-
if (!target)
|
|
76
|
-
throw new BackfillConfigError('Missing required --target <database.table>');
|
|
77
|
-
if (!from)
|
|
78
|
-
throw new BackfillConfigError('Missing required --from <timestamp>');
|
|
79
|
-
if (!to)
|
|
80
|
-
throw new BackfillConfigError('Missing required --to <timestamp>');
|
|
81
|
-
return {
|
|
82
|
-
target: normalizeTarget(target),
|
|
83
|
-
from: normalizeTimestamp(from, '--from'),
|
|
84
|
-
to: normalizeTimestamp(to, '--to'),
|
|
85
|
-
chunkHours,
|
|
86
|
-
timeColumn: timeColumn?.trim() || undefined,
|
|
87
|
-
forceLargeWindow,
|
|
88
|
-
force,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
export function parseRunArgs(flags) {
|
|
92
|
-
const f = typedFlags(flags, RUN_FLAGS);
|
|
93
|
-
const planId = f['--plan-id'];
|
|
94
|
-
const replayDone = f['--replay-done'] === true;
|
|
95
|
-
const replayFailed = f['--replay-failed'] === true;
|
|
96
|
-
const forceOverlap = f['--force-overlap'] === true;
|
|
97
|
-
const forceCompatibility = f['--force-compatibility'] === true;
|
|
98
|
-
const forceEnvironment = f['--force-environment'] === true;
|
|
99
|
-
const simulateFailChunk = f['--simulate-fail-chunk'];
|
|
100
|
-
let simulateFailCount = 1;
|
|
101
|
-
const rawSimulateFailCount = f['--simulate-fail-count'];
|
|
102
|
-
if (rawSimulateFailCount !== undefined) {
|
|
103
|
-
const parsed = Number(rawSimulateFailCount);
|
|
104
|
-
if (!Number.isFinite(parsed) || parsed <= 0 || !Number.isInteger(parsed)) {
|
|
105
|
-
throw new BackfillConfigError('Invalid value for --simulate-fail-count. Expected integer > 0.');
|
|
106
|
-
}
|
|
107
|
-
simulateFailCount = parsed;
|
|
108
|
-
}
|
|
109
|
-
if (!planId)
|
|
110
|
-
throw new BackfillConfigError('Missing required --plan-id <id>');
|
|
111
|
-
return {
|
|
112
|
-
planId: normalizePlanId(planId),
|
|
113
|
-
replayDone,
|
|
114
|
-
replayFailed,
|
|
115
|
-
forceOverlap,
|
|
116
|
-
forceCompatibility,
|
|
117
|
-
forceEnvironment,
|
|
118
|
-
simulateFailChunk,
|
|
119
|
-
simulateFailCount,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
export function parseResumeArgs(flags) {
|
|
123
|
-
const parsed = parseRunArgs(flags);
|
|
124
|
-
return {
|
|
125
|
-
planId: parsed.planId,
|
|
126
|
-
replayDone: parsed.replayDone,
|
|
127
|
-
replayFailed: parsed.replayFailed,
|
|
128
|
-
forceOverlap: parsed.forceOverlap,
|
|
129
|
-
forceCompatibility: parsed.forceCompatibility,
|
|
130
|
-
forceEnvironment: parsed.forceEnvironment,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
export function parseStatusArgs(flags) {
|
|
134
|
-
const f = typedFlags(flags, PLAN_ID_FLAGS);
|
|
135
|
-
const planId = f['--plan-id'];
|
|
136
|
-
if (!planId)
|
|
137
|
-
throw new BackfillConfigError('Missing required --plan-id <id>');
|
|
138
|
-
return { planId: normalizePlanId(planId) };
|
|
139
|
-
}
|
|
140
|
-
export function parseCancelArgs(flags) {
|
|
141
|
-
return parseStatusArgs(flags);
|
|
142
|
-
}
|
|
143
|
-
export function parseDoctorArgs(flags) {
|
|
144
|
-
return parseStatusArgs(flags);
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=args.js.map
|
package/dist/args.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
package/dist/chunking/build.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ChunkBoundary, PartitionInfo, SortKeyInfo } from './types.js';
|
|
2
|
-
export declare function buildChunkBoundaries(input: {
|
|
3
|
-
partitions: PartitionInfo[];
|
|
4
|
-
maxChunkBytes: number;
|
|
5
|
-
sortKey?: SortKeyInfo;
|
|
6
|
-
sortKeyRanges?: Map<string, {
|
|
7
|
-
min: string;
|
|
8
|
-
max: string;
|
|
9
|
-
}>;
|
|
10
|
-
}): ChunkBoundary[];
|
|
11
|
-
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/chunking/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1D,GAAG,aAAa,EAAE,CAmDlB"}
|
package/dist/chunking/build.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { splitSortKeyRange } from './splitter.js';
|
|
2
|
-
export function buildChunkBoundaries(input) {
|
|
3
|
-
const boundaries = [];
|
|
4
|
-
for (const partition of input.partitions) {
|
|
5
|
-
if (partition.bytesOnDisk <= input.maxChunkBytes) {
|
|
6
|
-
boundaries.push({
|
|
7
|
-
partitionId: partition.partitionId,
|
|
8
|
-
estimatedBytes: partition.bytesOnDisk,
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
else if (input.sortKey && input.sortKeyRanges) {
|
|
12
|
-
const range = input.sortKeyRanges.get(partition.partitionId);
|
|
13
|
-
if (!range) {
|
|
14
|
-
// No range data — emit as single chunk
|
|
15
|
-
boundaries.push({
|
|
16
|
-
partitionId: partition.partitionId,
|
|
17
|
-
estimatedBytes: partition.bytesOnDisk,
|
|
18
|
-
});
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
// If min === max, splitting would produce empty sub-ranges; emit as single chunk
|
|
22
|
-
if (range.min === range.max) {
|
|
23
|
-
boundaries.push({
|
|
24
|
-
partitionId: partition.partitionId,
|
|
25
|
-
estimatedBytes: partition.bytesOnDisk,
|
|
26
|
-
});
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
const subCount = Math.ceil(partition.bytesOnDisk / input.maxChunkBytes);
|
|
30
|
-
const subRanges = splitSortKeyRange(input.sortKey.category, range.min, range.max, subCount);
|
|
31
|
-
const estimatedBytesPerSub = Math.ceil(partition.bytesOnDisk / subCount);
|
|
32
|
-
for (const sub of subRanges) {
|
|
33
|
-
boundaries.push({
|
|
34
|
-
partitionId: partition.partitionId,
|
|
35
|
-
sortKeyFrom: sub.from,
|
|
36
|
-
sortKeyTo: sub.to,
|
|
37
|
-
estimatedBytes: estimatedBytesPerSub,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
// No sort key info — emit as single chunk despite being oversized
|
|
43
|
-
boundaries.push({
|
|
44
|
-
partitionId: partition.partitionId,
|
|
45
|
-
estimatedBytes: partition.bytesOnDisk,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return boundaries;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/chunking/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,MAAM,UAAU,oBAAoB,CAAC,KAKpC;IACC,MAAM,UAAU,GAAoB,EAAE,CAAA;IAEtC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC;gBACd,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,cAAc,EAAE,SAAS,CAAC,WAAW;aACtC,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,uCAAuC;gBACvC,UAAU,CAAC,IAAI,CAAC;oBACd,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,cAAc,EAAE,SAAS,CAAC,WAAW;iBACtC,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YAED,iFAAiF;YACjF,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC5B,UAAU,CAAC,IAAI,CAAC;oBACd,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,cAAc,EAAE,SAAS,CAAC,WAAW;iBACtC,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAA;YACvE,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC3F,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAA;YAExE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,UAAU,CAAC,IAAI,CAAC;oBACd,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,WAAW,EAAE,GAAG,CAAC,IAAI;oBACrB,SAAS,EAAE,GAAG,CAAC,EAAE;oBACjB,cAAc,EAAE,oBAAoB;iBACrC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,UAAU,CAAC,IAAI,CAAC;gBACd,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,cAAc,EAAE,SAAS,CAAC,WAAW;aACtC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { PartitionInfo, SortKeyInfo } from './types.js';
|
|
2
|
-
export declare function queryPartitionInfo(input: {
|
|
3
|
-
database: string;
|
|
4
|
-
table: string;
|
|
5
|
-
from?: string;
|
|
6
|
-
to?: string;
|
|
7
|
-
query: <T>(sql: string) => Promise<T[]>;
|
|
8
|
-
}): Promise<PartitionInfo[]>;
|
|
9
|
-
export declare function querySortKeys(input: {
|
|
10
|
-
database: string;
|
|
11
|
-
table: string;
|
|
12
|
-
query: <T>(sql: string) => Promise<T[]>;
|
|
13
|
-
}): Promise<SortKeyInfo[]>;
|
|
14
|
-
export declare function querySortKeyInfo(input: {
|
|
15
|
-
database: string;
|
|
16
|
-
table: string;
|
|
17
|
-
query: <T>(sql: string) => Promise<T[]>;
|
|
18
|
-
}): Promise<SortKeyInfo | undefined>;
|
|
19
|
-
export declare function querySortKeyRanges(input: {
|
|
20
|
-
database: string;
|
|
21
|
-
table: string;
|
|
22
|
-
sortKeyColumn: string;
|
|
23
|
-
partitionIds: string[];
|
|
24
|
-
query: <T>(sql: string) => Promise<T[]>;
|
|
25
|
-
}): Promise<Map<string, {
|
|
26
|
-
min: string;
|
|
27
|
-
max: string;
|
|
28
|
-
}>>;
|
|
29
|
-
export declare function introspectTable(input: {
|
|
30
|
-
database: string;
|
|
31
|
-
table: string;
|
|
32
|
-
from?: string;
|
|
33
|
-
to?: string;
|
|
34
|
-
query: <T>(sql: string) => Promise<T[]>;
|
|
35
|
-
}): Promise<{
|
|
36
|
-
partitions: PartitionInfo[];
|
|
37
|
-
sortKey?: SortKeyInfo;
|
|
38
|
-
sortKeys: SortKeyInfo[];
|
|
39
|
-
}>;
|
|
40
|
-
//# sourceMappingURL=introspect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../src/chunking/introspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAkB5D,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CACxC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA+C3B;AA2FD,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CACxC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6CzB;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CACxC,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAEnC;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CACxC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAiBrD;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CACxC,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAS3F"}
|