@jantokic/chtype 0.4.0 → 0.4.1

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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jantokic/chtype",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
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",