@chkit/clickhouse 0.1.0-beta.2 → 0.1.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/dist/create-table-parser.d.ts.map +1 -1
- package/dist/create-table-parser.js +3 -50
- package/dist/create-table-parser.js.map +1 -1
- package/dist/ddl-propagation.d.ts +11 -0
- package/dist/ddl-propagation.d.ts.map +1 -0
- package/dist/ddl-propagation.js +80 -0
- package/dist/ddl-propagation.js.map +1 -0
- package/dist/index.d.ts +59 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +221 -71
- package/dist/index.js.map +1 -1
- package/package.json +25 -3
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# @chkit/clickhouse
|
|
2
|
+
|
|
3
|
+
ClickHouse client wrapper used internally by chkit.
|
|
4
|
+
|
|
5
|
+
Part of the [chkit](https://github.com/obsessiondb/chkit) monorepo.
|
|
6
|
+
|
|
7
|
+
> **Note:** This is an internal package. You typically don't need to install it directly -- it's used by [`chkit`](https://www.npmjs.com/package/chkit) and other chkit packages.
|
|
8
|
+
|
|
9
|
+
## Getting Started
|
|
10
|
+
|
|
11
|
+
To get started with chkit, install the CLI:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
bun add -d chkit
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
See the [`chkit` CLI package](https://www.npmjs.com/package/chkit) for usage instructions.
|
|
18
|
+
|
|
19
|
+
## Documentation
|
|
20
|
+
|
|
21
|
+
See the [chkit documentation](https://chkit.obsessiondb.com).
|
|
22
|
+
|
|
23
|
+
## License
|
|
24
|
+
|
|
25
|
+
[MIT](../../LICENSE)
|
|
@@ -1 +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;
|
|
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;AA0DD,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"}
|
|
@@ -1,51 +1,4 @@
|
|
|
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
|
-
}
|
|
1
|
+
import { normalizeSQLFragment, splitTopLevelComma } from '@chkit/core';
|
|
49
2
|
function parseClauseFromCreateTableQuery(createTableQuery, clausePattern, stopPattern) {
|
|
50
3
|
if (!createTableQuery)
|
|
51
4
|
return undefined;
|
|
@@ -110,7 +63,7 @@ export function parseSettingsFromCreateTableQuery(createTableQuery) {
|
|
|
110
63
|
const rawSettings = settingsMatch[1].trim();
|
|
111
64
|
if (!rawSettings)
|
|
112
65
|
return {};
|
|
113
|
-
const items =
|
|
66
|
+
const items = splitTopLevelComma(rawSettings);
|
|
114
67
|
const out = {};
|
|
115
68
|
for (const item of items) {
|
|
116
69
|
const eq = item.indexOf('=');
|
|
@@ -152,7 +105,7 @@ export function parseProjectionsFromCreateTableQuery(createTableQuery) {
|
|
|
152
105
|
const body = extractCreateTableBody(createTableQuery);
|
|
153
106
|
if (!body)
|
|
154
107
|
return [];
|
|
155
|
-
const parts =
|
|
108
|
+
const parts = splitTopLevelComma(body);
|
|
156
109
|
const projections = [];
|
|
157
110
|
for (const part of parts) {
|
|
158
111
|
const match = part.match(/^\s*PROJECTION\s+(`([^`]+)`|([A-Za-z_][A-Za-z0-9_]*))\s*\(([\s\S]*)\)\s*$/i);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-table-parser.js","sourceRoot":"","sources":["../src/create-table-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"create-table-parser.js","sourceRoot":"","sources":["../src/create-table-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ClickHouseExecutor } from './index.js';
|
|
2
|
+
export declare function waitForTable(executor: ClickHouseExecutor, database: string, tableName: string): Promise<void>;
|
|
3
|
+
export declare function waitForView(executor: ClickHouseExecutor, database: string, viewName: string): Promise<void>;
|
|
4
|
+
export declare function waitForColumn(executor: ClickHouseExecutor, database: string, tableName: string, columnName: string): Promise<void>;
|
|
5
|
+
export declare function waitForTableAbsent(executor: ClickHouseExecutor, database: string, tableName: string): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Waits for DDL propagation based on the operation type and key.
|
|
8
|
+
* Called after each DDL statement in the migration execution loop.
|
|
9
|
+
*/
|
|
10
|
+
export declare function waitForDDLPropagation(executor: ClickHouseExecutor, operationType: string, operationKey: string): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=ddl-propagation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddl-propagation.d.ts","sourceRoot":"","sources":["../src/ddl-propagation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAWf;AAwBD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAsCf"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import pRetry from 'p-retry';
|
|
2
|
+
const RETRY_OPTIONS = { retries: 20, minTimeout: 500, factor: 1 };
|
|
3
|
+
export async function waitForTable(executor, database, tableName) {
|
|
4
|
+
await pRetry(async () => {
|
|
5
|
+
const rows = await executor.query(`SELECT 1 AS x FROM system.tables WHERE database = '${database}' AND name = '${tableName}'`);
|
|
6
|
+
if (rows.length === 0) {
|
|
7
|
+
throw new Error(`waitForTable: ${database}.${tableName} not yet visible`);
|
|
8
|
+
}
|
|
9
|
+
}, RETRY_OPTIONS);
|
|
10
|
+
}
|
|
11
|
+
export async function waitForView(executor, database, viewName) {
|
|
12
|
+
await pRetry(async () => {
|
|
13
|
+
const rows = await executor.query(`SELECT 1 AS x FROM system.tables WHERE database = '${database}' AND name = '${viewName}' AND engine LIKE '%View%'`);
|
|
14
|
+
if (rows.length === 0) {
|
|
15
|
+
throw new Error(`waitForView: ${database}.${viewName} not yet visible`);
|
|
16
|
+
}
|
|
17
|
+
}, RETRY_OPTIONS);
|
|
18
|
+
}
|
|
19
|
+
export async function waitForColumn(executor, database, tableName, columnName) {
|
|
20
|
+
await pRetry(async () => {
|
|
21
|
+
const rows = await executor.query(`SELECT 1 AS x FROM system.columns WHERE database = '${database}' AND table = '${tableName}' AND name = '${columnName}'`);
|
|
22
|
+
if (rows.length === 0) {
|
|
23
|
+
throw new Error(`waitForColumn: ${database}.${tableName}.${columnName} not yet visible`);
|
|
24
|
+
}
|
|
25
|
+
}, RETRY_OPTIONS);
|
|
26
|
+
}
|
|
27
|
+
export async function waitForTableAbsent(executor, database, tableName) {
|
|
28
|
+
await pRetry(async () => {
|
|
29
|
+
const rows = await executor.query(`SELECT 1 AS x FROM system.tables WHERE database = '${database}' AND name = '${tableName}'`);
|
|
30
|
+
if (rows.length > 0) {
|
|
31
|
+
throw new Error(`waitForTableAbsent: ${database}.${tableName} still present`);
|
|
32
|
+
}
|
|
33
|
+
}, RETRY_OPTIONS);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parses an operation key like "table:app.users" or "table:app.users:column:name"
|
|
37
|
+
* into its components.
|
|
38
|
+
*/
|
|
39
|
+
function parseOperationKey(key) {
|
|
40
|
+
const tableMatch = key.match(/^table:([^.]+)\.([^:]+)/);
|
|
41
|
+
if (!tableMatch)
|
|
42
|
+
return undefined;
|
|
43
|
+
// biome-ignore lint/style/noNonNullAssertion: capture groups guaranteed by regex match
|
|
44
|
+
const database = tableMatch[1];
|
|
45
|
+
// biome-ignore lint/style/noNonNullAssertion: capture groups guaranteed by regex match
|
|
46
|
+
const table = tableMatch[2];
|
|
47
|
+
const columnMatch = key.match(/:column:([^:]+)/);
|
|
48
|
+
return { database, table, column: columnMatch?.[1] };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Waits for DDL propagation based on the operation type and key.
|
|
52
|
+
* Called after each DDL statement in the migration execution loop.
|
|
53
|
+
*/
|
|
54
|
+
export async function waitForDDLPropagation(executor, operationType, operationKey) {
|
|
55
|
+
const parsed = parseOperationKey(operationKey);
|
|
56
|
+
if (!parsed)
|
|
57
|
+
return; // database-level ops or unrecognized keys — no wait needed
|
|
58
|
+
switch (operationType) {
|
|
59
|
+
case 'create_table':
|
|
60
|
+
return waitForTable(executor, parsed.database, parsed.table);
|
|
61
|
+
case 'create_view':
|
|
62
|
+
case 'create_materialized_view':
|
|
63
|
+
return waitForView(executor, parsed.database, parsed.table);
|
|
64
|
+
case 'alter_table_add_column':
|
|
65
|
+
case 'alter_table_modify_column':
|
|
66
|
+
if (parsed.column) {
|
|
67
|
+
return waitForColumn(executor, parsed.database, parsed.table, parsed.column);
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
case 'drop_table':
|
|
71
|
+
case 'drop_view':
|
|
72
|
+
case 'drop_materialized_view':
|
|
73
|
+
return waitForTableAbsent(executor, parsed.database, parsed.table);
|
|
74
|
+
default:
|
|
75
|
+
// alter_table_add_index, alter_table_modify_setting, etc.
|
|
76
|
+
// Wait for the table to exist as a basic sanity check.
|
|
77
|
+
return waitForTable(executor, parsed.database, parsed.table);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=ddl-propagation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddl-propagation.js","sourceRoot":"","sources":["../src/ddl-propagation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AAG5B,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;AAEjE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB;IAEjB,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,sDAAsD,QAAQ,iBAAiB,SAAS,GAAG,CAC5F,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,IAAI,SAAS,kBAAkB,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAA4B,EAC5B,QAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,sDAAsD,QAAQ,iBAAiB,QAAQ,4BAA4B,CACpH,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,IAAI,QAAQ,kBAAkB,CAAC,CAAA;QACzE,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,UAAkB;IAElB,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,uDAAuD,QAAQ,kBAAkB,SAAS,iBAAiB,UAAU,GAAG,CACzH,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,kBAAkB,QAAQ,IAAI,SAAS,IAAI,UAAU,kBAAkB,CACxE,CAAA;QACH,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB;IAEjB,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,sDAAsD,QAAQ,iBAAiB,SAAS,GAAG,CAC5F,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,IAAI,SAAS,gBAAgB,CAC7D,CAAA;QACH,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAW;IAOpC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,uFAAuF;IACvF,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;IAC/B,uFAAuF;IACvF,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;IAE5B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAA4B,EAC5B,aAAqB,EACrB,YAAoB;IAEpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAM,CAAC,2DAA2D;IAE/E,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,cAAc;YACjB,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAE9D,KAAK,aAAa,CAAC;QACnB,KAAK,0BAA0B;YAC7B,OAAO,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAE7D,KAAK,wBAAwB,CAAC;QAC9B,KAAK,2BAA2B;YAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,aAAa,CAClB,QAAQ,EACR,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,CACd,CAAA;YACH,CAAC;YACD,OAAM;QAER,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,wBAAwB;YAC3B,OAAO,kBAAkB,CACvB,QAAQ,EACR,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,CACb,CAAA;QAEH;YACE,0DAA0D;YAC1D,uDAAuD;YACvD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAChE,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,68 @@
|
|
|
1
1
|
import { type ChxConfig, type ColumnDefinition, type ProjectionDefinition, type SkipIndexDefinition } from '@chkit/core';
|
|
2
|
+
export interface QueryStatus {
|
|
3
|
+
status: 'running' | 'finished' | 'failed' | 'unknown';
|
|
4
|
+
readRows?: number;
|
|
5
|
+
readBytes?: number;
|
|
6
|
+
writtenRows?: number;
|
|
7
|
+
writtenBytes?: number;
|
|
8
|
+
elapsedMs?: number;
|
|
9
|
+
durationMs?: number;
|
|
10
|
+
error?: string;
|
|
11
|
+
}
|
|
2
12
|
export interface ClickHouseExecutor {
|
|
3
|
-
|
|
13
|
+
command(sql: string): Promise<void>;
|
|
4
14
|
query<T>(sql: string): Promise<T[]>;
|
|
15
|
+
insert<T extends Record<string, unknown>>(params: {
|
|
16
|
+
table: string;
|
|
17
|
+
values: T[];
|
|
18
|
+
}): Promise<void>;
|
|
5
19
|
listSchemaObjects(): Promise<SchemaObjectRef[]>;
|
|
6
20
|
listTableDetails(databases: string[]): Promise<IntrospectedTable[]>;
|
|
21
|
+
/** Submit a query asynchronously. ClickHouse accepts the query and processes it server-side.
|
|
22
|
+
* Returns immediately without waiting for completion.
|
|
23
|
+
* @param sql - The SQL to execute
|
|
24
|
+
* @param queryId - Optional deterministic query_id (useful for resumability). Auto-generated if omitted.
|
|
25
|
+
* @returns The query_id assigned to this query. */
|
|
26
|
+
submit(sql: string, queryId?: string): Promise<string>;
|
|
27
|
+
/** Check the status of a previously submitted query.
|
|
28
|
+
* Checks system.processes first (running?), then system.query_log (finished/failed?).
|
|
29
|
+
* @param queryId - The query_id returned by submit()
|
|
30
|
+
* @param options.afterTime - Only consider query_log entries for queries started at or after this ISO timestamp.
|
|
31
|
+
* Useful when resubmitting with the same query_id to ignore stale entries from previous attempts. */
|
|
32
|
+
queryStatus(queryId: string, options?: {
|
|
33
|
+
afterTime?: string;
|
|
34
|
+
}): Promise<QueryStatus>;
|
|
35
|
+
close(): Promise<void>;
|
|
7
36
|
}
|
|
8
37
|
export interface SchemaObjectRef {
|
|
9
38
|
kind: 'table' | 'view' | 'materialized_view';
|
|
10
39
|
database: string;
|
|
11
40
|
name: string;
|
|
12
41
|
}
|
|
42
|
+
export interface SystemTableRow {
|
|
43
|
+
database: string;
|
|
44
|
+
name: string;
|
|
45
|
+
engine: string;
|
|
46
|
+
create_table_query?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface SystemColumnRow {
|
|
49
|
+
database: string;
|
|
50
|
+
table: string;
|
|
51
|
+
name: string;
|
|
52
|
+
type: string;
|
|
53
|
+
default_kind?: string;
|
|
54
|
+
default_expression?: string;
|
|
55
|
+
comment?: string;
|
|
56
|
+
position: number;
|
|
57
|
+
}
|
|
58
|
+
export interface SystemSkippingIndexRow {
|
|
59
|
+
database: string;
|
|
60
|
+
table: string;
|
|
61
|
+
name: string;
|
|
62
|
+
expr: string;
|
|
63
|
+
type: string;
|
|
64
|
+
granularity: number;
|
|
65
|
+
}
|
|
13
66
|
export interface IntrospectedTable {
|
|
14
67
|
database: string;
|
|
15
68
|
name: string;
|
|
@@ -26,5 +79,10 @@ export interface IntrospectedTable {
|
|
|
26
79
|
}
|
|
27
80
|
export { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
28
81
|
export declare function inferSchemaKindFromEngine(engine: string): SchemaObjectRef['kind'] | null;
|
|
82
|
+
export declare function normalizeColumnFromSystemRow(row: SystemColumnRow): ColumnDefinition;
|
|
83
|
+
export declare function normalizeIndexFromSystemRow(row: SystemSkippingIndexRow): SkipIndexDefinition;
|
|
84
|
+
export declare function buildIntrospectedTables(tables: SystemTableRow[], columns: SystemColumnRow[], indexes: SystemSkippingIndexRow[]): IntrospectedTable[];
|
|
85
|
+
export declare function isUnknownDatabaseError(error: unknown): boolean;
|
|
86
|
+
export { waitForDDLPropagation, waitForTable, waitForView, waitForColumn, waitForTableAbsent, } from './ddl-propagation.js';
|
|
29
87
|
export declare function createClickHouseExecutor(config: NonNullable<ChxConfig['clickhouse']>): ClickHouseExecutor;
|
|
30
88
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export function inferSchemaKindFromEngine(engine) {
|
|
|
11
11
|
return null;
|
|
12
12
|
return 'table';
|
|
13
13
|
}
|
|
14
|
-
function normalizeColumnFromSystemRow(row) {
|
|
14
|
+
export function normalizeColumnFromSystemRow(row) {
|
|
15
15
|
const nullableMatch = row.type.match(/^Nullable\((.+)\)$/);
|
|
16
16
|
const type = nullableMatch?.[1] ? nullableMatch[1] : row.type;
|
|
17
17
|
const nullable = Boolean(nullableMatch?.[1]);
|
|
@@ -27,50 +27,250 @@ function normalizeColumnFromSystemRow(row) {
|
|
|
27
27
|
comment: row.comment?.trim() || undefined,
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
function parseIndexType(value) {
|
|
31
|
+
const match = value.match(/^(\w+)\((.+)\)$/);
|
|
32
|
+
const baseName = match?.[1] ?? value;
|
|
33
|
+
const args = match?.[2];
|
|
34
|
+
switch (baseName) {
|
|
35
|
+
case 'minmax':
|
|
36
|
+
return args !== undefined ? { type: 'minmax', typeArgs: args } : { type: 'minmax' };
|
|
37
|
+
case 'bloom_filter':
|
|
38
|
+
return args !== undefined ? { type: 'bloom_filter', typeArgs: args } : { type: 'bloom_filter' };
|
|
39
|
+
case 'tokenbf_v1':
|
|
40
|
+
return { type: 'tokenbf_v1', typeArgs: args ?? '0' };
|
|
41
|
+
case 'ngrambf_v1':
|
|
42
|
+
return { type: 'ngrambf_v1', typeArgs: args ?? '0' };
|
|
43
|
+
default:
|
|
44
|
+
return { type: 'set', typeArgs: args ?? '0' };
|
|
45
|
+
}
|
|
42
46
|
}
|
|
43
|
-
function normalizeIndexFromSystemRow(row) {
|
|
47
|
+
export function normalizeIndexFromSystemRow(row) {
|
|
48
|
+
const parsed = parseIndexType(row.type);
|
|
44
49
|
return {
|
|
45
50
|
name: row.name,
|
|
46
51
|
expression: normalizeSQLFragment(row.expr),
|
|
47
|
-
type: normalizeIndexType(row.type),
|
|
48
52
|
granularity: row.granularity,
|
|
53
|
+
...parsed,
|
|
49
54
|
};
|
|
50
55
|
}
|
|
56
|
+
export function buildIntrospectedTables(tables, columns, indexes) {
|
|
57
|
+
const tableRows = tables.filter((row) => inferSchemaKindFromEngine(row.engine) === 'table');
|
|
58
|
+
if (tableRows.length === 0)
|
|
59
|
+
return [];
|
|
60
|
+
const columnsByTable = new Map();
|
|
61
|
+
for (const row of columns) {
|
|
62
|
+
const key = `${row.database}.${row.table}`;
|
|
63
|
+
const rows = columnsByTable.get(key);
|
|
64
|
+
if (rows)
|
|
65
|
+
rows.push(row);
|
|
66
|
+
else
|
|
67
|
+
columnsByTable.set(key, [row]);
|
|
68
|
+
}
|
|
69
|
+
const indexesByTable = new Map();
|
|
70
|
+
for (const row of indexes) {
|
|
71
|
+
const key = `${row.database}.${row.table}`;
|
|
72
|
+
const rows = indexesByTable.get(key);
|
|
73
|
+
if (rows)
|
|
74
|
+
rows.push(row);
|
|
75
|
+
else
|
|
76
|
+
indexesByTable.set(key, [row]);
|
|
77
|
+
}
|
|
78
|
+
return tableRows
|
|
79
|
+
.map((row) => {
|
|
80
|
+
const key = `${row.database}.${row.name}`;
|
|
81
|
+
const columnRows = (columnsByTable.get(key) ?? []).sort((a, b) => a.position - b.position);
|
|
82
|
+
const indexRows = indexesByTable.get(key) ?? [];
|
|
83
|
+
return {
|
|
84
|
+
database: row.database,
|
|
85
|
+
name: row.name,
|
|
86
|
+
engine: parseEngineFromCreateTableQuery(row.create_table_query),
|
|
87
|
+
primaryKey: parsePrimaryKeyFromCreateTableQuery(row.create_table_query),
|
|
88
|
+
orderBy: parseOrderByFromCreateTableQuery(row.create_table_query),
|
|
89
|
+
uniqueKey: parseUniqueKeyFromCreateTableQuery(row.create_table_query),
|
|
90
|
+
partitionBy: parsePartitionByFromCreateTableQuery(row.create_table_query),
|
|
91
|
+
columns: columnRows.map(normalizeColumnFromSystemRow),
|
|
92
|
+
settings: parseSettingsFromCreateTableQuery(row.create_table_query),
|
|
93
|
+
indexes: indexRows.map(normalizeIndexFromSystemRow),
|
|
94
|
+
projections: parseProjectionsFromCreateTableQuery(row.create_table_query),
|
|
95
|
+
ttl: parseTTLFromCreateTableQuery(row.create_table_query),
|
|
96
|
+
};
|
|
97
|
+
})
|
|
98
|
+
.sort((a, b) => {
|
|
99
|
+
const dbOrder = a.database.localeCompare(b.database);
|
|
100
|
+
if (dbOrder !== 0)
|
|
101
|
+
return dbOrder;
|
|
102
|
+
return a.name.localeCompare(b.name);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const NETWORK_ERROR_LABELS = {
|
|
106
|
+
ECONNREFUSED: 'connection refused',
|
|
107
|
+
ENOTFOUND: 'host not found',
|
|
108
|
+
ETIMEDOUT: 'connection timed out',
|
|
109
|
+
ECONNRESET: 'connection reset',
|
|
110
|
+
EHOSTUNREACH: 'host unreachable',
|
|
111
|
+
};
|
|
112
|
+
function wrapConnectionError(error, url) {
|
|
113
|
+
if (error instanceof Error && 'code' in error) {
|
|
114
|
+
const code = error.code ?? '';
|
|
115
|
+
const label = NETWORK_ERROR_LABELS[code];
|
|
116
|
+
if (label) {
|
|
117
|
+
throw new Error(`Could not connect to ClickHouse at ${url} (${label})`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
export function isUnknownDatabaseError(error) {
|
|
123
|
+
if (!(error instanceof Error))
|
|
124
|
+
return false;
|
|
125
|
+
if (!('code' in error))
|
|
126
|
+
return false;
|
|
127
|
+
return String(error.code) === '81';
|
|
128
|
+
}
|
|
129
|
+
export { waitForDDLPropagation, waitForTable, waitForView, waitForColumn, waitForTableAbsent, } from './ddl-propagation.js';
|
|
51
130
|
export function createClickHouseExecutor(config) {
|
|
52
131
|
const client = createClient({
|
|
53
132
|
url: config.url,
|
|
54
133
|
username: config.username,
|
|
55
134
|
password: config.password,
|
|
56
135
|
database: config.database,
|
|
136
|
+
session_id: crypto.randomUUID(),
|
|
57
137
|
clickhouse_settings: {
|
|
58
138
|
wait_end_of_query: 1,
|
|
139
|
+
async_insert: 0,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
const fireAndForgetClient = createClient({
|
|
143
|
+
url: config.url,
|
|
144
|
+
username: config.username,
|
|
145
|
+
password: config.password,
|
|
146
|
+
database: config.database,
|
|
147
|
+
clickhouse_settings: {
|
|
148
|
+
wait_end_of_query: 0,
|
|
59
149
|
},
|
|
60
150
|
});
|
|
61
151
|
return {
|
|
62
|
-
async
|
|
63
|
-
|
|
152
|
+
async command(sql) {
|
|
153
|
+
try {
|
|
154
|
+
await client.command({ query: sql, http_headers: { 'X-DDL': '1' } });
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
if (isUnknownDatabaseError(error)) {
|
|
158
|
+
// The configured database doesn't exist yet. Retry without the
|
|
159
|
+
// session database so that CREATE DATABASE can succeed.
|
|
160
|
+
const fallback = createClient({
|
|
161
|
+
url: config.url,
|
|
162
|
+
username: config.username,
|
|
163
|
+
password: config.password,
|
|
164
|
+
clickhouse_settings: { wait_end_of_query: 1, async_insert: 0 },
|
|
165
|
+
});
|
|
166
|
+
try {
|
|
167
|
+
await fallback.command({ query: sql, http_headers: { 'X-DDL': '1' } });
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
await fallback.close();
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
wrapConnectionError(error, config.url);
|
|
175
|
+
}
|
|
64
176
|
},
|
|
65
177
|
async query(sql) {
|
|
66
|
-
|
|
67
|
-
|
|
178
|
+
try {
|
|
179
|
+
const result = await client.query({ query: sql, format: 'JSONEachRow', http_headers: { 'X-DDL': '1' } });
|
|
180
|
+
return result.json();
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
wrapConnectionError(error, config.url);
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
async insert(params) {
|
|
187
|
+
try {
|
|
188
|
+
await client.insert({
|
|
189
|
+
table: params.table,
|
|
190
|
+
values: params.values,
|
|
191
|
+
format: 'JSONEachRow',
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
wrapConnectionError(error, config.url);
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
async submit(sql, queryId) {
|
|
199
|
+
const id = queryId ?? crypto.randomUUID();
|
|
200
|
+
try {
|
|
201
|
+
await fireAndForgetClient.command({ query: sql, query_id: id });
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
wrapConnectionError(error, config.url);
|
|
205
|
+
}
|
|
206
|
+
return id;
|
|
207
|
+
},
|
|
208
|
+
async queryStatus(queryId, options) {
|
|
209
|
+
try {
|
|
210
|
+
const running = await client.query({
|
|
211
|
+
query: `SELECT read_rows, read_bytes, written_rows, written_bytes, elapsed FROM clusterAllReplicas('parallel_replicas', system.processes) WHERE user = currentUser() AND query_id = {qid:String} SETTINGS skip_unavailable_shards = 1`,
|
|
212
|
+
query_params: { qid: queryId },
|
|
213
|
+
format: 'JSONEachRow',
|
|
214
|
+
});
|
|
215
|
+
const runningRows = await running.json();
|
|
216
|
+
if (runningRows.length > 0) {
|
|
217
|
+
const proc = runningRows[0];
|
|
218
|
+
return {
|
|
219
|
+
status: 'running',
|
|
220
|
+
readRows: Number(proc.read_rows),
|
|
221
|
+
readBytes: Number(proc.read_bytes),
|
|
222
|
+
writtenRows: Number(proc.written_rows),
|
|
223
|
+
writtenBytes: Number(proc.written_bytes),
|
|
224
|
+
elapsedMs: Math.round(Number(proc.elapsed) * 1000),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
const afterTime = options?.afterTime ?? '1970-01-01T00:00:00Z';
|
|
228
|
+
const log = await client.query({
|
|
229
|
+
query: `SELECT type, written_rows, written_bytes, query_duration_ms, exception
|
|
230
|
+
FROM clusterAllReplicas('parallel_replicas', system.query_log)
|
|
231
|
+
WHERE user = currentUser()
|
|
232
|
+
AND query_id = {qid:String}
|
|
233
|
+
AND type IN ('QueryFinish', 'ExceptionWhileProcessing')
|
|
234
|
+
AND is_initial_query = 1
|
|
235
|
+
AND query_start_time >= parseDateTimeBestEffort({after:String})
|
|
236
|
+
ORDER BY event_time DESC
|
|
237
|
+
LIMIT 1
|
|
238
|
+
SETTINGS skip_unavailable_shards = 1`,
|
|
239
|
+
query_params: { qid: queryId, after: afterTime },
|
|
240
|
+
format: 'JSONEachRow',
|
|
241
|
+
});
|
|
242
|
+
const logRows = await log.json();
|
|
243
|
+
if (logRows.length === 0) {
|
|
244
|
+
return { status: 'unknown' };
|
|
245
|
+
}
|
|
246
|
+
const row = logRows[0];
|
|
247
|
+
if (row.type === 'QueryFinish') {
|
|
248
|
+
return {
|
|
249
|
+
status: 'finished',
|
|
250
|
+
writtenRows: Number(row.written_rows),
|
|
251
|
+
writtenBytes: Number(row.written_bytes),
|
|
252
|
+
durationMs: Number(row.query_duration_ms),
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
return {
|
|
256
|
+
status: 'failed',
|
|
257
|
+
durationMs: Number(row.query_duration_ms),
|
|
258
|
+
error: row.exception,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
wrapConnectionError(error, config.url);
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
async close() {
|
|
266
|
+
await Promise.all([client.close(), fireAndForgetClient.close()]);
|
|
68
267
|
},
|
|
69
268
|
async listSchemaObjects() {
|
|
70
269
|
const rows = await this.query(`SELECT database, name, engine
|
|
71
270
|
FROM system.tables
|
|
72
271
|
WHERE is_temporary = 0
|
|
73
|
-
AND database NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
|
|
272
|
+
AND database NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
|
|
273
|
+
AND name NOT LIKE '_chkit_%'`);
|
|
74
274
|
const out = [];
|
|
75
275
|
for (const row of rows) {
|
|
76
276
|
const kind = inferSchemaKindFromEngine(row.engine);
|
|
@@ -92,63 +292,13 @@ WHERE is_temporary = 0
|
|
|
92
292
|
FROM system.tables
|
|
93
293
|
WHERE is_temporary = 0
|
|
94
294
|
AND database IN (${quotedDatabases})`);
|
|
95
|
-
const tableRows = tables.filter((row) => inferSchemaKindFromEngine(row.engine) === 'table');
|
|
96
|
-
if (tableRows.length === 0)
|
|
97
|
-
return [];
|
|
98
295
|
const columns = await this.query(`SELECT database, table, name, type, default_kind, default_expression, comment, position
|
|
99
296
|
FROM system.columns
|
|
100
297
|
WHERE database IN (${quotedDatabases})`);
|
|
101
298
|
const indexes = await this.query(`SELECT database, table, name, expr, type, granularity
|
|
102
299
|
FROM system.data_skipping_indices
|
|
103
300
|
WHERE database IN (${quotedDatabases})`);
|
|
104
|
-
|
|
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
|
-
});
|
|
301
|
+
return buildIntrospectedTables(tables, columns, indexes);
|
|
152
302
|
},
|
|
153
303
|
};
|
|
154
304
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chkit/clickhouse",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.20",
|
|
4
|
+
"description": "ClickHouse client wrapper for chkit",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "ObsessionDB",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"clickhouse",
|
|
9
|
+
"database",
|
|
10
|
+
"client"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://chkit.obsessiondb.com",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/obsessiondb/chkit/issues"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/obsessiondb/chkit.git",
|
|
19
|
+
"directory": "packages/clickhouse"
|
|
20
|
+
},
|
|
4
21
|
"type": "module",
|
|
5
22
|
"main": "./dist/index.js",
|
|
6
23
|
"types": "./dist/index.d.ts",
|
|
@@ -9,6 +26,10 @@
|
|
|
9
26
|
"source": "./src/index.ts",
|
|
10
27
|
"types": "./dist/index.d.ts",
|
|
11
28
|
"default": "./dist/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./e2e-testkit": {
|
|
31
|
+
"bun": "./src/e2e-testkit.ts",
|
|
32
|
+
"default": "./src/e2e-testkit.ts"
|
|
12
33
|
}
|
|
13
34
|
},
|
|
14
35
|
"files": [
|
|
@@ -23,7 +44,8 @@
|
|
|
23
44
|
"clean": "rm -rf dist"
|
|
24
45
|
},
|
|
25
46
|
"dependencies": {
|
|
26
|
-
"@chkit/core": "0.1.0-beta.
|
|
27
|
-
"@clickhouse/client": "^1.11.0"
|
|
47
|
+
"@chkit/core": "0.1.0-beta.20",
|
|
48
|
+
"@clickhouse/client": "^1.11.0",
|
|
49
|
+
"p-retry": "^7.1.1"
|
|
28
50
|
}
|
|
29
51
|
}
|