@chkit/clickhouse 0.1.0-beta.0
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/dist/create-table-parser.d.ts +14 -0
- package/dist/create-table-parser.d.ts.map +1 -0
- package/dist/create-table-parser.js +169 -0
- package/dist/create-table-parser.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface ProjectionDefinitionShape {
|
|
2
|
+
name: string;
|
|
3
|
+
query: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function parseSettingsFromCreateTableQuery(createTableQuery: string | undefined): Record<string, string>;
|
|
6
|
+
export declare function parseTTLFromCreateTableQuery(createTableQuery: string | undefined): string | undefined;
|
|
7
|
+
export declare function parseEngineFromCreateTableQuery(createTableQuery: string | undefined): string | undefined;
|
|
8
|
+
export declare function parsePrimaryKeyFromCreateTableQuery(createTableQuery: string | undefined): string | undefined;
|
|
9
|
+
export declare function parseOrderByFromCreateTableQuery(createTableQuery: string | undefined): string | undefined;
|
|
10
|
+
export declare function parsePartitionByFromCreateTableQuery(createTableQuery: string | undefined): string | undefined;
|
|
11
|
+
export declare function parseUniqueKeyFromCreateTableQuery(createTableQuery: string | undefined): string | undefined;
|
|
12
|
+
export declare function parseProjectionsFromCreateTableQuery(createTableQuery: string | undefined): ProjectionDefinitionShape[];
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=create-table-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-table-parser.d.ts","sourceRoot":"","sources":["../src/create-table-parser.ts"],"names":[],"mappings":"AAEA,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAuGD,wBAAgB,iCAAiC,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB9G;AAED,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMrG;AAED,wBAAgB,+BAA+B,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMxG;AAED,wBAAgB,mCAAmC,CACjD,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,gCAAgC,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMzG;AAED,wBAAgB,oCAAoC,CAClD,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,kCAAkC,CAChD,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,oCAAoC,CAClD,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,yBAAyB,EAAE,CAgB7B"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { normalizeSQLFragment } from '@chkit/core';
|
|
2
|
+
function splitTopLevelCommaSeparated(input) {
|
|
3
|
+
const out = [];
|
|
4
|
+
let current = '';
|
|
5
|
+
let depth = 0;
|
|
6
|
+
let inString = false;
|
|
7
|
+
let stringQuote = "'";
|
|
8
|
+
for (let i = 0; i < input.length; i += 1) {
|
|
9
|
+
const char = input[i];
|
|
10
|
+
if (!char)
|
|
11
|
+
continue;
|
|
12
|
+
if (inString) {
|
|
13
|
+
current += char;
|
|
14
|
+
if (char === stringQuote && input[i - 1] !== '\\') {
|
|
15
|
+
inString = false;
|
|
16
|
+
}
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (char === "'" || char === '"') {
|
|
20
|
+
inString = true;
|
|
21
|
+
stringQuote = char;
|
|
22
|
+
current += char;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (char === '(') {
|
|
26
|
+
depth += 1;
|
|
27
|
+
current += char;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (char === ')') {
|
|
31
|
+
depth = Math.max(0, depth - 1);
|
|
32
|
+
current += char;
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (char === ',' && depth === 0) {
|
|
36
|
+
const chunk = current.trim();
|
|
37
|
+
if (chunk.length > 0)
|
|
38
|
+
out.push(chunk);
|
|
39
|
+
current = '';
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
current += char;
|
|
43
|
+
}
|
|
44
|
+
const last = current.trim();
|
|
45
|
+
if (last.length > 0)
|
|
46
|
+
out.push(last);
|
|
47
|
+
return out;
|
|
48
|
+
}
|
|
49
|
+
function parseClauseFromCreateTableQuery(createTableQuery, clausePattern, stopPattern) {
|
|
50
|
+
if (!createTableQuery)
|
|
51
|
+
return undefined;
|
|
52
|
+
const start = createTableQuery.match(clausePattern);
|
|
53
|
+
if (!start || start.index === undefined)
|
|
54
|
+
return undefined;
|
|
55
|
+
const afterClause = createTableQuery.slice(start.index + start[0].length);
|
|
56
|
+
const stop = afterClause.match(stopPattern);
|
|
57
|
+
const raw = (stop ? afterClause.slice(0, stop.index) : afterClause).trim();
|
|
58
|
+
if (!raw)
|
|
59
|
+
return undefined;
|
|
60
|
+
return normalizeSQLFragment(raw);
|
|
61
|
+
}
|
|
62
|
+
function extractCreateTableBody(createTableQuery) {
|
|
63
|
+
if (!createTableQuery)
|
|
64
|
+
return undefined;
|
|
65
|
+
const engineMatch = /\)\s*ENGINE\s*=/i.exec(createTableQuery);
|
|
66
|
+
if (!engineMatch || engineMatch.index === undefined)
|
|
67
|
+
return undefined;
|
|
68
|
+
const left = createTableQuery.slice(0, engineMatch.index + 1);
|
|
69
|
+
const openIndex = left.indexOf('(');
|
|
70
|
+
if (openIndex === -1)
|
|
71
|
+
return undefined;
|
|
72
|
+
let depth = 0;
|
|
73
|
+
let inString = false;
|
|
74
|
+
let stringQuote = "'";
|
|
75
|
+
for (let i = openIndex; i < left.length; i += 1) {
|
|
76
|
+
const char = left[i];
|
|
77
|
+
if (!char)
|
|
78
|
+
continue;
|
|
79
|
+
if (inString) {
|
|
80
|
+
if (char === stringQuote && left[i - 1] !== '\\') {
|
|
81
|
+
inString = false;
|
|
82
|
+
}
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (char === "'" || char === '"') {
|
|
86
|
+
inString = true;
|
|
87
|
+
stringQuote = char;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (char === '(') {
|
|
91
|
+
depth += 1;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (char === ')') {
|
|
95
|
+
depth -= 1;
|
|
96
|
+
if (depth === 0) {
|
|
97
|
+
const body = left.slice(openIndex + 1, i).trim();
|
|
98
|
+
return body.length > 0 ? body : undefined;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
export function parseSettingsFromCreateTableQuery(createTableQuery) {
|
|
105
|
+
if (!createTableQuery)
|
|
106
|
+
return {};
|
|
107
|
+
const settingsMatch = createTableQuery.match(/\bSETTINGS\b([\s\S]*?)(?:;|$)/i);
|
|
108
|
+
if (!settingsMatch?.[1])
|
|
109
|
+
return {};
|
|
110
|
+
const rawSettings = settingsMatch[1].trim();
|
|
111
|
+
if (!rawSettings)
|
|
112
|
+
return {};
|
|
113
|
+
const items = splitTopLevelCommaSeparated(rawSettings);
|
|
114
|
+
const out = {};
|
|
115
|
+
for (const item of items) {
|
|
116
|
+
const eq = item.indexOf('=');
|
|
117
|
+
if (eq === -1)
|
|
118
|
+
continue;
|
|
119
|
+
const key = item.slice(0, eq).trim();
|
|
120
|
+
const value = item.slice(eq + 1).trim();
|
|
121
|
+
if (!key)
|
|
122
|
+
continue;
|
|
123
|
+
out[key] = value;
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
export function parseTTLFromCreateTableQuery(createTableQuery) {
|
|
128
|
+
if (!createTableQuery)
|
|
129
|
+
return undefined;
|
|
130
|
+
const ttlMatch = createTableQuery.match(/\bTTL\b([\s\S]*?)(?:\bSETTINGS\b|;|$)/i);
|
|
131
|
+
const raw = ttlMatch?.[1]?.trim();
|
|
132
|
+
if (!raw)
|
|
133
|
+
return undefined;
|
|
134
|
+
return normalizeSQLFragment(raw);
|
|
135
|
+
}
|
|
136
|
+
export function parseEngineFromCreateTableQuery(createTableQuery) {
|
|
137
|
+
return parseClauseFromCreateTableQuery(createTableQuery, /\bENGINE\s*=\s*/i, /\bPRIMARY\s+KEY\b|\bORDER\s+BY\b|\bPARTITION\s+BY\b|\bUNIQUE\s+KEY\b|\bSAMPLE\s+BY\b|\bTTL\b|\bSETTINGS\b|;|$/i);
|
|
138
|
+
}
|
|
139
|
+
export function parsePrimaryKeyFromCreateTableQuery(createTableQuery) {
|
|
140
|
+
return parseClauseFromCreateTableQuery(createTableQuery, /\bPRIMARY\s+KEY\b/i, /\bORDER\s+BY\b|\bPARTITION\s+BY\b|\bUNIQUE\s+KEY\b|\bSAMPLE\s+BY\b|\bTTL\b|\bSETTINGS\b|;|$/i);
|
|
141
|
+
}
|
|
142
|
+
export function parseOrderByFromCreateTableQuery(createTableQuery) {
|
|
143
|
+
return parseClauseFromCreateTableQuery(createTableQuery, /\bORDER\s+BY\b/i, /\bPRIMARY\s+KEY\b|\bPARTITION\s+BY\b|\bUNIQUE\s+KEY\b|\bSAMPLE\s+BY\b|\bTTL\b|\bSETTINGS\b|;|$/i);
|
|
144
|
+
}
|
|
145
|
+
export function parsePartitionByFromCreateTableQuery(createTableQuery) {
|
|
146
|
+
return parseClauseFromCreateTableQuery(createTableQuery, /\bPARTITION\s+BY\b/i, /\bPRIMARY\s+KEY\b|\bORDER\s+BY\b|\bUNIQUE\s+KEY\b|\bSAMPLE\s+BY\b|\bTTL\b|\bSETTINGS\b|;|$/i);
|
|
147
|
+
}
|
|
148
|
+
export function parseUniqueKeyFromCreateTableQuery(createTableQuery) {
|
|
149
|
+
return parseClauseFromCreateTableQuery(createTableQuery, /\bUNIQUE\s+KEY\b/i, /\bPRIMARY\s+KEY\b|\bORDER\s+BY\b|\bPARTITION\s+BY\b|\bSAMPLE\s+BY\b|\bTTL\b|\bSETTINGS\b|;|$/i);
|
|
150
|
+
}
|
|
151
|
+
export function parseProjectionsFromCreateTableQuery(createTableQuery) {
|
|
152
|
+
const body = extractCreateTableBody(createTableQuery);
|
|
153
|
+
if (!body)
|
|
154
|
+
return [];
|
|
155
|
+
const parts = splitTopLevelCommaSeparated(body);
|
|
156
|
+
const projections = [];
|
|
157
|
+
for (const part of parts) {
|
|
158
|
+
const match = part.match(/^\s*PROJECTION\s+(`([^`]+)`|([A-Za-z_][A-Za-z0-9_]*))\s*\(([\s\S]*)\)\s*$/i);
|
|
159
|
+
if (!match)
|
|
160
|
+
continue;
|
|
161
|
+
const name = (match[2] ?? match[3] ?? '').trim();
|
|
162
|
+
const query = normalizeSQLFragment((match[4] ?? '').trim());
|
|
163
|
+
if (!name || !query)
|
|
164
|
+
continue;
|
|
165
|
+
projections.push({ name, query });
|
|
166
|
+
}
|
|
167
|
+
return projections;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=create-table-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-table-parser.js","sourceRoot":"","sources":["../src/create-table-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ChxConfig, type ColumnDefinition, type ProjectionDefinition, type SkipIndexDefinition } from '@chkit/core';
|
|
2
|
+
export interface ClickHouseExecutor {
|
|
3
|
+
execute(sql: string): Promise<void>;
|
|
4
|
+
query<T>(sql: string): Promise<T[]>;
|
|
5
|
+
listSchemaObjects(): Promise<SchemaObjectRef[]>;
|
|
6
|
+
listTableDetails(databases: string[]): Promise<IntrospectedTable[]>;
|
|
7
|
+
}
|
|
8
|
+
export interface SchemaObjectRef {
|
|
9
|
+
kind: 'table' | 'view' | 'materialized_view';
|
|
10
|
+
database: string;
|
|
11
|
+
name: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IntrospectedTable {
|
|
14
|
+
database: string;
|
|
15
|
+
name: string;
|
|
16
|
+
engine?: string;
|
|
17
|
+
primaryKey?: string;
|
|
18
|
+
orderBy?: string;
|
|
19
|
+
uniqueKey?: string;
|
|
20
|
+
partitionBy?: string;
|
|
21
|
+
columns: ColumnDefinition[];
|
|
22
|
+
settings: Record<string, string>;
|
|
23
|
+
indexes: SkipIndexDefinition[];
|
|
24
|
+
projections: ProjectionDefinition[];
|
|
25
|
+
ttl?: string;
|
|
26
|
+
}
|
|
27
|
+
export { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
28
|
+
export declare function inferSchemaKindFromEngine(engine: string): SchemaObjectRef['kind'] | null;
|
|
29
|
+
export declare function createClickHouseExecutor(config: NonNullable<ChxConfig['clickhouse']>): ClickHouseExecutor;
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAA;AAYpB,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACnC,iBAAiB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;CACpE;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,mBAAmB,CAAA;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AA6BD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,iCAAiC,EACjC,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,0BAA0B,CAAA;AAEjC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAKxF;AAsCD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,GAAG,kBAAkB,CAgHzG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { createClient } from '@clickhouse/client';
|
|
2
|
+
import { normalizeSQLFragment, } from '@chkit/core';
|
|
3
|
+
import { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
4
|
+
export { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
5
|
+
export function inferSchemaKindFromEngine(engine) {
|
|
6
|
+
if (engine === 'View')
|
|
7
|
+
return 'view';
|
|
8
|
+
if (engine === 'MaterializedView')
|
|
9
|
+
return 'materialized_view';
|
|
10
|
+
if (!engine || engine === 'Dictionary')
|
|
11
|
+
return null;
|
|
12
|
+
return 'table';
|
|
13
|
+
}
|
|
14
|
+
function normalizeColumnFromSystemRow(row) {
|
|
15
|
+
const nullableMatch = row.type.match(/^Nullable\((.+)\)$/);
|
|
16
|
+
const type = nullableMatch?.[1] ? nullableMatch[1] : row.type;
|
|
17
|
+
const nullable = Boolean(nullableMatch?.[1]);
|
|
18
|
+
let defaultValue;
|
|
19
|
+
if (row.default_expression && row.default_kind === 'DEFAULT') {
|
|
20
|
+
defaultValue = normalizeSQLFragment(row.default_expression);
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
name: row.name,
|
|
24
|
+
type,
|
|
25
|
+
nullable: nullable || undefined,
|
|
26
|
+
default: defaultValue,
|
|
27
|
+
comment: row.comment?.trim() || undefined,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function normalizeIndexType(value) {
|
|
31
|
+
if (value === 'minmax')
|
|
32
|
+
return 'minmax';
|
|
33
|
+
if (value === 'set')
|
|
34
|
+
return 'set';
|
|
35
|
+
if (value === 'bloom_filter')
|
|
36
|
+
return 'bloom_filter';
|
|
37
|
+
if (value === 'tokenbf_v1')
|
|
38
|
+
return 'tokenbf_v1';
|
|
39
|
+
if (value === 'ngrambf_v1')
|
|
40
|
+
return 'ngrambf_v1';
|
|
41
|
+
return 'set';
|
|
42
|
+
}
|
|
43
|
+
function normalizeIndexFromSystemRow(row) {
|
|
44
|
+
return {
|
|
45
|
+
name: row.name,
|
|
46
|
+
expression: normalizeSQLFragment(row.expr),
|
|
47
|
+
type: normalizeIndexType(row.type),
|
|
48
|
+
granularity: row.granularity,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function createClickHouseExecutor(config) {
|
|
52
|
+
const client = createClient({
|
|
53
|
+
url: config.url,
|
|
54
|
+
username: config.username,
|
|
55
|
+
password: config.password,
|
|
56
|
+
database: config.database,
|
|
57
|
+
clickhouse_settings: {
|
|
58
|
+
wait_end_of_query: 1,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
async execute(sql) {
|
|
63
|
+
await client.command({ query: sql });
|
|
64
|
+
},
|
|
65
|
+
async query(sql) {
|
|
66
|
+
const result = await client.query({ query: sql, format: 'JSONEachRow' });
|
|
67
|
+
return result.json();
|
|
68
|
+
},
|
|
69
|
+
async listSchemaObjects() {
|
|
70
|
+
const rows = await this.query(`SELECT database, name, engine
|
|
71
|
+
FROM system.tables
|
|
72
|
+
WHERE is_temporary = 0
|
|
73
|
+
AND database NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')`);
|
|
74
|
+
const out = [];
|
|
75
|
+
for (const row of rows) {
|
|
76
|
+
const kind = inferSchemaKindFromEngine(row.engine);
|
|
77
|
+
if (!kind)
|
|
78
|
+
continue;
|
|
79
|
+
out.push({
|
|
80
|
+
kind,
|
|
81
|
+
database: row.database,
|
|
82
|
+
name: row.name,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return out;
|
|
86
|
+
},
|
|
87
|
+
async listTableDetails(databases) {
|
|
88
|
+
if (databases.length === 0)
|
|
89
|
+
return [];
|
|
90
|
+
const quotedDatabases = databases.map((dbName) => `'${dbName.replace(/'/g, "''")}'`).join(', ');
|
|
91
|
+
const tables = await this.query(`SELECT database, name, engine, create_table_query
|
|
92
|
+
FROM system.tables
|
|
93
|
+
WHERE is_temporary = 0
|
|
94
|
+
AND database IN (${quotedDatabases})`);
|
|
95
|
+
const tableRows = tables.filter((row) => inferSchemaKindFromEngine(row.engine) === 'table');
|
|
96
|
+
if (tableRows.length === 0)
|
|
97
|
+
return [];
|
|
98
|
+
const columns = await this.query(`SELECT database, table, name, type, default_kind, default_expression, comment, position
|
|
99
|
+
FROM system.columns
|
|
100
|
+
WHERE database IN (${quotedDatabases})`);
|
|
101
|
+
const indexes = await this.query(`SELECT database, table, name, expr, type, granularity
|
|
102
|
+
FROM system.data_skipping_indices
|
|
103
|
+
WHERE database IN (${quotedDatabases})`);
|
|
104
|
+
const columnsByTable = new Map();
|
|
105
|
+
for (const row of columns) {
|
|
106
|
+
const key = `${row.database}.${row.table}`;
|
|
107
|
+
const rows = columnsByTable.get(key);
|
|
108
|
+
if (rows) {
|
|
109
|
+
rows.push(row);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
columnsByTable.set(key, [row]);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const indexesByTable = new Map();
|
|
116
|
+
for (const row of indexes) {
|
|
117
|
+
const key = `${row.database}.${row.table}`;
|
|
118
|
+
const rows = indexesByTable.get(key);
|
|
119
|
+
if (rows) {
|
|
120
|
+
rows.push(row);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
indexesByTable.set(key, [row]);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return tableRows
|
|
127
|
+
.map((row) => {
|
|
128
|
+
const key = `${row.database}.${row.name}`;
|
|
129
|
+
const columnRows = (columnsByTable.get(key) ?? []).sort((a, b) => a.position - b.position);
|
|
130
|
+
const indexRows = indexesByTable.get(key) ?? [];
|
|
131
|
+
return {
|
|
132
|
+
database: row.database,
|
|
133
|
+
name: row.name,
|
|
134
|
+
engine: parseEngineFromCreateTableQuery(row.create_table_query),
|
|
135
|
+
primaryKey: parsePrimaryKeyFromCreateTableQuery(row.create_table_query),
|
|
136
|
+
orderBy: parseOrderByFromCreateTableQuery(row.create_table_query),
|
|
137
|
+
uniqueKey: parseUniqueKeyFromCreateTableQuery(row.create_table_query),
|
|
138
|
+
partitionBy: parsePartitionByFromCreateTableQuery(row.create_table_query),
|
|
139
|
+
columns: columnRows.map(normalizeColumnFromSystemRow),
|
|
140
|
+
settings: parseSettingsFromCreateTableQuery(row.create_table_query),
|
|
141
|
+
indexes: indexRows.map(normalizeIndexFromSystemRow),
|
|
142
|
+
projections: parseProjectionsFromCreateTableQuery(row.create_table_query),
|
|
143
|
+
ttl: parseTTLFromCreateTableQuery(row.create_table_query),
|
|
144
|
+
};
|
|
145
|
+
})
|
|
146
|
+
.sort((a, b) => {
|
|
147
|
+
const dbOrder = a.database.localeCompare(b.database);
|
|
148
|
+
if (dbOrder !== 0)
|
|
149
|
+
return dbOrder;
|
|
150
|
+
return a.name.localeCompare(b.name);
|
|
151
|
+
});
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@chkit/clickhouse",
|
|
3
|
+
"version": "0.1.0-beta.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
19
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
20
|
+
"lint": "biome lint src",
|
|
21
|
+
"test": "bun test src",
|
|
22
|
+
"clean": "rm -rf dist"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@chkit/core": "workspace:*",
|
|
26
|
+
"@clickhouse/client": "^1.11.0"
|
|
27
|
+
}
|
|
28
|
+
}
|