@chkit/core 0.1.2-beta.7 → 0.2.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -6
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +26 -7
- package/dist/canonical.js.map +1 -1
- package/dist/column-default.d.ts +62 -0
- package/dist/column-default.d.ts.map +1 -0
- package/dist/column-default.js +212 -0
- package/dist/column-default.js.map +1 -0
- package/dist/conflict-markers.d.ts +3 -0
- package/dist/conflict-markers.d.ts.map +1 -0
- package/dist/conflict-markers.js +9 -0
- package/dist/conflict-markers.js.map +1 -0
- package/dist/identifier.d.ts +22 -0
- package/dist/identifier.d.ts.map +1 -0
- package/dist/identifier.js +69 -0
- package/dist/identifier.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/insert-columns.d.ts +13 -0
- package/dist/insert-columns.d.ts.map +1 -0
- package/dist/insert-columns.js +36 -0
- package/dist/insert-columns.js.map +1 -0
- package/dist/kafka.d.ts +9 -0
- package/dist/kafka.d.ts.map +1 -0
- package/dist/kafka.js +64 -0
- package/dist/kafka.js.map +1 -0
- package/dist/key-clause.d.ts +6 -1
- package/dist/key-clause.d.ts.map +1 -1
- package/dist/key-clause.js +12 -13
- package/dist/key-clause.js.map +1 -1
- package/dist/model-types.d.ts +84 -6
- package/dist/model-types.d.ts.map +1 -1
- package/dist/model.d.ts +3 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +9 -2
- package/dist/model.js.map +1 -1
- package/dist/object-dependencies.d.ts +18 -0
- package/dist/object-dependencies.d.ts.map +1 -0
- package/dist/object-dependencies.js +351 -0
- package/dist/object-dependencies.js.map +1 -0
- package/dist/on-cluster.d.ts.map +1 -1
- package/dist/on-cluster.js +7 -3
- package/dist/on-cluster.js.map +1 -1
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +93 -82
- package/dist/planner.js.map +1 -1
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +5 -40
- package/dist/projection.js.map +1 -1
- package/dist/schema-loader.d.ts +2 -0
- package/dist/schema-loader.d.ts.map +1 -1
- package/dist/schema-loader.js +72 -5
- package/dist/schema-loader.js.map +1 -1
- package/dist/sql-lexer.d.ts +29 -0
- package/dist/sql-lexer.d.ts.map +1 -0
- package/dist/sql-lexer.js +220 -0
- package/dist/sql-lexer.js.map +1 -0
- package/dist/sql-normalizer.d.ts +48 -0
- package/dist/sql-normalizer.d.ts.map +1 -1
- package/dist/sql-normalizer.js +118 -1
- package/dist/sql-normalizer.js.map +1 -1
- package/dist/sql-scan.d.ts +20 -0
- package/dist/sql-scan.d.ts.map +1 -0
- package/dist/sql-scan.js +82 -0
- package/dist/sql-scan.js.map +1 -0
- package/dist/sql-splitter.d.ts.map +1 -1
- package/dist/sql-splitter.js +52 -5
- package/dist/sql-splitter.js.map +1 -1
- package/dist/sql.d.ts +7 -0
- package/dist/sql.d.ts.map +1 -1
- package/dist/sql.js +51 -39
- package/dist/sql.js.map +1 -1
- package/dist/text-index-sql.d.ts +6 -0
- package/dist/text-index-sql.d.ts.map +1 -0
- package/dist/text-index-sql.js +200 -0
- package/dist/text-index-sql.js.map +1 -0
- package/dist/text-index.d.ts +10 -0
- package/dist/text-index.d.ts.map +1 -0
- package/dist/text-index.js +121 -0
- package/dist/text-index.js.map +1 -0
- package/dist/ts-import.d.ts.map +1 -1
- package/dist/ts-import.js +23 -3
- package/dist/ts-import.js.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +303 -3
- package/dist/validate.js.map +1 -1
- package/package.json +1 -1
- package/dist/utils.d.ts +0 -2
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -2
- package/dist/utils.js.map +0 -1
package/dist/planner.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { canonicalizeDefinitions, definitionKey } from './canonical.js';
|
|
2
2
|
import { diffByName, diffClauses, diffSettings } from './diff-primitives.js';
|
|
3
|
-
import { renderAlterAddColumn, renderAlterAddIndex, renderAlterAddProjection, renderAlterDropColumn, renderAlterDropIndex, renderAlterDropProjection, renderAlterModifyColumn, renderAlterModifyRefresh, renderAlterModifySetting, renderAlterModifyTTL, renderAlterRemoveCodec, renderAlterResetSetting, renderDictionarySQL, toCreateSQL, } from './sql.js';
|
|
3
|
+
import { renderAlterAddColumn, renderAlterAddIndex, renderAlterAddProjection, renderAlterDropColumn, renderAlterDropIndex, renderAlterDropProjection, renderAlterModifyColumn, renderAlterModifyRefresh, renderAlterModifySetting, renderAlterModifyTTL, renderAlterRemoveCodec, renderAlterRemoveColumnExpression, renderAlterResetSetting, renderDictionarySQL, toCreateSQL, } from './sql.js';
|
|
4
|
+
import { textIndexFingerprint } from './text-index.js';
|
|
4
5
|
import { assertValidDefinitions } from './validate.js';
|
|
6
|
+
import { quoteIdentifier, renderIdentifier, renderQualifiedName } from './identifier.js';
|
|
7
|
+
import { ChxValidationError } from './model.js';
|
|
8
|
+
import { isKafkaEngine, kafkaSettingFingerprint } from './kafka.js';
|
|
9
|
+
import { buildDependencyGraph, invertDependencyGraph, orderByDependencies, } from './object-dependencies.js';
|
|
5
10
|
function createMap(definitions) {
|
|
6
11
|
return new Map(definitions.map((def) => [definitionKey(def), def]));
|
|
7
12
|
}
|
|
@@ -11,7 +16,7 @@ function pushDropOperation(operations, def, risk = 'danger') {
|
|
|
11
16
|
type: 'drop_table',
|
|
12
17
|
key: definitionKey(def),
|
|
13
18
|
risk,
|
|
14
|
-
sql: `DROP TABLE IF EXISTS ${def.database}
|
|
19
|
+
sql: `DROP TABLE IF EXISTS ${renderQualifiedName(def.database, def.name)}${isKafkaEngine(def.engine) ? ' SYNC' : ''};`,
|
|
15
20
|
});
|
|
16
21
|
return;
|
|
17
22
|
}
|
|
@@ -20,7 +25,7 @@ function pushDropOperation(operations, def, risk = 'danger') {
|
|
|
20
25
|
type: 'drop_view',
|
|
21
26
|
key: definitionKey(def),
|
|
22
27
|
risk,
|
|
23
|
-
sql: `DROP VIEW IF EXISTS ${def.database
|
|
28
|
+
sql: `DROP VIEW IF EXISTS ${renderQualifiedName(def.database, def.name)};`,
|
|
24
29
|
});
|
|
25
30
|
return;
|
|
26
31
|
}
|
|
@@ -29,7 +34,7 @@ function pushDropOperation(operations, def, risk = 'danger') {
|
|
|
29
34
|
type: 'drop_dictionary',
|
|
30
35
|
key: definitionKey(def),
|
|
31
36
|
risk,
|
|
32
|
-
sql: `DROP DICTIONARY IF EXISTS ${def.database
|
|
37
|
+
sql: `DROP DICTIONARY IF EXISTS ${renderQualifiedName(def.database, def.name)};`,
|
|
33
38
|
});
|
|
34
39
|
return;
|
|
35
40
|
}
|
|
@@ -37,7 +42,7 @@ function pushDropOperation(operations, def, risk = 'danger') {
|
|
|
37
42
|
type: 'drop_materialized_view',
|
|
38
43
|
key: definitionKey(def),
|
|
39
44
|
risk,
|
|
40
|
-
sql: `DROP TABLE IF EXISTS ${def.database
|
|
45
|
+
sql: `DROP TABLE IF EXISTS ${renderQualifiedName(def.database, def.name)} SYNC;`,
|
|
41
46
|
});
|
|
42
47
|
}
|
|
43
48
|
function pushCreateOperation(operations, def, risk = 'safe') {
|
|
@@ -80,7 +85,7 @@ function pushCreateDatabaseOperation(operations, database, risk = 'safe') {
|
|
|
80
85
|
type: 'create_database',
|
|
81
86
|
key: `database:${database}`,
|
|
82
87
|
risk,
|
|
83
|
-
sql: `CREATE DATABASE IF NOT EXISTS ${database};`,
|
|
88
|
+
sql: `CREATE DATABASE IF NOT EXISTS ${renderIdentifier(database)};`,
|
|
84
89
|
});
|
|
85
90
|
}
|
|
86
91
|
// Whitespace and identifier backtick-quoting carry no meaning in a key clause,
|
|
@@ -155,7 +160,7 @@ function renderRenameColumnSuggestionSQL(table, from, to) {
|
|
|
155
160
|
// IF EXISTS makes the rename idempotent: once it has run (the `from` column is
|
|
156
161
|
// gone), a replay after a partial migration failure is a safe no-op rather
|
|
157
162
|
// than an "unknown identifier" brick. ClickHouse supports the clause.
|
|
158
|
-
return `ALTER TABLE ${table.database
|
|
163
|
+
return `ALTER TABLE ${renderQualifiedName(table.database, table.name)} RENAME COLUMN IF EXISTS ${quoteIdentifier(from)} TO ${quoteIdentifier(to)};`;
|
|
159
164
|
}
|
|
160
165
|
function inferColumnRenameSuggestions(table, addedColumns, droppedColumns) {
|
|
161
166
|
if (addedColumns.length === 0 || droppedColumns.length === 0)
|
|
@@ -220,7 +225,7 @@ function diffMaterializedView(oldDef, newDef) {
|
|
|
220
225
|
type: 'drop_materialized_view',
|
|
221
226
|
key: definitionKey(newDef),
|
|
222
227
|
risk: 'caution',
|
|
223
|
-
sql: `DROP TABLE IF EXISTS ${newDef.database
|
|
228
|
+
sql: `DROP TABLE IF EXISTS ${renderQualifiedName(newDef.database, newDef.name)} SYNC;`,
|
|
224
229
|
},
|
|
225
230
|
{
|
|
226
231
|
type: 'create_materialized_view',
|
|
@@ -273,6 +278,19 @@ function diffDictionary(oldDef, newDef) {
|
|
|
273
278
|
];
|
|
274
279
|
}
|
|
275
280
|
function diffTables(oldDef, newDef) {
|
|
281
|
+
if (isKafkaEngine(oldDef.engine) || isKafkaEngine(newDef.engine)) {
|
|
282
|
+
const settings = (def) => Object.fromEntries(Object.entries(def.settings ?? {}).map(([key, value]) => [key, kafkaSettingFingerprint(value)]));
|
|
283
|
+
if (requiresTableRecreate(oldDef, newDef)
|
|
284
|
+
|| JSON.stringify(oldDef.columns.map(column => [column.name, normalizeColumn(column)])) !== JSON.stringify(newDef.columns.map(column => [column.name, normalizeColumn(column)]))
|
|
285
|
+
|| diffSettings(settings(oldDef), settings(newDef)).changes.length > 0
|
|
286
|
+
|| (oldDef.comment ?? '') !== (newDef.comment ?? '')) {
|
|
287
|
+
throw new ChxValidationError([{
|
|
288
|
+
code: 'kafka_change_requires_replacement', kind: 'table', database: newDef.database, name: newDef.name,
|
|
289
|
+
message: `Kafka table ${newDef.database}.${newDef.name} requires an explicit replacement; column, engine and setting ALTERs are not supported. Remove the queue and its consuming materialized views from the schema and generate a drop migration, then re-add the updated definitions and generate a create migration. Review both migrations and consumer-group/offset behavior before applying with --allow-destructive.`,
|
|
290
|
+
}]);
|
|
291
|
+
}
|
|
292
|
+
return { operations: [], renameSuggestions: [] };
|
|
293
|
+
}
|
|
276
294
|
if (requiresTableRecreate(oldDef, newDef)) {
|
|
277
295
|
return {
|
|
278
296
|
operations: [
|
|
@@ -280,7 +298,7 @@ function diffTables(oldDef, newDef) {
|
|
|
280
298
|
type: 'drop_table',
|
|
281
299
|
key: definitionKey(newDef),
|
|
282
300
|
risk: 'danger',
|
|
283
|
-
sql: `DROP TABLE IF EXISTS ${newDef.database
|
|
301
|
+
sql: `DROP TABLE IF EXISTS ${renderQualifiedName(newDef.database, newDef.name)};`,
|
|
284
302
|
},
|
|
285
303
|
{
|
|
286
304
|
type: 'create_table',
|
|
@@ -296,6 +314,19 @@ function diffTables(oldDef, newDef) {
|
|
|
296
314
|
const columnDiff = diffByName(oldDef.columns, newDef.columns, (column) => column.name, (left, right) => JSON.stringify(normalizeColumn(left)) === JSON.stringify(normalizeColumn(right)));
|
|
297
315
|
const addedColumns = columnDiff.added;
|
|
298
316
|
const droppedColumns = columnDiff.removed;
|
|
317
|
+
// Report every blocked column of the table at once, not one per generate run.
|
|
318
|
+
const kindChangeIssues = columnDiff.changed.flatMap(({ name, oldItem, newItem }) => {
|
|
319
|
+
const oldKind = oldItem.defaultKind ?? 'DEFAULT';
|
|
320
|
+
const newKind = newItem.defaultKind ?? 'DEFAULT';
|
|
321
|
+
if (oldKind === newKind || ![oldKind, newKind].some((kind) => kind === 'ALIAS' || kind === 'EPHEMERAL'))
|
|
322
|
+
return [];
|
|
323
|
+
return [{
|
|
324
|
+
code: 'column_kind_change_unsupported', kind: 'table', database: newDef.database, name: newDef.name,
|
|
325
|
+
message: `Cannot automatically change column ${newDef.database}.${newDef.name}.${name} from ${oldKind} to ${newKind}; storage-kind conversions involving ALIAS or EPHEMERAL are not supported. Keep the column declared as ${oldKind} in the schema.`,
|
|
326
|
+
}];
|
|
327
|
+
});
|
|
328
|
+
if (kindChangeIssues.length > 0)
|
|
329
|
+
throw new ChxValidationError(kindChangeIssues);
|
|
299
330
|
for (const column of columnDiff.added) {
|
|
300
331
|
ops.push({
|
|
301
332
|
type: 'alter_table_add_column',
|
|
@@ -305,14 +336,24 @@ function diffTables(oldDef, newDef) {
|
|
|
305
336
|
});
|
|
306
337
|
}
|
|
307
338
|
for (const { name, oldItem, newItem } of columnDiff.changed) {
|
|
339
|
+
const oldKind = oldItem.defaultKind ?? 'DEFAULT';
|
|
340
|
+
const newKind = newItem.defaultKind ?? 'DEFAULT';
|
|
341
|
+
const key = `table:${newDef.database}.${newDef.name}:column:${name}`;
|
|
342
|
+
const removeExpression = renderAlterRemoveColumnExpression(newDef, newItem, oldItem);
|
|
343
|
+
// Its own operation: migrate pairs each `-- operation:` marker with exactly one statement.
|
|
344
|
+
if (removeExpression)
|
|
345
|
+
ops.push({ type: 'alter_table_modify_column', key, risk: 'caution', sql: removeExpression });
|
|
308
346
|
const sql = isCodecRemoval(oldItem, newItem)
|
|
309
347
|
? renderAlterRemoveCodec(newDef, name)
|
|
310
348
|
: renderAlterModifyColumn(newDef, newItem);
|
|
311
349
|
ops.push({
|
|
312
350
|
type: 'alter_table_modify_column',
|
|
313
|
-
key
|
|
351
|
+
key,
|
|
314
352
|
risk: 'caution',
|
|
315
353
|
sql,
|
|
354
|
+
...((oldKind === 'DEFAULT' || oldKind === 'MATERIALIZED' || newKind === 'DEFAULT' || newKind === 'MATERIALIZED') && (oldItem.default !== newItem.default || oldKind !== newKind)
|
|
355
|
+
? { warning: `Changing the expression for ${newDef.database}.${newDef.name}.${name} does not rewrite stored historical values. Review a separate MATERIALIZE COLUMN migration if a rewrite is required; never reconstruct values from discarded EPHEMERAL inputs.` }
|
|
356
|
+
: {}),
|
|
316
357
|
});
|
|
317
358
|
}
|
|
318
359
|
for (const column of columnDiff.removed) {
|
|
@@ -323,7 +364,9 @@ function diffTables(oldDef, newDef) {
|
|
|
323
364
|
sql: renderAlterDropColumn(newDef, column.name),
|
|
324
365
|
});
|
|
325
366
|
}
|
|
326
|
-
const indexDiff = diffByName(oldDef.indexes ?? [], newDef.indexes ?? [], (index) => index.name, (left, right) =>
|
|
367
|
+
const indexDiff = diffByName(oldDef.indexes ?? [], newDef.indexes ?? [], (index) => index.name, (left, right) => left.type === 'text' && right.type === 'text'
|
|
368
|
+
? textIndexFingerprint(left) === textIndexFingerprint(right)
|
|
369
|
+
: JSON.stringify(left) === JSON.stringify(right));
|
|
327
370
|
for (const index of indexDiff.added) {
|
|
328
371
|
ops.push({
|
|
329
372
|
type: 'alter_table_add_index',
|
|
@@ -416,47 +459,6 @@ function diffTables(oldDef, newDef) {
|
|
|
416
459
|
renameSuggestions: inferColumnRenameSuggestions(newDef, addedColumns, droppedColumns),
|
|
417
460
|
};
|
|
418
461
|
}
|
|
419
|
-
/**
|
|
420
|
-
* Creation depth of each refreshable materialized view, derived from its
|
|
421
|
-
* `refresh.dependsOn` edges (#41). A view declared `DEPENDS ON other_mv` must
|
|
422
|
-
* be created AFTER `other_mv` exists, so ordering create operations by
|
|
423
|
-
* ascending depth puts every dependency before the views that depend on it.
|
|
424
|
-
* Names alone are unsafe: a dependent MV whose name sorts first would otherwise
|
|
425
|
-
* be created first and fail.
|
|
426
|
-
*/
|
|
427
|
-
function materializedViewCreationDepth(definitions, byKey) {
|
|
428
|
-
const depth = new Map();
|
|
429
|
-
const visiting = new Set();
|
|
430
|
-
const compute = (key) => {
|
|
431
|
-
const cached = depth.get(key);
|
|
432
|
-
if (cached !== undefined)
|
|
433
|
-
return cached;
|
|
434
|
-
// A dependency cycle has no valid creation order; stop recursing and let
|
|
435
|
-
// the alphabetical tiebreak apply rather than looping forever.
|
|
436
|
-
if (visiting.has(key))
|
|
437
|
-
return 0;
|
|
438
|
-
const def = byKey.get(key);
|
|
439
|
-
if (!def || def.kind !== 'materialized_view') {
|
|
440
|
-
depth.set(key, 0);
|
|
441
|
-
return 0;
|
|
442
|
-
}
|
|
443
|
-
visiting.add(key);
|
|
444
|
-
let result = 0;
|
|
445
|
-
for (const dep of def.refresh?.dependsOn ?? []) {
|
|
446
|
-
const depKey = `materialized_view:${dep.database}.${dep.name}`;
|
|
447
|
-
if (byKey.has(depKey))
|
|
448
|
-
result = Math.max(result, 1 + compute(depKey));
|
|
449
|
-
}
|
|
450
|
-
visiting.delete(key);
|
|
451
|
-
depth.set(key, result);
|
|
452
|
-
return result;
|
|
453
|
-
};
|
|
454
|
-
for (const def of definitions) {
|
|
455
|
-
if (def.kind === 'materialized_view')
|
|
456
|
-
compute(definitionKey(def));
|
|
457
|
-
}
|
|
458
|
-
return depth;
|
|
459
|
-
}
|
|
460
462
|
export function planDiff(oldDefinitions, newDefinitions) {
|
|
461
463
|
const oldCanonical = canonicalizeDefinitions(oldDefinitions);
|
|
462
464
|
const newCanonical = canonicalizeDefinitions(newDefinitions);
|
|
@@ -515,41 +517,16 @@ export function planDiff(oldDefinitions, newDefinitions) {
|
|
|
515
517
|
for (const database of [...databasesToCreate].sort((a, b) => a.localeCompare(b))) {
|
|
516
518
|
pushCreateDatabaseOperation(operations, database, 'safe');
|
|
517
519
|
}
|
|
518
|
-
const
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
if (op.type.startsWith('drop_'))
|
|
522
|
-
return 0;
|
|
523
|
-
if (op.type === 'alter_materialized_view_modify_refresh')
|
|
524
|
-
return 1;
|
|
525
|
-
if (op.type.startsWith('alter_'))
|
|
526
|
-
return 1;
|
|
527
|
-
if (op.type === 'create_database')
|
|
528
|
-
return 2;
|
|
529
|
-
if (op.type === 'create_table')
|
|
530
|
-
return 3;
|
|
531
|
-
if (op.type === 'create_view')
|
|
532
|
-
return 4;
|
|
533
|
-
return 5;
|
|
534
|
-
};
|
|
535
|
-
const rankOrder = rank(a) - rank(b);
|
|
536
|
-
if (rankOrder !== 0)
|
|
537
|
-
return rankOrder;
|
|
538
|
-
// Within materialized-view creates, order a DEPENDS ON target before the
|
|
539
|
-
// view that depends on it (#41), then fall back to a stable name order.
|
|
540
|
-
if (a.type === 'create_materialized_view' && b.type === 'create_materialized_view') {
|
|
541
|
-
const depthOrder = (mvCreationDepth.get(a.key) ?? 0) - (mvCreationDepth.get(b.key) ?? 0);
|
|
542
|
-
if (depthOrder !== 0)
|
|
543
|
-
return depthOrder;
|
|
544
|
-
}
|
|
545
|
-
return a.key.localeCompare(b.key);
|
|
520
|
+
const ordered = orderOperations(operations.sort(compareOperations), {
|
|
521
|
+
drop: invertDependencyGraph(buildDependencyGraph(oldCanonical)),
|
|
522
|
+
create: buildDependencyGraph(newCanonical),
|
|
546
523
|
});
|
|
547
524
|
const riskSummary = { safe: 0, caution: 0, danger: 0 };
|
|
548
|
-
for (const operation of
|
|
525
|
+
for (const operation of ordered) {
|
|
549
526
|
riskSummary[operation.risk] = (riskSummary[operation.risk] ?? 0) + 1;
|
|
550
527
|
}
|
|
551
528
|
return {
|
|
552
|
-
operations,
|
|
529
|
+
operations: ordered,
|
|
553
530
|
riskSummary,
|
|
554
531
|
renameSuggestions: renameSuggestions.sort((a, b) => {
|
|
555
532
|
const tableOrder = `${a.database}.${a.table}`.localeCompare(`${b.database}.${b.table}`);
|
|
@@ -562,4 +539,38 @@ export function planDiff(oldDefinitions, newDefinitions) {
|
|
|
562
539
|
}),
|
|
563
540
|
};
|
|
564
541
|
}
|
|
542
|
+
// drop_* 0, alter_* 1, create_database 2, create_table 3, create_view 4, other creates 5.
|
|
543
|
+
function operationRank(op) {
|
|
544
|
+
if (op.type.startsWith('drop_'))
|
|
545
|
+
return 0;
|
|
546
|
+
if (op.type.startsWith('alter_'))
|
|
547
|
+
return 1;
|
|
548
|
+
if (op.type === 'create_database')
|
|
549
|
+
return 2;
|
|
550
|
+
if (op.type === 'create_table')
|
|
551
|
+
return 3;
|
|
552
|
+
if (op.type === 'create_view')
|
|
553
|
+
return 4;
|
|
554
|
+
return 5;
|
|
555
|
+
}
|
|
556
|
+
// The sort is stable, so operations that share a key keep the order diffTables
|
|
557
|
+
// pushed them in: a column's REMOVE DEFAULT before its MODIFY COLUMN.
|
|
558
|
+
function compareOperations(a, b) {
|
|
559
|
+
return operationRank(a) - operationRank(b) || a.key.localeCompare(b.key);
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Reorders the drop and create segments of a (rank, key)-sorted plan by object
|
|
563
|
+
* dependencies (#231): drops run dependents first, creates run dependencies
|
|
564
|
+
* first. Alters and create_database keep their place.
|
|
565
|
+
*/
|
|
566
|
+
function orderOperations(sorted, prerequisites) {
|
|
567
|
+
const drops = sorted.filter((op) => operationRank(op) === 0);
|
|
568
|
+
const middle = sorted.filter((op) => operationRank(op) === 1 || operationRank(op) === 2);
|
|
569
|
+
const creates = sorted.filter((op) => operationRank(op) >= 3);
|
|
570
|
+
return [
|
|
571
|
+
...orderByDependencies(drops, (op) => op.key, (key) => prerequisites.drop.get(key) ?? []),
|
|
572
|
+
...middle,
|
|
573
|
+
...orderByDependencies(creates, (op) => op.key, (key) => prerequisites.create.get(key) ?? []),
|
|
574
|
+
];
|
|
575
|
+
}
|
|
565
576
|
//# sourceMappingURL=planner.js.map
|
package/dist/planner.js.map
CHANGED
|
@@ -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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"}
|
package/dist/projection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAKvF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,oBAAoB,GAC/B,UAAU,IAAI,yBAAyB,CAEzC;AAyBD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB9D;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,oBAAoB,GAAG,oBAAoB,CAc7F;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAI7E"}
|
package/dist/projection.js
CHANGED
|
@@ -1,53 +1,18 @@
|
|
|
1
1
|
import { splitTopLevelComma } from './key-clause.js';
|
|
2
2
|
import { normalizeSQLFragment } from './sql-normalizer.js';
|
|
3
|
+
import { findQuoteEnd, isQuoteChar, stripWrappingParens } from './sql-scan.js';
|
|
3
4
|
export function isIndexProjection(projection) {
|
|
4
5
|
return 'index' in projection;
|
|
5
6
|
}
|
|
6
|
-
function stripWrappingParens(input) {
|
|
7
|
-
if (!input.startsWith('(') || !input.endsWith(')'))
|
|
8
|
-
return input;
|
|
9
|
-
// Only strip when the leading paren closes at the very end, so `(a), (b)`
|
|
10
|
-
// keeps both groups. Parens inside quoted identifiers and string literals
|
|
11
|
-
// are text, not nesting — `` (`weird)name`) `` is still a single wrapped
|
|
12
|
-
// expression.
|
|
13
|
-
let depth = 0;
|
|
14
|
-
let quote = null;
|
|
15
|
-
for (let i = 0; i < input.length; i += 1) {
|
|
16
|
-
const char = input[i];
|
|
17
|
-
if (quote) {
|
|
18
|
-
if (char === quote && input[i - 1] !== '\\')
|
|
19
|
-
quote = null;
|
|
20
|
-
continue;
|
|
21
|
-
}
|
|
22
|
-
if (char === "'" || char === '"' || char === '`') {
|
|
23
|
-
quote = char;
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
if (char === '(')
|
|
27
|
-
depth += 1;
|
|
28
|
-
else if (char === ')') {
|
|
29
|
-
depth -= 1;
|
|
30
|
-
if (depth === 0)
|
|
31
|
-
return i === input.length - 1 ? input.slice(1, -1).trim() : input;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return input;
|
|
35
|
-
}
|
|
36
7
|
/** ClickHouse prints one space after every argument separator. */
|
|
37
8
|
function spaceAfterCommas(input) {
|
|
38
9
|
let out = '';
|
|
39
|
-
let quote = null;
|
|
40
10
|
for (let i = 0; i < input.length; i += 1) {
|
|
41
11
|
const char = input[i] ?? '';
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (char === "'" || char === '"' || char === '`') {
|
|
49
|
-
quote = char;
|
|
50
|
-
out += char;
|
|
12
|
+
if (isQuoteChar(char)) {
|
|
13
|
+
const end = findQuoteEnd(input, i, char);
|
|
14
|
+
out += input.slice(i, end + 1);
|
|
15
|
+
i = end;
|
|
51
16
|
continue;
|
|
52
17
|
}
|
|
53
18
|
// Whitespace is already collapsed to single spaces by normalizeSQLFragment,
|
package/dist/projection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-loader.d.ts
CHANGED
|
@@ -3,4 +3,6 @@ export interface SchemaLoaderOptions {
|
|
|
3
3
|
cwd?: string;
|
|
4
4
|
}
|
|
5
5
|
export declare function loadSchemaDefinitions(schemaGlobs: string | string[], options?: SchemaLoaderOptions): Promise<SchemaDefinition[]>;
|
|
6
|
+
/** Load configured entry/schema modules so plugins can inspect their exported definitions. */
|
|
7
|
+
export declare function loadDefinitionModules(schemaGlobs: string | string[], options?: SchemaLoaderOptions): Promise<Record<string, unknown>[]>;
|
|
6
8
|
//# sourceMappingURL=schema-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../src/schema-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../src/schema-loader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGlD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAeD,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAG7B;AAED,8FAA8F;AAC9F,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAcpC"}
|
package/dist/schema-loader.js
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
1
2
|
import process from 'node:process';
|
|
2
3
|
import fg from 'fast-glob';
|
|
3
4
|
import { canonicalizeDefinitions, collectDefinitionsFromModule } from './canonical.js';
|
|
5
|
+
import { hasConflictMarkers } from './conflict-markers.js';
|
|
4
6
|
import { importModuleFile } from './ts-import.js';
|
|
7
|
+
/**
|
|
8
|
+
* The `<file>:<line>:<column>` line that jiti, the loader under Node, ends a
|
|
9
|
+
* parse error's message with. The file path can contain spaces.
|
|
10
|
+
*/
|
|
11
|
+
const MESSAGE_LOCATION_LINE = /^[ \t]*(.+):\d+:\d+[ \t]*$/gm;
|
|
5
12
|
export async function loadSchemaDefinitions(schemaGlobs, options = {}) {
|
|
13
|
+
const modules = await loadDefinitionModules(schemaGlobs, options);
|
|
14
|
+
return canonicalizeDefinitions(modules.flatMap(collectDefinitionsFromModule));
|
|
15
|
+
}
|
|
16
|
+
/** Load configured entry/schema modules so plugins can inspect their exported definitions. */
|
|
17
|
+
export async function loadDefinitionModules(schemaGlobs, options = {}) {
|
|
6
18
|
const patterns = Array.isArray(schemaGlobs) ? schemaGlobs : [schemaGlobs];
|
|
7
19
|
const files = await fg(patterns, {
|
|
8
20
|
cwd: options.cwd ?? process.cwd(),
|
|
@@ -11,11 +23,66 @@ export async function loadSchemaDefinitions(schemaGlobs, options = {}) {
|
|
|
11
23
|
if (files.length === 0) {
|
|
12
24
|
throw new Error('No schema files matched. Check config.schema patterns.');
|
|
13
25
|
}
|
|
14
|
-
const
|
|
15
|
-
for (const file of files)
|
|
16
|
-
|
|
17
|
-
|
|
26
|
+
const modules = [];
|
|
27
|
+
for (const file of files)
|
|
28
|
+
modules.push(await importSchemaFile(file));
|
|
29
|
+
return modules;
|
|
30
|
+
}
|
|
31
|
+
/** Import one schema file. A failure names the file, and points out git conflict markers. */
|
|
32
|
+
async function importSchemaFile(file) {
|
|
33
|
+
try {
|
|
34
|
+
return await importModuleFile(file);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error(await describeImportFailure(file, error), { cause: error });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function describeImportFailure(file, error) {
|
|
41
|
+
const failures = errorEntries(error);
|
|
42
|
+
const summary = `Failed to load schema file ${file}: ${failures.map(describeErrorEntry).join('; ')}`;
|
|
43
|
+
// The parser names the file that failed to parse, which can be a module the schema file imports.
|
|
44
|
+
const conflicted = await findConflictedFile([file, ...failures.flatMap(reportedFiles)]);
|
|
45
|
+
if (conflicted === undefined)
|
|
46
|
+
return summary;
|
|
47
|
+
const holder = conflicted === file ? 'The file' : conflicted;
|
|
48
|
+
return `${summary}\n${holder} contains unresolved merge conflict markers. Resolve the conflict and run the command again.`;
|
|
49
|
+
}
|
|
50
|
+
async function findConflictedFile(files) {
|
|
51
|
+
for (const file of new Set(files)) {
|
|
52
|
+
if (hasConflictMarkers(await readFile(file, 'utf8').catch(() => '')))
|
|
53
|
+
return file;
|
|
18
54
|
}
|
|
19
|
-
return
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
/** The individual errors behind `error`: Bun reports several parse errors as one AggregateError. */
|
|
58
|
+
function errorEntries(error) {
|
|
59
|
+
if (isRecord(error) && Array.isArray(error.errors) && error.errors.length > 0)
|
|
60
|
+
return error.errors;
|
|
61
|
+
return [error];
|
|
62
|
+
}
|
|
63
|
+
function describeErrorEntry(entry) {
|
|
64
|
+
const message = messageOf(entry);
|
|
65
|
+
const position = positionOf(entry);
|
|
66
|
+
return position ? `${message} (${position.file}:${position.line}:${position.column})` : message;
|
|
67
|
+
}
|
|
68
|
+
/** The files an error names as failing: Bun's position, or the location line of jiti's message under Node. */
|
|
69
|
+
function reportedFiles(entry) {
|
|
70
|
+
const located = [...messageOf(entry).matchAll(MESSAGE_LOCATION_LINE)].flatMap((match) => match[1] ?? []);
|
|
71
|
+
const position = positionOf(entry);
|
|
72
|
+
return position ? [position.file, ...located] : located;
|
|
73
|
+
}
|
|
74
|
+
function messageOf(entry) {
|
|
75
|
+
return isRecord(entry) && typeof entry.message === 'string' && entry.message !== '' ? entry.message : String(entry);
|
|
76
|
+
}
|
|
77
|
+
function positionOf(entry) {
|
|
78
|
+
if (!isRecord(entry) || !isRecord(entry.position))
|
|
79
|
+
return undefined;
|
|
80
|
+
const { file, line, column } = entry.position;
|
|
81
|
+
if (typeof file !== 'string' || typeof line !== 'number' || typeof column !== 'number')
|
|
82
|
+
return undefined;
|
|
83
|
+
return { file, line, column };
|
|
84
|
+
}
|
|
85
|
+
function isRecord(value) {
|
|
86
|
+
return typeof value === 'object' && value !== null;
|
|
20
87
|
}
|
|
21
88
|
//# sourceMappingURL=schema-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../src/schema-loader.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,MAAM,WAAW,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../src/schema-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,MAAM,WAAW,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAajD;;;GAGG;AACH,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAE5D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA8B,EAC9B,UAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACjE,OAAO,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA8B,EAC9B,UAA+B,EAAE;IAEjC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;QACjC,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,OAAO,GAA8B,EAAE,CAAA;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;IACpE,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,6FAA6F;AAC7F,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,KAAc;IAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,8BAA8B,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACpG,iGAAiG;IACjG,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IACvF,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,OAAO,CAAA;IAC5C,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IAC5D,OAAO,GAAG,OAAO,KAAK,MAAM,8FAA8F,CAAA;AAC5H,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAe;IAC/C,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,IAAI,kBAAkB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IACnF,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,oGAAoG;AACpG,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAA;IAClG,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;AACjG,CAAC;AAED,8GAA8G;AAC9G,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACxG,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IACnE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACxG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lossless ClickHouse SQL lexer: concatenating every token's `text` reproduces
|
|
3
|
+
* the input exactly. It follows ClickHouse's own lexer closely enough to tell
|
|
4
|
+
* code from strings, quoted identifiers and comments, and names from numbers;
|
|
5
|
+
* it is not a parser.
|
|
6
|
+
*/
|
|
7
|
+
export type SQLTokenKind = 'whitespace' | 'line_comment' | 'block_comment' | 'string' | 'quoted_identifier' | 'identifier' | 'number' | 'punctuation';
|
|
8
|
+
export interface SQLToken {
|
|
9
|
+
kind: SQLTokenKind;
|
|
10
|
+
/** Exact source text of the token. */
|
|
11
|
+
text: string;
|
|
12
|
+
/** Offset of the first character in the input. */
|
|
13
|
+
start: number;
|
|
14
|
+
/** Offset just past the last character. */
|
|
15
|
+
end: number;
|
|
16
|
+
/**
|
|
17
|
+
* `false` only for a string, quoted identifier or block comment that runs to
|
|
18
|
+
* the end of the input without its closing delimiter.
|
|
19
|
+
*/
|
|
20
|
+
terminated: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function tokenizeSQL(sql: string): SQLToken[];
|
|
23
|
+
/** Whitespace and comments: tokens that never change what a statement means. */
|
|
24
|
+
export declare function isTrivia(token: SQLToken): boolean;
|
|
25
|
+
/** The name an identifier token denotes: bare text, or the unquoted value. */
|
|
26
|
+
export declare function identifierName(token: SQLToken): string | undefined;
|
|
27
|
+
/** The value of a terminated string literal (`'…'` or a `$tag$…$tag$` heredoc). */
|
|
28
|
+
export declare function stringLiteralValue(token: SQLToken): string | undefined;
|
|
29
|
+
//# sourceMappingURL=sql-lexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-lexer.d.ts","sourceRoot":"","sources":["../src/sql-lexer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,cAAc,GACd,eAAe,GACf,QAAQ,GACR,mBAAmB,GACnB,YAAY,GACZ,QAAQ,GACR,aAAa,CAAA;AAEjB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAA;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;CACpB;AAmBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAYnD;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEjD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAIlE;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAOtE"}
|