@chkit/core 0.1.0-beta.20 → 0.1.0-beta.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,gBAAgB,EAIjB,MAAM,YAAY,CAAA;AAmGnB,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAI9E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAc3F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAiB7F"}
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,gBAAgB,EAIjB,MAAM,YAAY,CAAA;AA2JnB,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAI9E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAc3F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAiB7F"}
package/dist/canonical.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { normalizeKeyColumns } from './key-clause.js';
2
2
  import { isSchemaDefinition } from './model.js';
3
+ import { canonicalizeCodec } from './codec.js';
3
4
  import { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
4
5
  function sortByName(items) {
5
6
  return [...items].sort((a, b) => a.name.localeCompare(b.name));
@@ -18,6 +19,7 @@ function canonicalizeColumn(column) {
18
19
  renamedFrom: column.renamedFrom?.trim(),
19
20
  type: typeof column.type === 'string' ? column.type.trim() : column.type,
20
21
  comment: column.comment?.trim(),
22
+ codec: column.codec ? canonicalizeCodec(column.codec) : undefined,
21
23
  };
22
24
  }
23
25
  function canonicalizeIndex(index) {
@@ -72,8 +74,55 @@ function canonicalizeView(def) {
72
74
  comment: def.comment?.trim(),
73
75
  };
74
76
  }
77
+ const INTERVAL_UNIT_PATTERN = /\b(second|minute|hour|day|week|month|year)s?\b/gi;
78
+ function canonicalizeInterval(value) {
79
+ if (value === undefined)
80
+ return undefined;
81
+ return value
82
+ .trim()
83
+ .replace(/\s+/g, ' ')
84
+ .replace(INTERVAL_UNIT_PATTERN, (unit) => unit.toUpperCase().replace(/S$/, ''));
85
+ }
86
+ function canonicalizeRefresh(refresh) {
87
+ if (!refresh)
88
+ return undefined;
89
+ const dependsOn = refresh.dependsOn
90
+ ? [...refresh.dependsOn]
91
+ .map((dep) => ({ database: dep.database.trim(), name: dep.name.trim() }))
92
+ .sort((a, b) => {
93
+ const aKey = `${a.database}.${a.name}`;
94
+ const bKey = `${b.database}.${b.name}`;
95
+ return aKey.localeCompare(bKey);
96
+ })
97
+ : undefined;
98
+ const settings = refresh.settings
99
+ ? Object.fromEntries(Object.entries(refresh.settings).sort(([a], [b]) => a.localeCompare(b)))
100
+ : undefined;
101
+ const canonical = {};
102
+ const every = canonicalizeInterval(refresh.every);
103
+ const after = canonicalizeInterval(refresh.after);
104
+ const offset = canonicalizeInterval(refresh.offset);
105
+ const randomize = canonicalizeInterval(refresh.randomize);
106
+ if (every !== undefined)
107
+ canonical.every = every;
108
+ if (after !== undefined)
109
+ canonical.after = after;
110
+ if (offset !== undefined)
111
+ canonical.offset = offset;
112
+ if (randomize !== undefined)
113
+ canonical.randomize = randomize;
114
+ if (dependsOn && dependsOn.length > 0)
115
+ canonical.dependsOn = dependsOn;
116
+ if (settings && Object.keys(settings).length > 0)
117
+ canonical.settings = settings;
118
+ if (refresh.append)
119
+ canonical.append = true;
120
+ if (refresh.empty)
121
+ canonical.empty = true;
122
+ return canonical;
123
+ }
75
124
  function canonicalizeMaterializedView(def) {
76
- return {
125
+ const canonical = {
77
126
  ...def,
78
127
  database: def.database.trim(),
79
128
  name: def.name.trim(),
@@ -84,6 +133,14 @@ function canonicalizeMaterializedView(def) {
84
133
  as: normalizeSQLFragment(def.as),
85
134
  comment: def.comment?.trim(),
86
135
  };
136
+ const refresh = canonicalizeRefresh(def.refresh);
137
+ if (refresh) {
138
+ canonical.refresh = refresh;
139
+ }
140
+ else {
141
+ delete canonical.refresh;
142
+ }
143
+ return canonical;
87
144
  }
88
145
  export function canonicalizeDefinition(def) {
89
146
  if (def.kind === 'table')
@@ -1 +1 @@
1
- {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE3E,SAAS,UAAU,CAA6B,KAAU;IACxD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,QAAQ,CAAC,IAA8B;IAC9C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAwB;IAClD,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACxB,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE;QACvC,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;QACxE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;KAChC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA0B;IACnD,OAAO;QACL,GAAG,KAAK;QACR,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC;KACnD,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAgC;IAC9D,OAAO;QACL,GAAG,UAAU;QACb,KAAK,EAAE,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAoB;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;QAC3B,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACpE;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACxF,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW;QACjC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACzD,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO;QACL,GAAG,GAAG;QACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC1B,CAAC,CAAC;gBACE,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE;gBAC1C,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE;aAClC;YACH,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC5C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;QAC/C,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;QACzC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QAChF,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QACxD,QAAQ;QACR,OAAO;QACP,WAAW;QACX,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;KAC7B,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAmB;IAC3C,OAAO;QACL,GAAG,GAAG;QACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;KAC7B,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,GAA+B;IACnE,OAAO;QACL,GAAG,GAAG;QACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,EAAE,EAAE;YACF,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;SACzB;QACD,EAAE,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;KAC7B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAqB;IAC1D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACvD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACrD,OAAO,4BAA4B,CAAC,GAAG,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAqB;IACjD,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAA+B;IACrE,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAA;IACjD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;QAC9C,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,SAAS,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACrC,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QACpD,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,GAA4B;IACvE,MAAM,GAAG,GAAuB,EAAE,CAAA;IAElC,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAE;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,KAAK;gBAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACtC,OAAM;QACR,CAAC;QACD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACf,OAAM;QACR,CAAC;IACH,CAAC,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ColumnCodec, ColumnCodecSpec, GeneralColumnCodec, PreprocessingColumnCodec, RawColumnCodec } from './model-types.js';
2
+ export declare function isGeneralCodec(codec: ColumnCodec): codec is GeneralColumnCodec;
3
+ export declare function isPreprocessorCodec(codec: ColumnCodec): codec is PreprocessingColumnCodec;
4
+ export declare function isRawCodec(codec: ColumnCodec): codec is RawColumnCodec;
5
+ export declare function renderCodec(spec: ColumnCodecSpec): string;
6
+ /**
7
+ * Parses a ClickHouse-returned codec expression (e.g. `CODEC(Delta(4), ZSTD(1))`).
8
+ * Returns undefined for empty/missing input. Unknown or unparsable tokens fall
9
+ * back to a single `raw` atom holding the whole chain, so ClickHouse-returned
10
+ * codecs we haven't typed still round-trip cleanly.
11
+ */
12
+ export declare function parseCodec(raw: string | undefined | null): ColumnCodec[] | undefined;
13
+ /**
14
+ * Normalizes a codec spec to array form with ClickHouse defaults filled in,
15
+ * so that `{kind:'ZSTD'}` and `{kind:'ZSTD', level:1}` compare equal.
16
+ * Does not reorder chain steps — `[Delta, ZSTD]` ≠ `[ZSTD, Delta]` semantically.
17
+ */
18
+ export declare function canonicalizeCodec(spec: ColumnCodecSpec): ColumnCodec[];
19
+ export declare function codecsEqual(a?: ColumnCodecSpec, b?: ColumnCodecSpec): boolean;
20
+ export declare const codec: {
21
+ raw: (expression: string) => RawColumnCodec;
22
+ };
23
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACf,MAAM,kBAAkB,CAAA;AASzB,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,kBAAkB,CAE9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,wBAAwB,CAEzF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,cAAc,CAEtE;AAyBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAGzD;AA6ED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,EAAE,GAAG,SAAS,CAkBpF;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,EAAE,CAEtE;AAED,wBAAgB,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAI7E;AAED,eAAO,MAAM,KAAK;sBACE,MAAM,KAAG,cAAc;CAC1C,CAAA"}
package/dist/codec.js ADDED
@@ -0,0 +1,194 @@
1
+ const GENERAL_KINDS = new Set(['NONE', 'LZ4', 'LZ4HC', 'ZSTD', 'T64', 'GCD', 'ALP']);
2
+ const PREPROCESSOR_KINDS = new Set(['Delta', 'DoubleDelta', 'Gorilla', 'FPC']);
3
+ function toArray(spec) {
4
+ return Array.isArray(spec) ? spec : [spec];
5
+ }
6
+ export function isGeneralCodec(codec) {
7
+ return GENERAL_KINDS.has(codec.kind);
8
+ }
9
+ export function isPreprocessorCodec(codec) {
10
+ return PREPROCESSOR_KINDS.has(codec.kind);
11
+ }
12
+ export function isRawCodec(codec) {
13
+ return codec.kind === 'raw';
14
+ }
15
+ function renderStep(step) {
16
+ switch (step.kind) {
17
+ case 'NONE':
18
+ case 'LZ4':
19
+ case 'T64':
20
+ case 'GCD':
21
+ case 'ALP':
22
+ return step.kind;
23
+ case 'LZ4HC':
24
+ return step.level !== undefined ? `LZ4HC(${step.level})` : 'LZ4HC';
25
+ case 'ZSTD':
26
+ return step.level !== undefined ? `ZSTD(${step.level})` : 'ZSTD';
27
+ case 'Delta':
28
+ case 'DoubleDelta':
29
+ case 'Gorilla':
30
+ return step.size !== undefined ? `${step.kind}(${step.size})` : step.kind;
31
+ case 'FPC':
32
+ return `FPC(${step.level}, ${step.floatSize})`;
33
+ case 'raw':
34
+ return step.expression;
35
+ }
36
+ }
37
+ export function renderCodec(spec) {
38
+ const steps = toArray(spec);
39
+ return `CODEC(${steps.map(renderStep).join(', ')})`;
40
+ }
41
+ const ATOM_PATTERN = /^(\w+)(?:\(([^)]*)\))?$/;
42
+ function parseAtom(raw) {
43
+ const trimmed = raw.trim();
44
+ if (trimmed.length === 0)
45
+ return undefined;
46
+ const match = trimmed.match(ATOM_PATTERN);
47
+ if (!match)
48
+ return undefined;
49
+ const [, name, argsRaw] = match;
50
+ if (!name)
51
+ return undefined;
52
+ const rawArgs = argsRaw?.split(',').map((value) => value.trim());
53
+ const args = rawArgs && !(rawArgs.length === 1 && rawArgs[0] === '') ? rawArgs : undefined;
54
+ switch (name) {
55
+ case 'NONE':
56
+ case 'LZ4':
57
+ case 'T64':
58
+ case 'GCD':
59
+ case 'ALP':
60
+ if (args !== undefined)
61
+ return undefined;
62
+ return { kind: name };
63
+ case 'LZ4HC': {
64
+ if (args === undefined)
65
+ return { kind: 'LZ4HC' };
66
+ if (args.length !== 1)
67
+ return undefined;
68
+ const level = Number(args[0]);
69
+ if (!Number.isFinite(level))
70
+ return undefined;
71
+ return { kind: 'LZ4HC', level };
72
+ }
73
+ case 'ZSTD': {
74
+ if (args === undefined)
75
+ return { kind: 'ZSTD' };
76
+ if (args.length !== 1)
77
+ return undefined;
78
+ const level = Number(args[0]);
79
+ if (!Number.isFinite(level))
80
+ return undefined;
81
+ return { kind: 'ZSTD', level };
82
+ }
83
+ case 'Delta':
84
+ case 'DoubleDelta':
85
+ case 'Gorilla': {
86
+ if (args === undefined)
87
+ return { kind: name };
88
+ if (args.length !== 1)
89
+ return undefined;
90
+ const size = Number(args[0]);
91
+ if (size !== 1 && size !== 2 && size !== 4 && size !== 8)
92
+ return undefined;
93
+ return { kind: name, size };
94
+ }
95
+ case 'FPC': {
96
+ if (!args || args.length !== 2)
97
+ return undefined;
98
+ const level = Number(args[0]);
99
+ const floatSize = Number(args[1]);
100
+ if (!Number.isFinite(level))
101
+ return undefined;
102
+ if (floatSize !== 4 && floatSize !== 8)
103
+ return undefined;
104
+ return { kind: 'FPC', level, floatSize };
105
+ }
106
+ default:
107
+ return undefined;
108
+ }
109
+ }
110
+ function splitTopLevelCommas(input) {
111
+ const out = [];
112
+ let depth = 0;
113
+ let current = '';
114
+ for (let i = 0; i < input.length; i++) {
115
+ const ch = input[i];
116
+ if (ch === '(')
117
+ depth += 1;
118
+ else if (ch === ')')
119
+ depth = Math.max(0, depth - 1);
120
+ if (ch === ',' && depth === 0) {
121
+ out.push(current);
122
+ current = '';
123
+ continue;
124
+ }
125
+ current += ch;
126
+ }
127
+ if (current.length > 0)
128
+ out.push(current);
129
+ return out;
130
+ }
131
+ /**
132
+ * Parses a ClickHouse-returned codec expression (e.g. `CODEC(Delta(4), ZSTD(1))`).
133
+ * Returns undefined for empty/missing input. Unknown or unparsable tokens fall
134
+ * back to a single `raw` atom holding the whole chain, so ClickHouse-returned
135
+ * codecs we haven't typed still round-trip cleanly.
136
+ */
137
+ export function parseCodec(raw) {
138
+ if (!raw)
139
+ return undefined;
140
+ const trimmed = raw.trim();
141
+ if (trimmed.length === 0)
142
+ return undefined;
143
+ const stripped = trimmed.replace(/^CODEC\s*\(([\s\S]*)\)\s*$/i, '$1').trim();
144
+ if (stripped.length === 0)
145
+ return undefined;
146
+ const atoms = splitTopLevelCommas(stripped)
147
+ .map((value) => value.trim())
148
+ .filter((value) => value.length > 0);
149
+ const parsed = [];
150
+ for (const atom of atoms) {
151
+ const step = parseAtom(atom);
152
+ if (!step)
153
+ return [{ kind: 'raw', expression: stripped }];
154
+ parsed.push(step);
155
+ }
156
+ return parsed;
157
+ }
158
+ function canonicalizeStep(step) {
159
+ switch (step.kind) {
160
+ case 'ZSTD':
161
+ return { kind: 'ZSTD', level: step.level ?? 1 };
162
+ case 'LZ4HC':
163
+ return { kind: 'LZ4HC', level: step.level ?? 9 };
164
+ case 'Delta':
165
+ case 'DoubleDelta':
166
+ case 'Gorilla':
167
+ return { kind: step.kind, size: step.size ?? 1 };
168
+ case 'FPC':
169
+ return { kind: 'FPC', level: step.level, floatSize: step.floatSize };
170
+ case 'raw':
171
+ return { kind: 'raw', expression: step.expression.trim() };
172
+ default:
173
+ return { kind: step.kind };
174
+ }
175
+ }
176
+ /**
177
+ * Normalizes a codec spec to array form with ClickHouse defaults filled in,
178
+ * so that `{kind:'ZSTD'}` and `{kind:'ZSTD', level:1}` compare equal.
179
+ * Does not reorder chain steps — `[Delta, ZSTD]` ≠ `[ZSTD, Delta]` semantically.
180
+ */
181
+ export function canonicalizeCodec(spec) {
182
+ return toArray(spec).map(canonicalizeStep);
183
+ }
184
+ export function codecsEqual(a, b) {
185
+ if (a === undefined && b === undefined)
186
+ return true;
187
+ if (a === undefined || b === undefined)
188
+ return false;
189
+ return JSON.stringify(canonicalizeCodec(a)) === JSON.stringify(canonicalizeCodec(b));
190
+ }
191
+ export const codec = {
192
+ raw: (expression) => ({ kind: 'raw', expression: expression.trim() }),
193
+ };
194
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { createSnapshot } from './snapshot.js';
6
6
  export { splitTopLevelComma } from './key-clause.js';
7
7
  export { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
8
8
  export { toCreateSQL } from './sql.js';
9
+ export { canonicalizeCodec, codec, codecsEqual, isGeneralCodec, isPreprocessorCodec, isRawCodec, parseCodec, renderCodec, } from './codec.js';
9
10
  export { assertValidDefinitions, validateDefinitions } from './validate.js';
10
11
  export { wrapPluginRun } from './plugin-error.js';
11
12
  export { splitSqlStatements, extractExecutableStatements } from './sql-splitter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export { createSnapshot } from './snapshot.js';
6
6
  export { splitTopLevelComma } from './key-clause.js';
7
7
  export { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
8
8
  export { toCreateSQL } from './sql.js';
9
+ export { canonicalizeCodec, codec, codecsEqual, isGeneralCodec, isPreprocessorCodec, isRawCodec, parseCodec, renderCodec, } from './codec.js';
9
10
  export { assertValidDefinitions, validateDefinitions } from './validate.js';
10
11
  export { wrapPluginRun } from './plugin-error.js';
11
12
  export { splitSqlStatements, extractExecutableStatements } from './sql-splitter.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,4 +1,41 @@
1
1
  export type PrimitiveColumnType = 'String' | 'UInt8' | 'UInt16' | 'UInt32' | 'UInt64' | 'UInt128' | 'UInt256' | 'Int8' | 'Int16' | 'Int32' | 'Int64' | 'Int128' | 'Int256' | 'Float32' | 'Float64' | 'Bool' | 'Boolean' | 'Date' | 'DateTime' | 'DateTime64';
2
+ /**
3
+ * General-purpose compression codecs. Exactly one ends a codec chain.
4
+ * Level ranges: LZ4HC 1–12 (default 9), ZSTD 1–22 (default 1).
5
+ */
6
+ export type GeneralColumnCodec = {
7
+ kind: 'NONE' | 'LZ4' | 'T64' | 'GCD' | 'ALP';
8
+ } | {
9
+ kind: 'LZ4HC';
10
+ level?: number;
11
+ } | {
12
+ kind: 'ZSTD';
13
+ level?: number;
14
+ };
15
+ /**
16
+ * Preprocessing codecs (zero or more) placed before the general codec.
17
+ * `size` (bytes) defaults to 1 in ClickHouse for Delta / DoubleDelta / Gorilla.
18
+ */
19
+ export type PreprocessingColumnCodec = {
20
+ kind: 'Delta' | 'DoubleDelta' | 'Gorilla';
21
+ size?: 1 | 2 | 4 | 8;
22
+ } | {
23
+ kind: 'FPC';
24
+ level: number;
25
+ floatSize: 4 | 8;
26
+ };
27
+ /**
28
+ * Escape hatch — passes the raw expression through unchanged. Useful for
29
+ * codecs we haven't typed (new CH versions, experimental codecs) or unusual
30
+ * arg shapes. Canonicalization is whitespace-only; round-trip may be noisy.
31
+ */
32
+ export interface RawColumnCodec {
33
+ kind: 'raw';
34
+ expression: string;
35
+ }
36
+ export type ColumnCodec = GeneralColumnCodec | PreprocessingColumnCodec | RawColumnCodec;
37
+ /** Single codec or a chain (preprocessors then exactly one general codec). */
38
+ export type ColumnCodecSpec = ColumnCodec | ColumnCodec[];
2
39
  export interface ColumnDefinition {
3
40
  name: string;
4
41
  type: PrimitiveColumnType | string;
@@ -6,6 +43,7 @@ export interface ColumnDefinition {
6
43
  nullable?: boolean;
7
44
  default?: string | number | boolean;
8
45
  comment?: string;
46
+ codec?: ColumnCodecSpec;
9
47
  }
10
48
  interface SkipIndexBase {
11
49
  name: string;
@@ -13,15 +51,36 @@ interface SkipIndexBase {
13
51
  granularity: number;
14
52
  }
15
53
  /**
16
- * `set` requires a numeric argument (e.g. `typeArgs: '0'`).
17
- * ClickHouse 26+ rejects bare `set` — use `set(0)` for unbounded.
54
+ * Skip index with structured, discriminated args per type. Arg signatures
55
+ * come from ClickHouse MergeTree docs:
56
+ * - `minmax` — no args
57
+ * - `set(max_rows)` — required int, 0 = store all unique values
58
+ * - `bloom_filter([false_positive_rate])` — optional float, default 0.025
59
+ * - `tokenbf_v1(size_bytes, n_hash, seed)` — 3 required ints
60
+ * - `ngrambf_v1(n, size_bytes, n_hash, seed)` — 4 required ints
61
+ *
62
+ * ClickHouse 26+ requires `set(0)` not bare `set`; `maxRows` is required
63
+ * so this is encoded naturally.
18
64
  */
19
65
  export type SkipIndexDefinition = SkipIndexBase & ({
20
- type: 'minmax' | 'bloom_filter';
21
- typeArgs?: string;
66
+ type: 'minmax';
67
+ } | {
68
+ type: 'set';
69
+ maxRows: number;
70
+ } | {
71
+ type: 'bloom_filter';
72
+ falsePositiveRate?: number;
22
73
  } | {
23
- type: 'set' | 'tokenbf_v1' | 'ngrambf_v1';
24
- typeArgs: string;
74
+ type: 'tokenbf_v1';
75
+ sizeBytes: number;
76
+ hashFunctions: number;
77
+ randomSeed: number;
78
+ } | {
79
+ type: 'ngrambf_v1';
80
+ ngramSize: number;
81
+ sizeBytes: number;
82
+ hashFunctions: number;
83
+ randomSeed: number;
25
84
  });
26
85
  export interface ProjectionDefinition {
27
86
  name: string;
@@ -57,6 +116,19 @@ export interface ViewDefinition {
57
116
  as: string;
58
117
  comment?: string;
59
118
  }
119
+ export interface MaterializedViewRefresh {
120
+ every?: string;
121
+ after?: string;
122
+ offset?: string;
123
+ randomize?: string;
124
+ dependsOn?: Array<{
125
+ database: string;
126
+ name: string;
127
+ }>;
128
+ settings?: Record<string, string | number>;
129
+ append?: boolean;
130
+ empty?: boolean;
131
+ }
60
132
  export interface MaterializedViewDefinition {
61
133
  kind: 'materialized_view';
62
134
  database: string;
@@ -65,6 +137,7 @@ export interface MaterializedViewDefinition {
65
137
  database: string;
66
138
  name: string;
67
139
  };
140
+ refresh?: MaterializedViewRefresh;
68
141
  as: string;
69
142
  comment?: string;
70
143
  }
@@ -139,7 +212,7 @@ export interface SnapshotV1 {
139
212
  }
140
213
  export type Snapshot = SnapshotV1;
141
214
  export type RiskLevel = 'safe' | 'caution' | 'danger';
142
- export type MigrationOperationType = 'create_database' | 'create_table' | 'drop_table' | 'create_view' | 'drop_view' | 'create_materialized_view' | 'drop_materialized_view' | 'alter_table_add_column' | 'alter_table_modify_column' | 'alter_table_drop_column' | 'alter_table_rename_column' | 'alter_table_rename_table' | 'alter_table_add_index' | 'alter_table_add_projection' | 'alter_table_modify_setting' | 'alter_table_drop_index' | 'alter_table_drop_projection' | 'alter_table_reset_setting' | 'alter_table_modify_ttl';
215
+ export type MigrationOperationType = 'create_database' | 'create_table' | 'drop_table' | 'create_view' | 'drop_view' | 'create_materialized_view' | 'drop_materialized_view' | 'alter_materialized_view_modify_refresh' | 'alter_table_add_column' | 'alter_table_modify_column' | 'alter_table_drop_column' | 'alter_table_rename_column' | 'alter_table_rename_table' | 'alter_table_add_index' | 'alter_table_add_projection' | 'alter_table_modify_setting' | 'alter_table_drop_index' | 'alter_table_drop_projection' | 'alter_table_reset_setting' | 'alter_table_modify_ttl';
143
216
  export interface MigrationOperation {
144
217
  type: MigrationOperationType;
145
218
  key: string;
@@ -163,7 +236,7 @@ export interface MigrationPlan {
163
236
  riskSummary: Record<RiskLevel, number>;
164
237
  renameSuggestions: ColumnRenameSuggestion[];
165
238
  }
166
- export type ValidationIssueCode = 'duplicate_object_name' | 'duplicate_column_name' | 'duplicate_index_name' | 'duplicate_projection_name' | 'primary_key_missing_column' | 'order_by_missing_column' | 'index_type_missing_args';
239
+ export type ValidationIssueCode = 'duplicate_object_name' | 'duplicate_column_name' | 'duplicate_index_name' | 'duplicate_projection_name' | 'primary_key_missing_column' | 'order_by_missing_column' | 'refresh_requires_every_or_after' | 'refresh_every_after_mutually_exclusive' | 'refresh_interval_format' | 'refresh_append_required_for_replicated_target' | 'refresh_depends_on_requires_every' | 'codec_chain_must_end_with_general' | 'codec_chain_multiple_general' | 'codec_chain_empty';
167
240
  export interface ValidationIssue {
168
241
  code: ValidationIssueCode;
169
242
  kind: SchemaDefinition['kind'];
@@ -1 +1 @@
1
- {"version":3,"file":"model-types.d.ts","sourceRoot":"","sources":["../src/model-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-types.d.ts","sourceRoot":"","sources":["../src/model-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,aAAa,EAEb,gBAAgB,EAEjB,MAAM,YAAY,CAAA;AAuVnB,wBAAgB,QAAQ,CAAC,cAAc,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAoG9G"}
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,aAAa,EAEb,gBAAgB,EAEjB,MAAM,YAAY,CAAA;AAkanB,wBAAgB,QAAQ,CAAC,cAAc,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,aAAa,CA8F9G"}
package/dist/planner.js CHANGED
@@ -1,6 +1,6 @@
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, renderAlterModifySetting, renderAlterModifyTTL, renderAlterResetSetting, toCreateSQL, } from './sql.js';
3
+ import { renderAlterAddColumn, renderAlterAddIndex, renderAlterAddProjection, renderAlterDropColumn, renderAlterDropIndex, renderAlterDropProjection, renderAlterModifyColumn, renderAlterModifyRefresh, renderAlterModifySetting, renderAlterModifyTTL, renderAlterRemoveCodec, renderAlterResetSetting, toCreateSQL, } from './sql.js';
4
4
  import { assertValidDefinitions } from './validate.js';
5
5
  function createMap(definitions) {
6
6
  return new Map(definitions.map((def) => [definitionKey(def), def]));
@@ -90,6 +90,16 @@ function normalizeColumn(column) {
90
90
  const { name: _name, renamedFrom: _renamedFrom, ...rest } = column;
91
91
  return rest;
92
92
  }
93
+ function normalizeColumnWithoutCodec(column) {
94
+ const { codec: _codec, ...rest } = normalizeColumn(column);
95
+ return rest;
96
+ }
97
+ function isCodecRemoval(oldCol, newCol) {
98
+ if (!oldCol.codec || newCol.codec)
99
+ return false;
100
+ return (JSON.stringify(normalizeColumnWithoutCodec(oldCol)) ===
101
+ JSON.stringify(normalizeColumnWithoutCodec(newCol)));
102
+ }
93
103
  function renderRenameColumnSuggestionSQL(table, from, to) {
94
104
  return `ALTER TABLE ${table.database}.${table.name} RENAME COLUMN \`${from}\` TO \`${to}\`;`;
95
105
  }
@@ -136,6 +146,48 @@ function inferColumnRenameSuggestions(table, addedColumns, droppedColumns) {
136
146
  return a.to.localeCompare(b.to);
137
147
  });
138
148
  }
149
+ function refreshEqual(oldRefresh, newRefresh) {
150
+ return JSON.stringify(oldRefresh ?? null) === JSON.stringify(newRefresh ?? null);
151
+ }
152
+ function diffMaterializedView(oldDef, newDef) {
153
+ const oldAppend = oldDef.refresh?.append === true;
154
+ const newAppend = newDef.refresh?.append === true;
155
+ const hasOldRefresh = oldDef.refresh !== undefined;
156
+ const hasNewRefresh = newDef.refresh !== undefined;
157
+ const structuralChange = newDef.as !== oldDef.as ||
158
+ newDef.comment !== oldDef.comment ||
159
+ newDef.to.database !== oldDef.to.database ||
160
+ newDef.to.name !== oldDef.to.name ||
161
+ hasOldRefresh !== hasNewRefresh ||
162
+ oldAppend !== newAppend;
163
+ if (structuralChange) {
164
+ return [
165
+ {
166
+ type: 'drop_materialized_view',
167
+ key: definitionKey(newDef),
168
+ risk: 'caution',
169
+ sql: `DROP TABLE IF EXISTS ${newDef.database}.${newDef.name} SYNC;`,
170
+ },
171
+ {
172
+ type: 'create_materialized_view',
173
+ key: definitionKey(newDef),
174
+ risk: 'caution',
175
+ sql: toCreateSQL(newDef),
176
+ },
177
+ ];
178
+ }
179
+ if (hasNewRefresh && !refreshEqual(oldDef.refresh, newDef.refresh)) {
180
+ return [
181
+ {
182
+ type: 'alter_materialized_view_modify_refresh',
183
+ key: `materialized_view:${newDef.database}.${newDef.name}:refresh`,
184
+ risk: 'caution',
185
+ sql: renderAlterModifyRefresh(newDef),
186
+ },
187
+ ];
188
+ }
189
+ return [];
190
+ }
139
191
  function diffTables(oldDef, newDef) {
140
192
  if (requiresTableRecreate(oldDef, newDef)) {
141
193
  return {
@@ -168,12 +220,15 @@ function diffTables(oldDef, newDef) {
168
220
  sql: renderAlterAddColumn(newDef, column),
169
221
  });
170
222
  }
171
- for (const { name, newItem } of columnDiff.changed) {
223
+ for (const { name, oldItem, newItem } of columnDiff.changed) {
224
+ const sql = isCodecRemoval(oldItem, newItem)
225
+ ? renderAlterRemoveCodec(newDef, name)
226
+ : renderAlterModifyColumn(newDef, newItem);
172
227
  ops.push({
173
228
  type: 'alter_table_modify_column',
174
229
  key: `table:${newDef.database}.${newDef.name}:column:${name}`,
175
230
  risk: 'caution',
176
- sql: renderAlterModifyColumn(newDef, newItem),
231
+ sql,
177
232
  });
178
233
  }
179
234
  for (const column of columnDiff.removed) {
@@ -312,14 +367,8 @@ export function planDiff(oldDefinitions, newDefinitions) {
312
367
  if (newDef.kind === oldDef.kind &&
313
368
  newDef.kind === 'materialized_view' &&
314
369
  oldDef.kind === 'materialized_view') {
315
- const changed = newDef.as !== oldDef.as ||
316
- newDef.comment !== oldDef.comment ||
317
- newDef.to.database !== oldDef.to.database ||
318
- newDef.to.name !== oldDef.to.name;
319
- if (changed) {
320
- pushDropOperation(operations, oldDef, 'caution');
321
- pushCreateOperation(operations, newDef, 'caution');
322
- }
370
+ const mvOps = diffMaterializedView(oldDef, newDef);
371
+ operations.push(...mvOps);
323
372
  continue;
324
373
  }
325
374
  if (newDef.kind !== oldDef.kind) {
@@ -341,6 +390,8 @@ export function planDiff(oldDefinitions, newDefinitions) {
341
390
  const rank = (op) => {
342
391
  if (op.type.startsWith('drop_'))
343
392
  return 0;
393
+ if (op.type === 'alter_materialized_view_modify_refresh')
394
+ return 1;
344
395
  if (op.type.startsWith('alter_'))
345
396
  return 1;
346
397
  if (op.type === 'create_database')
@@ -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/sql.d.ts CHANGED
@@ -1,8 +1,22 @@
1
- import type { ColumnDefinition, SchemaDefinition, SkipIndexDefinition, TableDefinition } from './model.js';
1
+ import type { ColumnDefinition, MaterializedViewDefinition, MaterializedViewRefresh, SchemaDefinition, SkipIndexDefinition, TableDefinition } from './model.js';
2
+ /**
3
+ * Renders the REFRESH clause block for a refreshable materialized view.
4
+ * Grammar order: REFRESH EVERY|AFTER <interval> [OFFSET <interval>] [RANDOMIZE FOR <interval>]
5
+ * [DEPENDS ON <list>] [SETTINGS <kv>] [APPEND]
6
+ * Note: EMPTY belongs after TO in CREATE, so it's NOT included here.
7
+ */
8
+ export declare function renderRefreshClause(refresh: MaterializedViewRefresh): string;
9
+ /**
10
+ * Renders ALTER TABLE ... MODIFY REFRESH for a refresh-only change.
11
+ * Per live validation: APPEND must be re-included if present, because ClickHouse
12
+ * treats omitting APPEND as "remove APPEND" and rejects.
13
+ */
14
+ export declare function renderAlterModifyRefresh(def: MaterializedViewDefinition): string;
2
15
  export declare function toCreateSQL(def: SchemaDefinition): string;
3
16
  export declare function renderAlterAddColumn(def: TableDefinition, column: ColumnDefinition): string;
4
17
  export declare function renderAlterModifyColumn(def: TableDefinition, column: ColumnDefinition): string;
5
18
  export declare function renderAlterDropColumn(def: TableDefinition, columnName: string): string;
19
+ export declare function renderAlterRemoveCodec(def: TableDefinition, columnName: string): string;
6
20
  export declare function renderAlterAddIndex(def: TableDefinition, index: SkipIndexDefinition): string;
7
21
  export declare function renderAlterDropIndex(def: TableDefinition, indexName: string): string;
8
22
  export declare function renderAlterAddProjection(def: TableDefinition, projection: {
package/dist/sql.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EAEhB,MAAM,YAAY,CAAA;AAoEnB,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAKzD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE3F;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE9F;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAElH;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAC/B,MAAM,CAER;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK1F"}
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EAEhB,MAAM,YAAY,CAAA;AAyFnB;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAc5E;AAUD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAOhF;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAKzD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE3F;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE9F;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAElH;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAC/B,MAAM,CAER;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK1F"}
package/dist/sql.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { renderCodec } from './codec.js';
1
2
  import { normalizeKeyColumns } from './key-clause.js';
2
3
  import { assertValidDefinitions } from './validate.js';
3
4
  function renderDefault(value) {
@@ -14,6 +15,8 @@ function renderColumn(col) {
14
15
  out += ` DEFAULT ${renderDefault(col.default)}`;
15
16
  if (col.comment)
16
17
  out += ` COMMENT '${col.comment.replace(/'/g, "''")}'`;
18
+ if (col.codec)
19
+ out += ` ${renderCodec(col.codec)}`;
17
20
  return out;
18
21
  }
19
22
  function renderKeyClauseColumns(columns) {
@@ -22,7 +25,20 @@ function renderKeyClauseColumns(columns) {
22
25
  .join(', ');
23
26
  }
24
27
  function renderIndexType(idx) {
25
- return idx.typeArgs !== undefined ? `${idx.type}(${idx.typeArgs})` : idx.type;
28
+ switch (idx.type) {
29
+ case 'minmax':
30
+ return 'minmax';
31
+ case 'set':
32
+ return `set(${idx.maxRows})`;
33
+ case 'bloom_filter':
34
+ return idx.falsePositiveRate !== undefined
35
+ ? `bloom_filter(${idx.falsePositiveRate})`
36
+ : 'bloom_filter';
37
+ case 'tokenbf_v1':
38
+ return `tokenbf_v1(${idx.sizeBytes}, ${idx.hashFunctions}, ${idx.randomSeed})`;
39
+ case 'ngrambf_v1':
40
+ return `ngrambf_v1(${idx.ngramSize}, ${idx.sizeBytes}, ${idx.hashFunctions}, ${idx.randomSeed})`;
41
+ }
26
42
  }
27
43
  function renderTableSQL(def) {
28
44
  const columns = def.columns.map(renderColumn);
@@ -51,8 +67,57 @@ function renderTableSQL(def) {
51
67
  function renderViewSQL(def) {
52
68
  return `CREATE VIEW IF NOT EXISTS ${def.database}.${def.name} AS\n${def.as};`;
53
69
  }
70
+ function renderRefreshSettings(settings) {
71
+ return Object.entries(settings)
72
+ .map(([k, v]) => `${k} = ${typeof v === 'string' ? `'${v.replace(/'/g, "''")}'` : v}`)
73
+ .join(', ');
74
+ }
75
+ function renderDependsOn(dependsOn) {
76
+ return dependsOn.map((dep) => `${dep.database}.${dep.name}`).join(', ');
77
+ }
78
+ /**
79
+ * Renders the REFRESH clause block for a refreshable materialized view.
80
+ * Grammar order: REFRESH EVERY|AFTER <interval> [OFFSET <interval>] [RANDOMIZE FOR <interval>]
81
+ * [DEPENDS ON <list>] [SETTINGS <kv>] [APPEND]
82
+ * Note: EMPTY belongs after TO in CREATE, so it's NOT included here.
83
+ */
84
+ export function renderRefreshClause(refresh) {
85
+ const parts = [];
86
+ if (refresh.every)
87
+ parts.push(`REFRESH EVERY ${refresh.every}`);
88
+ else if (refresh.after)
89
+ parts.push(`REFRESH AFTER ${refresh.after}`);
90
+ if (refresh.offset)
91
+ parts.push(`OFFSET ${refresh.offset}`);
92
+ if (refresh.randomize)
93
+ parts.push(`RANDOMIZE FOR ${refresh.randomize}`);
94
+ if (refresh.dependsOn && refresh.dependsOn.length > 0) {
95
+ parts.push(`DEPENDS ON ${renderDependsOn(refresh.dependsOn)}`);
96
+ }
97
+ if (refresh.settings && Object.keys(refresh.settings).length > 0) {
98
+ parts.push(`SETTINGS ${renderRefreshSettings(refresh.settings)}`);
99
+ }
100
+ if (refresh.append)
101
+ parts.push('APPEND');
102
+ return parts.join(' ');
103
+ }
54
104
  function renderMaterializedViewSQL(def) {
55
- return `CREATE MATERIALIZED VIEW IF NOT EXISTS ${def.database}.${def.name} TO ${def.to.database}.${def.to.name} AS\n${def.as};`;
105
+ const header = `CREATE MATERIALIZED VIEW IF NOT EXISTS ${def.database}.${def.name}`;
106
+ const refreshBlock = def.refresh ? `\n${renderRefreshClause(def.refresh)}` : '';
107
+ const toClause = ` TO ${def.to.database}.${def.to.name}`;
108
+ const emptyClause = def.refresh?.empty ? ' EMPTY' : '';
109
+ return `${header}${refreshBlock}${toClause}${emptyClause} AS\n${def.as};`;
110
+ }
111
+ /**
112
+ * Renders ALTER TABLE ... MODIFY REFRESH for a refresh-only change.
113
+ * Per live validation: APPEND must be re-included if present, because ClickHouse
114
+ * treats omitting APPEND as "remove APPEND" and rejects.
115
+ */
116
+ export function renderAlterModifyRefresh(def) {
117
+ if (!def.refresh) {
118
+ throw new Error(`Cannot render MODIFY REFRESH for ${def.database}.${def.name}: refresh is not set`);
119
+ }
120
+ return `ALTER TABLE ${def.database}.${def.name} MODIFY ${renderRefreshClause(def.refresh)};`;
56
121
  }
57
122
  export function toCreateSQL(def) {
58
123
  assertValidDefinitions([def]);
@@ -71,6 +136,9 @@ export function renderAlterModifyColumn(def, column) {
71
136
  export function renderAlterDropColumn(def, columnName) {
72
137
  return `ALTER TABLE ${def.database}.${def.name} DROP COLUMN IF EXISTS \`${columnName}\`;`;
73
138
  }
139
+ export function renderAlterRemoveCodec(def, columnName) {
140
+ return `ALTER TABLE ${def.database}.${def.name} MODIFY COLUMN \`${columnName}\` REMOVE CODEC;`;
141
+ }
74
142
  export function renderAlterAddIndex(def, index) {
75
143
  return `ALTER TABLE ${def.database}.${def.name} ADD INDEX IF NOT EXISTS \`${index.name}\` (${index.expression}) TYPE ${renderIndexType(index)} GRANULARITY ${index.granularity};`;
76
144
  }
package/dist/sql.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAEhB,MAAM,YAAY,CAAA;AA+FnB,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,eAAe,EAAE,CAsBtF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAG5E"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,gBAAgB,EAEhB,eAAe,EAEhB,MAAM,YAAY,CAAA;AAsNnB,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,eAAe,EAAE,CAwBtF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAG5E"}
package/dist/validate.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { definitionKey } from './canonical.js';
2
+ import { canonicalizeCodec, isGeneralCodec, isRawCodec } from './codec.js';
2
3
  import { normalizeKeyColumns } from './key-clause.js';
3
4
  import { ChxValidationError as ValidationError } from './model.js';
4
5
  function pushValidationIssue(issues, def, code, message) {
@@ -10,6 +11,33 @@ function pushValidationIssue(issues, def, code, message) {
10
11
  message,
11
12
  });
12
13
  }
14
+ function validateColumnCodec(def, column, issues) {
15
+ if (!column.codec)
16
+ return;
17
+ const steps = canonicalizeCodec(column.codec);
18
+ if (steps.length === 0) {
19
+ pushValidationIssue(issues, def, 'codec_chain_empty', `Table ${def.database}.${def.name} column "${column.name}" codec chain is empty; provide at least one codec or omit the field`);
20
+ return;
21
+ }
22
+ let generalCount = 0;
23
+ let generalIndex = -1;
24
+ for (let i = 0; i < steps.length; i++) {
25
+ const step = steps[i];
26
+ if (isRawCodec(step))
27
+ continue;
28
+ if (isGeneralCodec(step)) {
29
+ generalCount += 1;
30
+ generalIndex = i;
31
+ }
32
+ }
33
+ if (generalCount > 1) {
34
+ pushValidationIssue(issues, def, 'codec_chain_multiple_general', `Table ${def.database}.${def.name} column "${column.name}" codec chain has more than one general codec; only one general codec is allowed at the end of a chain`);
35
+ return;
36
+ }
37
+ if (steps.length > 1 && generalCount === 1 && generalIndex !== steps.length - 1) {
38
+ pushValidationIssue(issues, def, 'codec_chain_must_end_with_general', `Table ${def.database}.${def.name} column "${column.name}" codec chain must end with a general codec (NONE, LZ4, LZ4HC, ZSTD, T64, GCD, ALP)`);
39
+ }
40
+ }
13
41
  function validateTableDefinition(def, issues) {
14
42
  const columnSeen = new Set();
15
43
  const columnSet = new Set();
@@ -20,8 +48,8 @@ function validateTableDefinition(def, issues) {
20
48
  }
21
49
  columnSeen.add(column.name);
22
50
  columnSet.add(column.name);
51
+ validateColumnCodec(def, column, issues);
23
52
  }
24
- const TYPES_REQUIRING_ARGS = new Set(['set', 'tokenbf_v1', 'ngrambf_v1']);
25
53
  const indexSeen = new Set();
26
54
  for (const index of def.indexes ?? []) {
27
55
  if (indexSeen.has(index.name)) {
@@ -29,9 +57,6 @@ function validateTableDefinition(def, issues) {
29
57
  continue;
30
58
  }
31
59
  indexSeen.add(index.name);
32
- if (TYPES_REQUIRING_ARGS.has(index.type) && !index.typeArgs) {
33
- pushValidationIssue(issues, def, 'index_type_missing_args', `Table ${def.database}.${def.name} index "${index.name}" uses type "${index.type}" which requires typeArgs (e.g. typeArgs: '0' for set(0))`);
34
- }
35
60
  }
36
61
  const projectionSeen = new Set();
37
62
  for (const projection of def.projections ?? []) {
@@ -52,6 +77,43 @@ function validateTableDefinition(def, issues) {
52
77
  }
53
78
  }
54
79
  }
80
+ const INTERVAL_PATTERN = /^\s*\d+\s+(SECOND|MINUTE|HOUR|DAY|WEEK|MONTH|YEAR)(\s+\d+\s+(SECOND|MINUTE|HOUR|DAY|WEEK|MONTH|YEAR))*\s*$/i;
81
+ const REPLICATED_ENGINE_PATTERN = /^(Shared|Replicated)/;
82
+ function validateInterval(def, issues, field, value) {
83
+ if (value === undefined)
84
+ return;
85
+ if (!INTERVAL_PATTERN.test(value)) {
86
+ pushValidationIssue(issues, def, 'refresh_interval_format', `Materialized view ${def.database}.${def.name} refresh.${String(field)} "${value}" is not a valid interval (expected e.g. "1 HOUR", "30 SECOND")`);
87
+ }
88
+ }
89
+ function validateMaterializedViewDefinition(def, issues, definitions) {
90
+ const { refresh } = def;
91
+ if (!refresh)
92
+ return;
93
+ const hasEvery = refresh.every !== undefined && refresh.every.length > 0;
94
+ const hasAfter = refresh.after !== undefined && refresh.after.length > 0;
95
+ if (!hasEvery && !hasAfter) {
96
+ pushValidationIssue(issues, def, 'refresh_requires_every_or_after', `Materialized view ${def.database}.${def.name} refresh requires exactly one of "every" or "after"`);
97
+ }
98
+ else if (hasEvery && hasAfter) {
99
+ pushValidationIssue(issues, def, 'refresh_every_after_mutually_exclusive', `Materialized view ${def.database}.${def.name} refresh specifies both "every" and "after"; choose one`);
100
+ }
101
+ validateInterval(def, issues, 'every', refresh.every);
102
+ validateInterval(def, issues, 'after', refresh.after);
103
+ validateInterval(def, issues, 'offset', refresh.offset);
104
+ validateInterval(def, issues, 'randomize', refresh.randomize);
105
+ if (refresh.dependsOn && refresh.dependsOn.length > 0 && hasAfter && !hasEvery) {
106
+ pushValidationIssue(issues, def, 'refresh_depends_on_requires_every', `Materialized view ${def.database}.${def.name} uses DEPENDS ON with REFRESH AFTER; ClickHouse only allows DEPENDS ON with REFRESH EVERY.`);
107
+ }
108
+ if (!refresh.append) {
109
+ const target = definitions.find((other) => other.kind === 'table' &&
110
+ other.database === def.to.database &&
111
+ other.name === def.to.name);
112
+ if (target && REPLICATED_ENGINE_PATTERN.test(target.engine)) {
113
+ pushValidationIssue(issues, def, 'refresh_append_required_for_replicated_target', `Materialized view ${def.database}.${def.name} refreshes a replicated target ${target.database}.${target.name} (${target.engine}) without APPEND. ClickHouse rejects this combination. Set refresh.append = true, or target a non-replicated table.`);
114
+ }
115
+ }
116
+ }
55
117
  export function validateDefinitions(definitions) {
56
118
  const issues = [];
57
119
  const objectKeys = new Set();
@@ -65,6 +127,9 @@ export function validateDefinitions(definitions) {
65
127
  if (def.kind === 'table') {
66
128
  validateTableDefinition(def, issues);
67
129
  }
130
+ else if (def.kind === 'materialized_view') {
131
+ validateMaterializedViewDefinition(def, issues, definitions);
132
+ }
68
133
  }
69
134
  return issues;
70
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chkit/core",
3
- "version": "0.1.0-beta.20",
3
+ "version": "0.1.0-beta.21",
4
4
  "description": "Schema DSL, config, diff engine, and migration planner for chkit",
5
5
  "license": "MIT",
6
6
  "author": "ObsessionDB",