@chkit/plugin-backfill 0.1.0-beta.20 → 0.1.0-beta.22
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/README.md +130 -0
- package/dist/async-backfill.d.ts +4 -4
- package/dist/async-backfill.d.ts.map +1 -1
- package/dist/async-backfill.js +2 -2
- package/dist/async-backfill.js.map +1 -1
- package/dist/chunking/analyze.d.ts +5 -35
- package/dist/chunking/analyze.d.ts.map +1 -1
- package/dist/chunking/analyze.js +3 -71
- package/dist/chunking/analyze.js.map +1 -1
- package/dist/chunking/boundary-codec.d.ts +4 -0
- package/dist/chunking/boundary-codec.d.ts.map +1 -0
- package/dist/chunking/boundary-codec.js +79 -0
- package/dist/chunking/boundary-codec.js.map +1 -0
- package/dist/chunking/e2e/constants.d.ts +2 -0
- package/dist/chunking/e2e/constants.d.ts.map +1 -0
- package/dist/chunking/e2e/constants.js +2 -0
- package/dist/chunking/e2e/constants.js.map +1 -0
- package/dist/chunking/e2e/seed-datasets.script.d.ts +20 -0
- package/dist/chunking/e2e/seed-datasets.script.d.ts.map +1 -0
- package/dist/chunking/e2e/seed-datasets.script.js +134 -0
- package/dist/chunking/e2e/seed-datasets.script.js.map +1 -0
- package/dist/chunking/introspect.d.ts +6 -0
- package/dist/chunking/introspect.d.ts.map +1 -1
- package/dist/chunking/introspect.js +113 -22
- package/dist/chunking/introspect.js.map +1 -1
- package/dist/chunking/partition-slices.d.ts +14 -0
- package/dist/chunking/partition-slices.d.ts.map +1 -0
- package/dist/chunking/partition-slices.js +111 -0
- package/dist/chunking/partition-slices.js.map +1 -0
- package/dist/chunking/planner.d.ts +3 -0
- package/dist/chunking/planner.d.ts.map +1 -0
- package/dist/chunking/planner.js +343 -0
- package/dist/chunking/planner.js.map +1 -0
- package/dist/chunking/services/distribution-source.d.ts +11 -0
- package/dist/chunking/services/distribution-source.d.ts.map +1 -0
- package/dist/chunking/services/distribution-source.js +60 -0
- package/dist/chunking/services/distribution-source.js.map +1 -0
- package/dist/chunking/services/metadata-source.d.ts +4 -0
- package/dist/chunking/services/metadata-source.d.ts.map +1 -0
- package/dist/chunking/services/metadata-source.js +138 -0
- package/dist/chunking/services/metadata-source.js.map +1 -0
- package/dist/chunking/services/row-probe.d.ts +12 -0
- package/dist/chunking/services/row-probe.d.ts.map +1 -0
- package/dist/chunking/services/row-probe.js +49 -0
- package/dist/chunking/services/row-probe.js.map +1 -0
- package/dist/chunking/sql.d.ts +11 -5
- package/dist/chunking/sql.d.ts.map +1 -1
- package/dist/chunking/sql.js +190 -107
- package/dist/chunking/sql.js.map +1 -1
- package/dist/chunking/strategies/equal-width-split.d.ts +3 -0
- package/dist/chunking/strategies/equal-width-split.d.ts.map +1 -0
- package/dist/chunking/strategies/equal-width-split.js +46 -0
- package/dist/chunking/strategies/equal-width-split.js.map +1 -0
- package/dist/chunking/strategies/group-by-key-split.d.ts +3 -0
- package/dist/chunking/strategies/group-by-key-split.d.ts.map +1 -0
- package/dist/chunking/strategies/group-by-key-split.js +54 -0
- package/dist/chunking/strategies/group-by-key-split.js.map +1 -0
- package/dist/chunking/strategies/metadata-single-chunk.d.ts +3 -0
- package/dist/chunking/strategies/metadata-single-chunk.d.ts.map +1 -0
- package/dist/chunking/strategies/metadata-single-chunk.js +5 -0
- package/dist/chunking/strategies/metadata-single-chunk.js.map +1 -0
- package/dist/chunking/strategies/quantile-range-split.d.ts +5 -0
- package/dist/chunking/strategies/quantile-range-split.d.ts.map +1 -0
- package/dist/chunking/strategies/quantile-range-split.js +132 -0
- package/dist/chunking/strategies/quantile-range-split.js.map +1 -0
- package/dist/chunking/strategies/refinement.d.ts +3 -0
- package/dist/chunking/strategies/refinement.d.ts.map +1 -0
- package/dist/chunking/strategies/refinement.js +61 -0
- package/dist/chunking/strategies/refinement.js.map +1 -0
- package/dist/chunking/strategies/string-prefix-split.d.ts +4 -0
- package/dist/chunking/strategies/string-prefix-split.d.ts.map +1 -0
- package/dist/chunking/strategies/string-prefix-split.js +73 -0
- package/dist/chunking/strategies/string-prefix-split.js.map +1 -0
- package/dist/chunking/strategies/temporal-bucket-split.d.ts +3 -0
- package/dist/chunking/strategies/temporal-bucket-split.d.ts.map +1 -0
- package/dist/chunking/strategies/temporal-bucket-split.js +67 -0
- package/dist/chunking/strategies/temporal-bucket-split.js.map +1 -0
- package/dist/chunking/strategy-policy.d.ts +3 -0
- package/dist/chunking/strategy-policy.d.ts.map +1 -0
- package/dist/chunking/strategy-policy.js +4 -0
- package/dist/chunking/strategy-policy.js.map +1 -0
- package/dist/chunking/types.d.ts +126 -18
- package/dist/chunking/types.d.ts.map +1 -1
- package/dist/chunking/utils/binary-string.d.ts +8 -0
- package/dist/chunking/utils/binary-string.d.ts.map +1 -0
- package/dist/chunking/utils/binary-string.js +52 -0
- package/dist/chunking/utils/binary-string.js.map +1 -0
- package/dist/chunking/utils/ids.d.ts +4 -0
- package/dist/chunking/utils/ids.d.ts.map +1 -0
- package/dist/chunking/utils/ids.js +11 -0
- package/dist/chunking/utils/ids.js.map +1 -0
- package/dist/chunking/utils/ranges.d.ts +5 -0
- package/dist/chunking/utils/ranges.d.ts.map +1 -0
- package/dist/chunking/utils/ranges.js +19 -0
- package/dist/chunking/utils/ranges.js.map +1 -0
- package/dist/detect.d.ts +0 -5
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +0 -41
- package/dist/detect.js.map +1 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +12 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +61 -0
- package/dist/logging.js.map +1 -0
- package/dist/options.d.ts +6 -15
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +1 -3
- package/dist/options.js.map +1 -1
- package/dist/payload.d.ts.map +1 -1
- package/dist/payload.js +4 -6
- package/dist/payload.js.map +1 -1
- package/dist/planner.d.ts +2 -1
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +31 -52
- package/dist/planner.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +27 -11
- package/dist/plugin.js.map +1 -1
- package/dist/queries.js +3 -3
- package/dist/queries.js.map +1 -1
- package/dist/sdk.d.ts +12 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +9 -0
- package/dist/sdk.js.map +1 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +16 -5
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +12 -25
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -3
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { buildCountSql, buildEstimateSql, buildWhereClauseFromRanges } from '../sql.js';
|
|
2
|
+
export function getRowProbeStrategy(context) {
|
|
3
|
+
return context.rowProbeStrategy;
|
|
4
|
+
}
|
|
5
|
+
export async function estimateRows(context, filter, sortKeys) {
|
|
6
|
+
if (getRowProbeStrategy(context) === 'count') {
|
|
7
|
+
return countRowsExact(context, filter, sortKeys);
|
|
8
|
+
}
|
|
9
|
+
const rows = await context.query(buildEstimateSql(filter, sortKeys, context, getRowProbeStrategy(context)), context.querySettings);
|
|
10
|
+
const firstRow = rows[0];
|
|
11
|
+
if (!firstRow)
|
|
12
|
+
return 0;
|
|
13
|
+
for (const [key, value] of Object.entries(firstRow)) {
|
|
14
|
+
if (!key.toLowerCase().includes('row'))
|
|
15
|
+
continue;
|
|
16
|
+
const parsed = Number(value ?? 0);
|
|
17
|
+
if (Number.isFinite(parsed))
|
|
18
|
+
return parsed;
|
|
19
|
+
}
|
|
20
|
+
for (const value of Object.values(firstRow)) {
|
|
21
|
+
const parsed = Number(value ?? 0);
|
|
22
|
+
if (Number.isFinite(parsed))
|
|
23
|
+
return parsed;
|
|
24
|
+
}
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
export async function countRowsExact(context, filter, sortKeys) {
|
|
28
|
+
const rows = await context.query(buildCountSql(filter, sortKeys, context), context.querySettings);
|
|
29
|
+
return Number(rows[0]?.cnt ?? 0);
|
|
30
|
+
}
|
|
31
|
+
export async function getSortKeyRange(context, partitionId, ranges, sortKeys, sortKey) {
|
|
32
|
+
const rows = await context.query(`
|
|
33
|
+
SELECT
|
|
34
|
+
toString(min(${sortKey.name})) AS minVal,
|
|
35
|
+
toString(max(${sortKey.name})) AS maxVal
|
|
36
|
+
FROM ${context.database}.${context.table}
|
|
37
|
+
WHERE ${buildWhereClauseFromRanges(partitionId, ranges, sortKeys)}`, context.querySettings);
|
|
38
|
+
if (rows.length === 0)
|
|
39
|
+
return undefined;
|
|
40
|
+
return {
|
|
41
|
+
min: rows[0]?.minVal ?? '',
|
|
42
|
+
max: rows[0]?.maxVal ?? '',
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function parsePlannerDateTime(value) {
|
|
46
|
+
const normalized = value.includes('T') ? value : value.replace(' ', 'T');
|
|
47
|
+
return Date.parse(normalized.endsWith('Z') ? normalized : `${normalized}Z`);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=row-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-probe.js","sourceRoot":"","sources":["../../../src/chunking/services/row-probe.ts"],"names":[],"mappings":"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"}
|
package/dist/chunking/sql.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
1
|
+
import type { Chunk, ChunkRange, EstimateFilter, PlannerContext, RowProbeStrategy, SortKey, TableProfile } from './types.js';
|
|
2
|
+
export declare function buildWhereClauseFromRanges(partitionId: string, ranges: ChunkRange[], sortKeys: SortKey[]): string;
|
|
3
|
+
export declare function buildWhereClauseFromChunk(chunk: Pick<Chunk, 'partitionId' | 'ranges'>, table: Pick<TableProfile, 'sortKeys'>): string;
|
|
4
|
+
export declare function buildChunkExecutionSql(input: {
|
|
3
5
|
planId: string;
|
|
4
|
-
chunk:
|
|
6
|
+
chunk: Chunk;
|
|
5
7
|
target: string;
|
|
6
|
-
|
|
8
|
+
table: Pick<TableProfile, 'sortKeys'>;
|
|
9
|
+
sourceTarget?: string;
|
|
7
10
|
mvAsQuery?: string;
|
|
8
11
|
targetColumns?: string[];
|
|
12
|
+
idempotencyToken?: string;
|
|
9
13
|
}): string;
|
|
10
|
-
export declare function
|
|
14
|
+
export declare function buildEstimateSql(filter: EstimateFilter, sortKeys: SortKey[], context: PlannerContext, rowProbeStrategy: RowProbeStrategy): string;
|
|
15
|
+
export declare function buildCountSql(filter: EstimateFilter, sortKeys: SortKey[], context: Pick<PlannerContext, 'database' | 'table'>): string;
|
|
16
|
+
export declare function injectSortKeyFilter(query: string, sortKeyColumn: string, category: SortKey['category'], from: string, to: string): string;
|
|
11
17
|
export declare function rewriteSelectColumns(query: string, targetColumns: string[]): string;
|
|
12
18
|
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/chunking/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/chunking/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACb,MAAM,YAAY,CAAA;AAmBnB,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAAE,EACpB,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM,CAgBR;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAAC,EAC5C,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GACpC,MAAM,CAER;AAyBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,MAAM,CA+BT;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,gBAAgB,GACjC,MAAM,CAMR;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,GAClD,MAAM,CAER;AAgCD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,MAAM,CAkBR;AA+DD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAqInF"}
|
package/dist/chunking/sql.js
CHANGED
|
@@ -1,57 +1,130 @@
|
|
|
1
|
+
function quoteSqlString(value) {
|
|
2
|
+
return `'${value.replaceAll('\\', '\\\\').replaceAll('\'', '\\\'')}'`;
|
|
3
|
+
}
|
|
4
|
+
function formatBound(value, sortKey) {
|
|
5
|
+
if (sortKey.category === 'datetime') {
|
|
6
|
+
return `parseDateTimeBestEffort(${quoteSqlString(value)})`;
|
|
7
|
+
}
|
|
8
|
+
if (sortKey.category === 'string') {
|
|
9
|
+
return `unhex('${Buffer.from(value, 'latin1').toString('hex')}')`;
|
|
10
|
+
}
|
|
11
|
+
return quoteSqlString(value);
|
|
12
|
+
}
|
|
13
|
+
export function buildWhereClauseFromRanges(partitionId, ranges, sortKeys) {
|
|
14
|
+
const conditions = [`_partition_id = ${quoteSqlString(partitionId)}`];
|
|
15
|
+
for (const range of ranges) {
|
|
16
|
+
const sortKey = sortKeys[range.dimensionIndex];
|
|
17
|
+
if (!sortKey)
|
|
18
|
+
continue;
|
|
19
|
+
if (range.from !== undefined) {
|
|
20
|
+
conditions.push(`${sortKey.name} >= ${formatBound(range.from, sortKey)}`);
|
|
21
|
+
}
|
|
22
|
+
if (range.to !== undefined) {
|
|
23
|
+
conditions.push(`${sortKey.name} < ${formatBound(range.to, sortKey)}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return conditions.join('\n AND ');
|
|
27
|
+
}
|
|
28
|
+
export function buildWhereClauseFromChunk(chunk, table) {
|
|
29
|
+
return buildWhereClauseFromRanges(chunk.partitionId, chunk.ranges, table.sortKeys);
|
|
30
|
+
}
|
|
1
31
|
function buildSettingsClause(token) {
|
|
2
32
|
if (token) {
|
|
3
33
|
return `SETTINGS async_insert=0, insert_deduplication_token='${token}'`;
|
|
4
34
|
}
|
|
5
|
-
return
|
|
35
|
+
return 'SETTINGS async_insert=0';
|
|
6
36
|
}
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
37
|
+
function buildChunkConditions(chunk, sortKeys) {
|
|
38
|
+
return chunk.ranges.flatMap((range) => {
|
|
39
|
+
const sortKey = sortKeys[range.dimensionIndex];
|
|
40
|
+
if (!sortKey)
|
|
41
|
+
return [];
|
|
42
|
+
const conditions = [];
|
|
43
|
+
if (range.from !== undefined) {
|
|
44
|
+
conditions.push(`${sortKey.name} >= ${formatBound(range.from, sortKey)}`);
|
|
45
|
+
}
|
|
46
|
+
if (range.to !== undefined) {
|
|
47
|
+
conditions.push(`${sortKey.name} < ${formatBound(range.to, sortKey)}`);
|
|
48
|
+
}
|
|
49
|
+
return conditions;
|
|
50
|
+
});
|
|
13
51
|
}
|
|
14
|
-
export function
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
52
|
+
export function buildChunkExecutionSql(input) {
|
|
53
|
+
const sourceTarget = input.sourceTarget ?? input.target;
|
|
54
|
+
const header = `/* chkit backfill plan=${input.planId} chunk=${input.chunk.id} token=${input.idempotencyToken ?? ''} */`;
|
|
55
|
+
const settings = buildSettingsClause(input.idempotencyToken ?? '');
|
|
56
|
+
const chunkConditions = buildChunkConditions(input.chunk, input.table.sortKeys);
|
|
18
57
|
if (input.mvAsQuery) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
filtered = injectSortKeyFilter(filtered, input.sortKey.column, input.sortKey.category, chunk.sortKeyFrom, chunk.sortKeyTo);
|
|
58
|
+
let filtered = injectPartitionFilter(input.mvAsQuery, input.chunk.partitionId);
|
|
59
|
+
for (const condition of chunkConditions) {
|
|
60
|
+
filtered = injectWhereCondition(filtered, condition);
|
|
23
61
|
}
|
|
24
62
|
if (input.targetColumns?.length) {
|
|
25
63
|
filtered = rewriteSelectColumns(filtered, input.targetColumns);
|
|
26
64
|
}
|
|
27
65
|
return [header, `INSERT INTO ${input.target}`, filtered, settings].join('\n');
|
|
28
66
|
}
|
|
29
|
-
// Direct table copy
|
|
30
67
|
const lines = [
|
|
31
68
|
header,
|
|
32
69
|
`INSERT INTO ${input.target}`,
|
|
33
|
-
|
|
34
|
-
`FROM ${
|
|
35
|
-
`WHERE _partition_id =
|
|
70
|
+
'SELECT *',
|
|
71
|
+
`FROM ${sourceTarget}`,
|
|
72
|
+
`WHERE _partition_id = ${quoteSqlString(input.chunk.partitionId)}`,
|
|
36
73
|
];
|
|
37
|
-
|
|
38
|
-
lines.push(
|
|
74
|
+
for (const condition of chunkConditions) {
|
|
75
|
+
lines.push(` AND ${condition}`);
|
|
39
76
|
}
|
|
40
77
|
lines.push(settings);
|
|
41
78
|
return lines.join('\n');
|
|
42
79
|
}
|
|
43
|
-
|
|
80
|
+
export function buildEstimateSql(filter, sortKeys, context, rowProbeStrategy) {
|
|
81
|
+
const whereClause = buildWhereClauseFromFilter(filter, sortKeys);
|
|
82
|
+
if (rowProbeStrategy === 'count') {
|
|
83
|
+
return `SELECT count() AS cnt FROM ${context.database}.${context.table} WHERE ${whereClause}`;
|
|
84
|
+
}
|
|
85
|
+
return `EXPLAIN ESTIMATE SELECT count() FROM ${context.database}.${context.table} WHERE ${whereClause}`;
|
|
86
|
+
}
|
|
87
|
+
export function buildCountSql(filter, sortKeys, context) {
|
|
88
|
+
return `SELECT count() AS cnt FROM ${context.database}.${context.table} WHERE ${buildWhereClauseFromFilter(filter, sortKeys)}`;
|
|
89
|
+
}
|
|
90
|
+
function buildWhereClauseFromFilter(filter, sortKeys) {
|
|
91
|
+
const conditions = [`_partition_id = ${quoteSqlString(filter.partitionId)}`];
|
|
92
|
+
for (const range of filter.ranges) {
|
|
93
|
+
const sortKey = sortKeys[range.dimensionIndex];
|
|
94
|
+
if (!sortKey)
|
|
95
|
+
continue;
|
|
96
|
+
if (filter.exactDimensionIndex === range.dimensionIndex && filter.exactValue !== undefined) {
|
|
97
|
+
conditions.push(`${sortKey.name} = ${formatBound(filter.exactValue, sortKey)}`);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (range.from !== undefined) {
|
|
101
|
+
conditions.push(`${sortKey.name} >= ${formatBound(range.from, sortKey)}`);
|
|
102
|
+
}
|
|
103
|
+
if (range.to !== undefined) {
|
|
104
|
+
conditions.push(`${sortKey.name} < ${formatBound(range.to, sortKey)}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return conditions.join(' AND ');
|
|
108
|
+
}
|
|
44
109
|
function injectPartitionFilter(query, partitionId) {
|
|
45
|
-
|
|
46
|
-
return injectWhereCondition(query, condition);
|
|
110
|
+
return injectWhereCondition(query, `_partition_id = ${quoteSqlString(partitionId)}`);
|
|
47
111
|
}
|
|
48
112
|
export function injectSortKeyFilter(query, sortKeyColumn, category, from, to) {
|
|
49
113
|
let condition;
|
|
50
114
|
if (category === 'datetime') {
|
|
51
|
-
condition =
|
|
115
|
+
condition =
|
|
116
|
+
`${sortKeyColumn} >= parseDateTimeBestEffort(${quoteSqlString(from)})\n` +
|
|
117
|
+
` AND ${sortKeyColumn} < parseDateTimeBestEffort(${quoteSqlString(to)})`;
|
|
118
|
+
}
|
|
119
|
+
else if (category === 'string') {
|
|
120
|
+
condition =
|
|
121
|
+
`${sortKeyColumn} >= unhex('${Buffer.from(from, 'latin1').toString('hex')}')\n` +
|
|
122
|
+
` AND ${sortKeyColumn} < unhex('${Buffer.from(to, 'latin1').toString('hex')}')`;
|
|
52
123
|
}
|
|
53
124
|
else {
|
|
54
|
-
condition =
|
|
125
|
+
condition =
|
|
126
|
+
`${sortKeyColumn} >= ${quoteSqlString(from)}\n` +
|
|
127
|
+
` AND ${sortKeyColumn} < ${quoteSqlString(to)}`;
|
|
55
128
|
}
|
|
56
129
|
return injectWhereCondition(query, condition);
|
|
57
130
|
}
|
|
@@ -60,42 +133,42 @@ function injectWhereCondition(query, condition) {
|
|
|
60
133
|
const upper = trimmed.toUpperCase();
|
|
61
134
|
const hits = [];
|
|
62
135
|
let depth = 0;
|
|
63
|
-
for (let
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
66
|
-
depth
|
|
136
|
+
for (let index = 0; index < trimmed.length; index++) {
|
|
137
|
+
const char = trimmed[index];
|
|
138
|
+
if (char === '(') {
|
|
139
|
+
depth += 1;
|
|
67
140
|
continue;
|
|
68
141
|
}
|
|
69
|
-
if (
|
|
70
|
-
depth
|
|
142
|
+
if (char === ')') {
|
|
143
|
+
depth -= 1;
|
|
71
144
|
continue;
|
|
72
145
|
}
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
while (
|
|
76
|
-
if (trimmed[
|
|
77
|
-
|
|
78
|
-
|
|
146
|
+
if (char === '\'') {
|
|
147
|
+
index += 1;
|
|
148
|
+
while (index < trimmed.length && trimmed[index] !== '\'') {
|
|
149
|
+
if (trimmed[index] === '\\')
|
|
150
|
+
index += 1;
|
|
151
|
+
index += 1;
|
|
79
152
|
}
|
|
80
153
|
continue;
|
|
81
154
|
}
|
|
82
155
|
if (depth !== 0)
|
|
83
156
|
continue;
|
|
84
|
-
if (
|
|
157
|
+
if (index > 0 && /\S/.test(trimmed[index - 1] ?? ''))
|
|
85
158
|
continue;
|
|
86
|
-
const rest = upper.slice(
|
|
87
|
-
for (const
|
|
88
|
-
if (rest.startsWith(
|
|
89
|
-
|
|
159
|
+
const rest = upper.slice(index);
|
|
160
|
+
for (const keyword of ['WHERE', 'GROUP BY', 'HAVING', 'ORDER BY', 'QUALIFY', 'LIMIT', 'SETTINGS']) {
|
|
161
|
+
if (rest.startsWith(keyword) &&
|
|
162
|
+
(index + keyword.length >= trimmed.length || /\s/.test(trimmed[index + keyword.length] ?? ''))) {
|
|
163
|
+
hits.push({ keyword, position: index });
|
|
90
164
|
break;
|
|
91
165
|
}
|
|
92
166
|
}
|
|
93
167
|
}
|
|
94
|
-
const whereHit = hits.find(
|
|
95
|
-
const trailingKeywords = ['GROUP BY', 'HAVING', 'ORDER BY', 'QUALIFY', 'LIMIT', 'SETTINGS'];
|
|
168
|
+
const whereHit = hits.find((hit) => hit.keyword === 'WHERE');
|
|
96
169
|
const firstTrailing = hits
|
|
97
|
-
.filter(
|
|
98
|
-
.filter(
|
|
170
|
+
.filter((hit) => hit.keyword !== 'WHERE')
|
|
171
|
+
.filter((hit) => !whereHit || hit.position > whereHit.position)[0];
|
|
99
172
|
const insertAt = firstTrailing ? firstTrailing.position : trimmed.length;
|
|
100
173
|
const before = trimmed.slice(0, insertAt).trimEnd();
|
|
101
174
|
const after = trimmed.slice(insertAt);
|
|
@@ -110,112 +183,122 @@ export function rewriteSelectColumns(query, targetColumns) {
|
|
|
110
183
|
let selectPos = -1;
|
|
111
184
|
let fromPos = -1;
|
|
112
185
|
let depth = 0;
|
|
113
|
-
for (let
|
|
114
|
-
const
|
|
115
|
-
if (
|
|
116
|
-
depth
|
|
186
|
+
for (let index = 0; index < trimmed.length; index++) {
|
|
187
|
+
const char = trimmed[index];
|
|
188
|
+
if (char === '(') {
|
|
189
|
+
depth += 1;
|
|
117
190
|
continue;
|
|
118
191
|
}
|
|
119
|
-
if (
|
|
120
|
-
depth
|
|
192
|
+
if (char === ')') {
|
|
193
|
+
depth -= 1;
|
|
121
194
|
continue;
|
|
122
195
|
}
|
|
123
|
-
if (
|
|
124
|
-
|
|
125
|
-
while (
|
|
126
|
-
if (trimmed[
|
|
127
|
-
|
|
128
|
-
|
|
196
|
+
if (char === '\'') {
|
|
197
|
+
index += 1;
|
|
198
|
+
while (index < trimmed.length && trimmed[index] !== '\'') {
|
|
199
|
+
if (trimmed[index] === '\\')
|
|
200
|
+
index += 1;
|
|
201
|
+
index += 1;
|
|
129
202
|
}
|
|
130
203
|
continue;
|
|
131
204
|
}
|
|
132
205
|
if (depth !== 0)
|
|
133
206
|
continue;
|
|
134
|
-
if (
|
|
207
|
+
if (index > 0 && /\S/.test(trimmed[index - 1] ?? ''))
|
|
135
208
|
continue;
|
|
136
|
-
const rest = upper.slice(
|
|
137
|
-
if (selectPos === -1 &&
|
|
138
|
-
|
|
209
|
+
const rest = upper.slice(index);
|
|
210
|
+
if (selectPos === -1 &&
|
|
211
|
+
rest.startsWith('SELECT') &&
|
|
212
|
+
(index + 6 >= trimmed.length || /\s/.test(trimmed[index + 6] ?? ''))) {
|
|
213
|
+
selectPos = index;
|
|
139
214
|
}
|
|
140
|
-
else if (selectPos !== -1 &&
|
|
141
|
-
fromPos
|
|
215
|
+
else if (selectPos !== -1 &&
|
|
216
|
+
fromPos === -1 &&
|
|
217
|
+
rest.startsWith('FROM') &&
|
|
218
|
+
(index + 4 >= trimmed.length || /\s/.test(trimmed[index + 4] ?? ''))) {
|
|
219
|
+
fromPos = index;
|
|
142
220
|
}
|
|
143
221
|
}
|
|
144
222
|
if (selectPos === -1 || fromPos === -1)
|
|
145
223
|
return query;
|
|
146
|
-
const
|
|
147
|
-
const
|
|
224
|
+
const projectionStart = selectPos + 6;
|
|
225
|
+
const rawProjection = trimmed.slice(projectionStart, fromPos).trim();
|
|
226
|
+
let projectionPrefix = '';
|
|
227
|
+
let projection = rawProjection;
|
|
228
|
+
const distinctMatch = rawProjection.match(/^DISTINCT\b\s*/i);
|
|
229
|
+
if (distinctMatch) {
|
|
230
|
+
projectionPrefix = distinctMatch[0] ?? '';
|
|
231
|
+
projection = rawProjection.slice(projectionPrefix.length).trim();
|
|
232
|
+
}
|
|
148
233
|
const items = [];
|
|
149
234
|
let itemStart = 0;
|
|
150
235
|
depth = 0;
|
|
151
|
-
for (let
|
|
152
|
-
const
|
|
153
|
-
if (
|
|
154
|
-
depth
|
|
236
|
+
for (let index = 0; index < projection.length; index++) {
|
|
237
|
+
const char = projection[index];
|
|
238
|
+
if (char === '(') {
|
|
239
|
+
depth += 1;
|
|
155
240
|
continue;
|
|
156
241
|
}
|
|
157
|
-
if (
|
|
158
|
-
depth
|
|
242
|
+
if (char === ')') {
|
|
243
|
+
depth -= 1;
|
|
159
244
|
continue;
|
|
160
245
|
}
|
|
161
|
-
if (
|
|
162
|
-
|
|
163
|
-
while (
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
|
|
246
|
+
if (char === '\'') {
|
|
247
|
+
index += 1;
|
|
248
|
+
while (index < projection.length && projection[index] !== '\'') {
|
|
249
|
+
if (projection[index] === '\\')
|
|
250
|
+
index += 1;
|
|
251
|
+
index += 1;
|
|
167
252
|
}
|
|
168
253
|
continue;
|
|
169
254
|
}
|
|
170
|
-
if (depth === 0 &&
|
|
171
|
-
items.push(
|
|
172
|
-
itemStart =
|
|
255
|
+
if (depth === 0 && char === ',') {
|
|
256
|
+
items.push(projection.slice(itemStart, index).trim());
|
|
257
|
+
itemStart = index + 1;
|
|
173
258
|
}
|
|
174
259
|
}
|
|
175
|
-
items.push(
|
|
260
|
+
items.push(projection.slice(itemStart).trim());
|
|
176
261
|
const aliasMap = new Map();
|
|
177
262
|
for (const item of items) {
|
|
178
263
|
if (item === '*')
|
|
179
264
|
continue;
|
|
180
265
|
const itemUpper = item.toUpperCase();
|
|
181
266
|
let asPos = -1;
|
|
182
|
-
let
|
|
183
|
-
for (let
|
|
184
|
-
const
|
|
185
|
-
if (
|
|
186
|
-
|
|
267
|
+
let itemDepth = 0;
|
|
268
|
+
for (let index = 0; index < item.length; index++) {
|
|
269
|
+
const char = item[index];
|
|
270
|
+
if (char === '(') {
|
|
271
|
+
itemDepth += 1;
|
|
187
272
|
continue;
|
|
188
273
|
}
|
|
189
|
-
if (
|
|
190
|
-
|
|
274
|
+
if (char === ')') {
|
|
275
|
+
itemDepth -= 1;
|
|
191
276
|
continue;
|
|
192
277
|
}
|
|
193
|
-
if (
|
|
194
|
-
|
|
195
|
-
while (
|
|
196
|
-
if (item[
|
|
197
|
-
|
|
198
|
-
|
|
278
|
+
if (char === '\'') {
|
|
279
|
+
index += 1;
|
|
280
|
+
while (index < item.length && item[index] !== '\'') {
|
|
281
|
+
if (item[index] === '\\')
|
|
282
|
+
index += 1;
|
|
283
|
+
index += 1;
|
|
199
284
|
}
|
|
200
285
|
continue;
|
|
201
286
|
}
|
|
202
|
-
if (
|
|
287
|
+
if (itemDepth !== 0)
|
|
203
288
|
continue;
|
|
204
|
-
if (
|
|
289
|
+
if (index > 0 && /\S/.test(item[index - 1] ?? ''))
|
|
205
290
|
continue;
|
|
206
|
-
const rest = itemUpper.slice(
|
|
207
|
-
if (rest.startsWith('AS') &&
|
|
208
|
-
|
|
291
|
+
const rest = itemUpper.slice(index);
|
|
292
|
+
if (rest.startsWith('AS') &&
|
|
293
|
+
(index + 2 >= item.length || /\s/.test(item[index + 2] ?? ''))) {
|
|
294
|
+
asPos = index;
|
|
209
295
|
}
|
|
210
296
|
}
|
|
211
297
|
if (asPos !== -1) {
|
|
212
|
-
|
|
213
|
-
aliasMap.set(alias, item);
|
|
298
|
+
aliasMap.set(item.slice(asPos + 2).trim(), item);
|
|
214
299
|
}
|
|
215
300
|
}
|
|
216
|
-
const
|
|
217
|
-
|
|
218
|
-
const after = trimmed.slice(fromPos);
|
|
219
|
-
return `${before} ${rewrittenCols.join(', ')}\n${after}`;
|
|
301
|
+
const rewrittenProjection = targetColumns.map((column) => aliasMap.get(column) ?? column);
|
|
302
|
+
return `${trimmed.slice(0, projectionStart)} ${projectionPrefix}${rewrittenProjection.join(', ')}\n${trimmed.slice(fromPos)}`;
|
|
220
303
|
}
|
|
221
304
|
//# sourceMappingURL=sql.js.map
|
package/dist/chunking/sql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/chunking/sql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/chunking/sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Partition, PartitionSlice, PlannerContext, SortKey } from '../types.js';
|
|
2
|
+
export declare function splitSliceWithEqualWidthRanges(context: PlannerContext, partition: Partition, slice: PartitionSlice, sortKeys: SortKey[], dimensionIndex: number, rangeFrom: string, rangeTo: string, subCount: number, oversamplingMultiplier?: number): Promise<PartitionSlice[]>;
|
|
3
|
+
//# sourceMappingURL=equal-width-split.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal-width-split.d.ts","sourceRoot":"","sources":["../../../src/chunking/strategies/equal-width-split.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,OAAO,EACR,MAAM,aAAa,CAAA;AAOpB,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,sBAAsB,GAAE,MAAwC,GAC/D,OAAO,CAAC,cAAc,EAAE,CAAC,CA+C3B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import pMap from 'p-map';
|
|
2
|
+
import { buildSliceFromRows } from '../partition-slices.js';
|
|
3
|
+
import { estimateRows } from '../services/row-probe.js';
|
|
4
|
+
import { replaceChunkRange } from '../utils/ranges.js';
|
|
5
|
+
import { buildEvenlySpacedBoundaries } from './quantile-range-split.js';
|
|
6
|
+
const DEFAULT_OVERSAMPLING_MULTIPLIER = 3;
|
|
7
|
+
const ESTIMATE_CONCURRENCY = 50;
|
|
8
|
+
export async function splitSliceWithEqualWidthRanges(context, partition, slice, sortKeys, dimensionIndex, rangeFrom, rangeTo, subCount, oversamplingMultiplier = DEFAULT_OVERSAMPLING_MULTIPLIER) {
|
|
9
|
+
const sortKey = sortKeys[dimensionIndex];
|
|
10
|
+
if (!sortKey)
|
|
11
|
+
return [slice];
|
|
12
|
+
const boundaries = Array.from(new Set(buildEvenlySpacedBoundaries(rangeFrom, rangeTo, subCount * oversamplingMultiplier, sortKey)));
|
|
13
|
+
if (boundaries.length <= 2)
|
|
14
|
+
return [slice];
|
|
15
|
+
const intervals = [];
|
|
16
|
+
for (let index = 0; index < boundaries.length - 1; index++) {
|
|
17
|
+
const from = boundaries[index];
|
|
18
|
+
const to = boundaries[index + 1];
|
|
19
|
+
if (from === undefined || to === undefined || from === to)
|
|
20
|
+
continue;
|
|
21
|
+
intervals.push({ from, to });
|
|
22
|
+
}
|
|
23
|
+
const results = await pMap(intervals, async ({ from, to }) => {
|
|
24
|
+
const ranges = replaceChunkRange(slice, dimensionIndex, from, to);
|
|
25
|
+
const rows = await estimateRows(context, { partitionId: partition.partitionId, ranges }, sortKeys);
|
|
26
|
+
if (rows <= 0)
|
|
27
|
+
return null;
|
|
28
|
+
return buildSliceFromRows(partition, {
|
|
29
|
+
ranges,
|
|
30
|
+
rows,
|
|
31
|
+
focusedValue: slice.analysis.focusedValue,
|
|
32
|
+
confidence: context.rowProbeStrategy === 'count' ? 'exact' : 'low',
|
|
33
|
+
reason: context.rowProbeStrategy === 'count' ? 'exact-count' : 'equal-width-distribution',
|
|
34
|
+
lineage: slice.analysis.lineage.concat([
|
|
35
|
+
{
|
|
36
|
+
strategyId: 'equal-width-split',
|
|
37
|
+
dimensionIndex,
|
|
38
|
+
reason: 'fallback to equal-width ranges',
|
|
39
|
+
},
|
|
40
|
+
]),
|
|
41
|
+
});
|
|
42
|
+
}, { concurrency: ESTIMATE_CONCURRENCY });
|
|
43
|
+
const slices = results.filter((s) => s !== null);
|
|
44
|
+
return slices.length > 0 ? slices : [slice];
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=equal-width-split.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal-width-split.js","sourceRoot":"","sources":["../../../src/chunking/strategies/equal-width-split.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,OAAO,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAOvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAEvE,MAAM,+BAA+B,GAAG,CAAC,CAAA;AACzC,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAuB,EACvB,SAAoB,EACpB,KAAqB,EACrB,QAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,yBAAiC,+BAA+B;IAEhE,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAE5B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,IAAI,GAAG,CAAC,2BAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,sBAAsB,EAAE,OAAO,CAAC,CAAC,CACrG,CAAA;IACD,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAE1C,MAAM,SAAS,GAAwC,EAAE,CAAA;IACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAC9B,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAChC,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;YAAE,SAAQ;QACnE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAI,CACxB,SAAS,EACT,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,OAAO,EACP,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAC9C,QAAQ,CACT,CAAA;QACD,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC1B,OAAO,kBAAkB,CAAC,SAAS,EAAE;YACnC,MAAM;YACN,IAAI;YACJ,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY;YACzC,UAAU,EAAE,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YAClE,MAAM,EAAE,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B;YACzF,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrC;oBACE,UAAU,EAAE,mBAAmB;oBAC/B,cAAc;oBACd,MAAM,EAAE,gCAAgC;iBACzC;aACF,CAAC;SACH,CAAC,CAAA;IACJ,CAAC,EACD,EAAE,WAAW,EAAE,oBAAoB,EAAE,CACtC,CAAA;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;IACrE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAC7C,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Partition, PartitionSlice, PlannerContext, SortKey } from '../types.js';
|
|
2
|
+
export declare function splitSliceWithGroupByKey(context: PlannerContext, partition: Partition, slice: PartitionSlice, sortKeys: SortKey[], dimensionIndex: number): Promise<PartitionSlice[] | undefined>;
|
|
3
|
+
//# sourceMappingURL=group-by-key-split.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-by-key-split.d.ts","sourceRoot":"","sources":["../../../src/chunking/strategies/group-by-key-split.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,OAAO,EACR,MAAM,aAAa,CAAA;AAMpB,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,CAuBvC"}
|