@jantokic/chtype 0.4.0 → 0.4.2

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.
@@ -5,12 +5,19 @@
5
5
  */
6
6
  import type { IntrospectedTable } from '../codegen/introspect.js';
7
7
  import type { ColumnDiff, SchemaDiff } from './differ.js';
8
+ /** Options for SQL generation. */
9
+ export interface GenerateOptions {
10
+ /** Emit IF EXISTS / IF NOT EXISTS for idempotent reruns. Default: false. */
11
+ idempotent?: boolean;
12
+ /** Emit ON CLUSTER for distributed DDL. e.g. "'{cluster}'" */
13
+ cluster?: string;
14
+ }
8
15
  /**
9
16
  * Generate ClickHouse SQL statements from a SchemaDiff.
10
17
  *
11
18
  * Returns an array of SQL strings, one per statement.
12
19
  */
13
- export declare function generateSQL(diff: SchemaDiff): string[];
20
+ export declare function generateSQL(diff: SchemaDiff, options?: GenerateOptions): string[];
14
21
  /**
15
22
  * Generate a CREATE TABLE statement from a full table definition.
16
23
  *
@@ -18,16 +25,16 @@ export declare function generateSQL(diff: SchemaDiff): string[];
18
25
  * trusted inputs from introspect.ts (sourced from system tables), not
19
26
  * user-supplied strings, so they are emitted as-is without sanitization.
20
27
  */
21
- export declare function generateCreateTable(table: IntrospectedTable): string;
28
+ export declare function generateCreateTable(table: IntrospectedTable, options?: GenerateOptions): string;
22
29
  /**
23
30
  * Generate a DROP TABLE statement.
24
31
  */
25
- export declare function generateDropTable(tableName: string): string;
32
+ export declare function generateDropTable(tableName: string, options?: GenerateOptions): string;
26
33
  /**
27
34
  * Generate ALTER TABLE statements for column-level changes.
28
35
  *
29
36
  * Each column change produces a separate ALTER TABLE statement for clarity
30
37
  * and to allow partial application.
31
38
  */
32
- export declare function generateAlterTable(tableName: string, columns: ColumnDiff[]): string[];
39
+ export declare function generateAlterTable(tableName: string, columns: ColumnDiff[], options?: GenerateOptions): string[];
33
40
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/migrate/generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAa,MAAM,aAAa,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAsBtD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAgCpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAmCrF"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/migrate/generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAa,MAAM,aAAa,CAAC;AAErE,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE,CAsBjF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAmC/F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAItF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE,CAwChH"}
@@ -8,21 +8,21 @@
8
8
  *
9
9
  * Returns an array of SQL strings, one per statement.
10
10
  */
11
- export function generateSQL(diff) {
11
+ export function generateSQL(diff, options) {
12
12
  const statements = [];
13
13
  for (const tableDiff of diff.tables) {
14
14
  switch (tableDiff.action) {
15
15
  case 'add':
16
16
  if (tableDiff.definition) {
17
- statements.push(generateCreateTable(tableDiff.definition));
17
+ statements.push(generateCreateTable(tableDiff.definition, options));
18
18
  }
19
19
  break;
20
20
  case 'drop':
21
- statements.push(generateDropTable(tableDiff.table));
21
+ statements.push(generateDropTable(tableDiff.table, options));
22
22
  break;
23
23
  case 'modify':
24
24
  if (tableDiff.columns) {
25
- statements.push(...generateAlterTable(tableDiff.table, tableDiff.columns));
25
+ statements.push(...generateAlterTable(tableDiff.table, tableDiff.columns, options));
26
26
  }
27
27
  break;
28
28
  }
@@ -36,7 +36,7 @@ export function generateSQL(diff) {
36
36
  * trusted inputs from introspect.ts (sourced from system tables), not
37
37
  * user-supplied strings, so they are emitted as-is without sanitization.
38
38
  */
39
- export function generateCreateTable(table) {
39
+ export function generateCreateTable(table, options) {
40
40
  const columns = table.columns.map((col) => {
41
41
  let def = ` ${quoteIdentifier(col.name)} ${col.type}`;
42
42
  if (col.defaultKind && col.defaultExpression) {
@@ -47,7 +47,9 @@ export function generateCreateTable(table) {
47
47
  }
48
48
  return def;
49
49
  });
50
- let sql = `CREATE TABLE ${quoteIdentifier(table.name)}\n(\n${columns.join(',\n')}\n)`;
50
+ const ifNotExists = options?.idempotent ? ' IF NOT EXISTS' : '';
51
+ const onCluster = options?.cluster ? ` ON CLUSTER ${options.cluster}` : '';
52
+ let sql = `CREATE TABLE${ifNotExists} ${quoteIdentifier(table.name)}${onCluster}\n(\n${columns.join(',\n')}\n)`;
51
53
  sql += `\nENGINE = ${table.engineFull || table.engine}`;
52
54
  // ORDER BY, PARTITION BY, and PRIMARY KEY are only valid for MergeTree-family engines.
53
55
  // Emitting them for Log, Memory, Kafka, etc. produces invalid DDL.
@@ -69,8 +71,10 @@ export function generateCreateTable(table) {
69
71
  /**
70
72
  * Generate a DROP TABLE statement.
71
73
  */
72
- export function generateDropTable(tableName) {
73
- return `DROP TABLE ${quoteIdentifier(tableName)}`;
74
+ export function generateDropTable(tableName, options) {
75
+ const ifExists = options?.idempotent ? ' IF EXISTS' : '';
76
+ const onCluster = options?.cluster ? ` ON CLUSTER ${options.cluster}` : '';
77
+ return `DROP TABLE${ifExists} ${quoteIdentifier(tableName)}${onCluster}`;
74
78
  }
75
79
  /**
76
80
  * Generate ALTER TABLE statements for column-level changes.
@@ -78,13 +82,16 @@ export function generateDropTable(tableName) {
78
82
  * Each column change produces a separate ALTER TABLE statement for clarity
79
83
  * and to allow partial application.
80
84
  */
81
- export function generateAlterTable(tableName, columns) {
85
+ export function generateAlterTable(tableName, columns, options) {
82
86
  const statements = [];
83
87
  const quoted = quoteIdentifier(tableName);
88
+ const onCluster = options?.cluster ? ` ON CLUSTER ${options.cluster}` : '';
89
+ const ifExists = options?.idempotent;
84
90
  for (const diff of columns) {
85
91
  switch (diff.action) {
86
92
  case 'add': {
87
- let clause = `ALTER TABLE ${quoted} ADD COLUMN ${quoteIdentifier(diff.column.name)} ${diff.column.type}`;
93
+ const ifNotExists = ifExists ? ' IF NOT EXISTS' : '';
94
+ let clause = `ALTER TABLE ${quoted}${onCluster} ADD COLUMN${ifNotExists} ${quoteIdentifier(diff.column.name)} ${diff.column.type}`;
88
95
  if (diff.column.defaultKind && diff.column.defaultExpression) {
89
96
  clause += ` ${diff.column.defaultKind} ${diff.column.defaultExpression}`;
90
97
  }
@@ -94,11 +101,13 @@ export function generateAlterTable(tableName, columns) {
94
101
  statements.push(clause);
95
102
  break;
96
103
  }
97
- case 'drop':
98
- statements.push(`ALTER TABLE ${quoted} DROP COLUMN ${quoteIdentifier(diff.column.name)}`);
104
+ case 'drop': {
105
+ const ifExistsCol = ifExists ? ' IF EXISTS' : '';
106
+ statements.push(`ALTER TABLE ${quoted}${onCluster} DROP COLUMN${ifExistsCol} ${quoteIdentifier(diff.column.name)}`);
99
107
  break;
108
+ }
100
109
  case 'modify': {
101
- let clause = `ALTER TABLE ${quoted} MODIFY COLUMN ${quoteIdentifier(diff.column.name)} ${diff.column.type}`;
110
+ let clause = `ALTER TABLE ${quoted}${onCluster} MODIFY COLUMN ${quoteIdentifier(diff.column.name)} ${diff.column.type}`;
102
111
  if (diff.column.defaultKind && diff.column.defaultExpression) {
103
112
  clause += ` ${diff.column.defaultKind} ${diff.column.defaultExpression}`;
104
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/migrate/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/migrate/generator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { diffSchemas, columnsEqual, type ColumnDiff, type TableDiff, type SchemaDiff, type DiffAction, } from './differ.js';
2
- export { generateSQL, generateCreateTable, generateDropTable, generateAlterTable, } from './generator.js';
2
+ export { generateSQL, generateCreateTable, generateDropTable, generateAlterTable, type GenerateOptions, } from './generator.js';
3
3
  export { createSnapshot, saveSnapshot, loadSnapshot, type Snapshot, type SnapshotMeta, } from './snapshot.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,GAGb,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,GAGb,MAAM,eAAe,CAAC"}
@@ -28,8 +28,8 @@ export declare class Subquery extends Expression {
28
28
  }
29
29
  /** ClickHouse function builders. */
30
30
  export declare const fn: {
31
- argMax(column: string, versionColumn: string): Expression;
32
- argMin(column: string, versionColumn: string): Expression;
31
+ argMax(column: string, versionColumn: string | string[]): Expression;
32
+ argMin(column: string, versionColumn: string | string[]): Expression;
33
33
  count(column?: string): Expression;
34
34
  countDistinct(column: string): Expression;
35
35
  sum(column: string): Expression;
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/query/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/query/expressions.ts"],"names":[],"mappings":"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"}
@@ -61,10 +61,12 @@ export class Subquery extends Expression {
61
61
  /** ClickHouse function builders. */
62
62
  export const fn = {
63
63
  argMax(column, versionColumn) {
64
- return new Expression(`argMax(${column}, ${versionColumn})`);
64
+ const ver = Array.isArray(versionColumn) ? `(${versionColumn.join(', ')})` : versionColumn;
65
+ return new Expression(`argMax(${column}, ${ver})`);
65
66
  },
66
67
  argMin(column, versionColumn) {
67
- return new Expression(`argMin(${column}, ${versionColumn})`);
68
+ const ver = Array.isArray(versionColumn) ? `(${versionColumn.join(', ')})` : versionColumn;
69
+ return new Expression(`argMin(${column}, ${ver})`);
68
70
  },
69
71
  count(column) {
70
72
  return new Expression(column ? `count(${column})` : 'count()');
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../src/query/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../src/query/expressions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { createQueryBuilder, type QueryBuilder } from './query-builder.js';
1
+ export { createQueryBuilder, type QueryBuilder, type WithBuilder } from './query-builder.js';
2
2
  export { SelectBuilder, unionAll, unionDistinct, intersect, except, setOperation } from './select-builder.js';
3
3
  export { InsertBuilder } from './insert-builder.js';
4
4
  export { DeleteBuilder } from './delete-builder.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,SAAS,EACT,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,GACT,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,SAAS,EACT,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,GACT,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,KAAK,EAA4B,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,GAAG,EAAyB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,KAAK,EAA4B,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,GAAG,EAAyB,MAAM,mBAAmB,CAAC"}
@@ -5,6 +5,13 @@ import { InsertBuilder } from './insert-builder.js';
5
5
  import { DeleteBuilder } from './delete-builder.js';
6
6
  import { UpdateBuilder } from './update-builder.js';
7
7
  import { fn, Subquery } from './expressions.js';
8
+ /** Schema entry for CTE tables — columns are untyped (Record<string, unknown>). */
9
+ type CteSchema = {
10
+ row: Record<string, unknown>;
11
+ insert: Record<string, unknown>;
12
+ engine: 'CTE';
13
+ versionColumn: null;
14
+ };
8
15
  export interface QueryBuilder<DB extends DatabaseSchema> {
9
16
  selectFrom<T extends TableName<DB>>(table: T): SelectBuilder<DB, T>;
10
17
  insertInto<T extends TableName<DB>>(table: T): InsertBuilder<DB, T>;
@@ -15,8 +22,21 @@ export interface QueryBuilder<DB extends DatabaseSchema> {
15
22
  subquery(builder: {
16
23
  compile(): CompiledQuery<unknown>;
17
24
  }): Subquery;
25
+ /** Start a CTE chain. Returns a builder where selectFrom() accepts the CTE name. */
26
+ with<N extends string>(name: N, builder: Subquery | {
27
+ compile(): CompiledQuery<unknown>;
28
+ }): WithBuilder<DB & Record<N, CteSchema>>;
18
29
  fn: typeof fn;
19
30
  }
31
+ /** Builder returned by qb.with() — accumulates CTEs then creates a SelectBuilder. */
32
+ export interface WithBuilder<DB extends DatabaseSchema> {
33
+ /** Add another CTE to the chain. */
34
+ with<N extends string>(name: N, builder: Subquery | {
35
+ compile(): CompiledQuery<unknown>;
36
+ }): WithBuilder<DB & Record<N, CteSchema>>;
37
+ /** Select from a table or CTE name. CTEs defined via with() are valid table names. */
38
+ selectFrom<T extends TableName<DB>>(table: T): SelectBuilder<DB, T>;
39
+ }
20
40
  /**
21
41
  * Create a type-safe query builder for your ClickHouse database.
22
42
  *
@@ -35,4 +55,5 @@ export interface QueryBuilder<DB extends DatabaseSchema> {
35
55
  * ```
36
56
  */
37
57
  export declare function createQueryBuilder<DB extends DatabaseSchema>(): QueryBuilder<DB>;
58
+ export {};
38
59
  //# sourceMappingURL=query-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,cAAc;IACrD,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACtD,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,QAAQ,CAAC;IACnE,EAAE,EAAE,OAAO,EAAE,CAAC;CACf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,cAAc,KAAK,YAAY,CAAC,EAAE,CAAC,CAsBhF"}
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGhD,mFAAmF;AACnF,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC;IACd,aAAa,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,cAAc;IACrD,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACtD,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,QAAQ,CAAC;IACnE,oFAAoF;IACpF,IAAI,CAAC,CAAC,SAAS,MAAM,EACnB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,GACxD,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1C,EAAE,EAAE,OAAO,EAAE,CAAC;CACf;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW,CAAC,EAAE,SAAS,cAAc;IACpD,oCAAoC;IACpC,IAAI,CAAC,CAAC,SAAS,MAAM,EACnB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,GACxD,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1C,sFAAsF;IACtF,UAAU,CAAC,CAAC,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;CACrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,cAAc,KAAK,YAAY,CAAC,EAAE,CAAC,CA4BhF"}
@@ -4,6 +4,7 @@ import { InsertBuilder } from './insert-builder.js';
4
4
  import { DeleteBuilder } from './delete-builder.js';
5
5
  import { UpdateBuilder } from './update-builder.js';
6
6
  import { fn, Subquery } from './expressions.js';
7
+ import { VALID_IDENTIFIER } from './compile-utils.js';
7
8
  /**
8
9
  * Create a type-safe query builder for your ClickHouse database.
9
10
  *
@@ -41,7 +42,29 @@ export function createQueryBuilder() {
41
42
  subquery(builder) {
42
43
  return new Subquery(builder.compile());
43
44
  },
45
+ with(name, builder) {
46
+ return createWithBuilder(name, builder, []);
47
+ },
44
48
  fn,
45
49
  };
46
50
  }
51
+ function createWithBuilder(name, builder, existingCtes) {
52
+ if (!VALID_IDENTIFIER.test(name)) {
53
+ throw new Error(`Invalid CTE name: "${name}"`);
54
+ }
55
+ const sub = builder instanceof Subquery ? builder : new Subquery(builder.compile());
56
+ const ctes = [...existingCtes, { name, subquery: sub }];
57
+ return {
58
+ with(nextName, nextBuilder) {
59
+ return createWithBuilder(nextName, nextBuilder, ctes);
60
+ },
61
+ selectFrom(table) {
62
+ const sb = new SelectBuilder(table);
63
+ for (const cte of ctes) {
64
+ sb.with(cte.name, cte.subquery);
65
+ }
66
+ return sb;
67
+ },
68
+ };
69
+ }
47
70
  //# sourceMappingURL=query-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAahD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,UAAU,CAA0B,KAAQ;YAC1C,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAA0B,KAAQ;YAC1C,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAA0B,KAAQ;YAC1C,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAA0B,KAAQ;YACtC,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,IAAY,EAAE,IAAyB;YAC3C,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,CAAC,OAA8C;YACrD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,EAAE;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAqCtD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,UAAU,CAA0B,KAAQ;YAC1C,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAA0B,KAAQ;YAC1C,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAA0B,KAAQ;YAC1C,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAA0B,KAAQ;YACtC,OAAO,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,IAAY,EAAE,IAAyB;YAC3C,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,CAAC,OAA8C;YACrD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CACF,IAAO,EACP,OAAyD;YAEzD,OAAO,iBAAiB,CAA4B,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,EAAE;KACH,CAAC;AACJ,CAAC;AAOD,SAAS,iBAAiB,CACxB,IAAY,EACZ,OAAyD,EACzD,YAAwB;IAExB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,YAAY,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,MAAM,IAAI,GAAe,CAAC,GAAG,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAEpE,OAAO;QACL,IAAI,CACF,QAAW,EACX,WAA6D;YAE7D,OAAO,iBAAiB,CAA4B,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;QACD,UAAU,CAA0B,KAAQ;YAC1C,MAAM,EAAE,GAAG,IAAI,aAAa,CAAQ,KAAK,CAAC,CAAC;YAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jantokic/chtype",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Type-safe ClickHouse toolkit for TypeScript — schema codegen, query builder, and enhanced client",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",