@chkit/clickhouse 0.2.0-beta.11 → 0.2.0-beta.12
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/alter-column-statement.d.ts +32 -0
- package/dist/alter-column-statement.d.ts.map +1 -0
- package/dist/alter-column-statement.js +137 -0
- package/dist/alter-column-statement.js.map +1 -0
- package/dist/async-insert-guard.d.ts +31 -0
- package/dist/async-insert-guard.d.ts.map +1 -0
- package/dist/async-insert-guard.js +55 -0
- package/dist/async-insert-guard.js.map +1 -0
- package/dist/create-table-parser.d.ts +3 -0
- package/dist/create-table-parser.d.ts.map +1 -1
- package/dist/create-table-parser.js +18 -0
- package/dist/create-table-parser.js.map +1 -1
- package/dist/ddl-propagation.d.ts +62 -6
- package/dist/ddl-propagation.d.ts.map +1 -1
- package/dist/ddl-propagation.js +420 -46
- package/dist/ddl-propagation.js.map +1 -1
- package/dist/e2e-testkit.d.ts +4 -1
- package/dist/e2e-testkit.d.ts.map +1 -1
- package/dist/e2e-testkit.js +9 -5
- package/dist/e2e-testkit.js.map +1 -1
- package/dist/exact-json.d.ts +27 -0
- package/dist/exact-json.d.ts.map +1 -0
- package/dist/exact-json.js +128 -0
- package/dist/exact-json.js.map +1 -0
- package/dist/index.d.ts +32 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +177 -60
- package/dist/index.js.map +1 -1
- package/dist/insert-barrier.d.ts +32 -0
- package/dist/insert-barrier.d.ts.map +1 -0
- package/dist/insert-barrier.js +57 -0
- package/dist/insert-barrier.js.map +1 -0
- package/dist/replicas.d.ts +21 -0
- package/dist/replicas.d.ts.map +1 -0
- package/dist/replicas.js +39 -0
- package/dist/replicas.js.map +1 -0
- package/dist/view-details.d.ts +30 -0
- package/dist/view-details.d.ts.map +1 -0
- package/dist/view-details.js +73 -0
- package/dist/view-details.js.map +1 -0
- package/package.json +5 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
-
import {
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
import { isSyntheticEphemeralDefault, normalizeSQLFragment, parseCodec, parseTextIndexParams, parseVectorIndexArgs, normalizeTextIndexSQL, } from '@chkit/core';
|
|
3
4
|
import { ClickHouseLogLevel, createClient } from '@clickhouse/client';
|
|
4
5
|
import { getLogger } from '@logtape/logtape';
|
|
5
|
-
import {
|
|
6
|
+
import { parseJsonEachRow, parseJsonResult } from './exact-json.js';
|
|
7
|
+
import { allReplicas, resolveReplicaFanout } from './replicas.js';
|
|
8
|
+
import { parseConstraintsFromCreateTableQuery, parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
6
9
|
const pkg = createRequire(import.meta.url)('../package.json');
|
|
7
10
|
const CHKIT_APPLICATION_ID = `chkit/${pkg.version}`;
|
|
8
11
|
/**
|
|
@@ -12,8 +15,9 @@ const CHKIT_APPLICATION_ID = `chkit/${pkg.version}`;
|
|
|
12
15
|
export function observableSystemTable(executor, table) {
|
|
13
16
|
return executor.systemTableSource?.(table) ?? `system.${table}`;
|
|
14
17
|
}
|
|
15
|
-
export { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
18
|
+
export { parseConstraintsFromCreateTableQuery, parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
16
19
|
export { canonicalizeSqlFragments } from './canonicalize.js';
|
|
20
|
+
export { listViewDetails, parseMaterializedViewTarget } from './view-details.js';
|
|
17
21
|
export { parseCommentFromCreateDictionaryQuery, parseDictionaryAttributesFromCreateDictionaryQuery, parseDictionaryPrimaryKeyFromCreateDictionaryQuery, parseDictionaryRangeFromCreateDictionaryQuery, parseDictionarySettingsFromCreateDictionaryQuery, parseLayoutFromCreateDictionaryQuery, parseLifetimeFromCreateDictionaryQuery, parseSourceFromCreateDictionaryQuery, } from './create-dictionary-parser.js';
|
|
18
22
|
export function inferSchemaKindFromEngine(engine) {
|
|
19
23
|
if (engine === 'View')
|
|
@@ -56,52 +60,72 @@ export function normalizeColumnFromSystemRow(row) {
|
|
|
56
60
|
codec: codecSteps,
|
|
57
61
|
};
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
63
|
+
/**
|
|
64
|
+
* Maps `system.data_skipping_indices.type_full` onto the structured DSL shape.
|
|
65
|
+
* A type chkit has no structured form for, or arguments that do not fit one
|
|
66
|
+
* (`set` without a row limit, an unknown text parameter, a newer vector
|
|
67
|
+
* similarity option), become a raw index carrying `type_full` verbatim, so pull
|
|
68
|
+
* and drift never rewrite an index into a different one.
|
|
69
|
+
*/
|
|
67
70
|
function parseIndexType(value) {
|
|
68
71
|
const match = value.match(/^(\w+)\((.*)\)$/s);
|
|
69
|
-
const baseName = match?.[1] ?? value;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
72
|
+
const baseName = match?.[1] ?? value.trim();
|
|
73
|
+
const args = match?.[2];
|
|
74
|
+
const raw = { type: 'raw', rawType: normalizeSQLFragment(value) };
|
|
75
|
+
const numbers = args === undefined ? [] : splitArgs(args);
|
|
76
|
+
const numeric = (count) => args !== undefined && numbers.length === count;
|
|
73
77
|
switch (baseName) {
|
|
78
|
+
case 'text':
|
|
79
|
+
try {
|
|
80
|
+
return { type: 'text', ...parseTextIndexParams(args ?? '') };
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return raw;
|
|
84
|
+
}
|
|
85
|
+
case 'vector_similarity': {
|
|
86
|
+
const parsed = args === undefined ? undefined : parseVectorIndexArgs(args);
|
|
87
|
+
return parsed ?? raw;
|
|
88
|
+
}
|
|
74
89
|
case 'minmax':
|
|
75
|
-
return { type: 'minmax' };
|
|
90
|
+
return args === undefined ? { type: 'minmax' } : raw;
|
|
91
|
+
case 'set':
|
|
92
|
+
return numeric(1) ? { type: 'set', maxRows: numbers[0] ?? 0 } : raw;
|
|
76
93
|
case 'bloom_filter':
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
94
|
+
if (args === undefined)
|
|
95
|
+
return { type: 'bloom_filter' };
|
|
96
|
+
return numeric(1) ? { type: 'bloom_filter', falsePositiveRate: numbers[0] } : raw;
|
|
80
97
|
case 'tokenbf_v1':
|
|
81
|
-
return
|
|
82
|
-
type: 'tokenbf_v1',
|
|
83
|
-
|
|
84
|
-
hashFunctions: args[1] ?? 0,
|
|
85
|
-
randomSeed: args[2] ?? 0,
|
|
86
|
-
};
|
|
98
|
+
return numeric(3)
|
|
99
|
+
? { type: 'tokenbf_v1', sizeBytes: numbers[0] ?? 0, hashFunctions: numbers[1] ?? 0, randomSeed: numbers[2] ?? 0 }
|
|
100
|
+
: raw;
|
|
87
101
|
case 'ngrambf_v1':
|
|
88
|
-
return
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
return numeric(4)
|
|
103
|
+
? {
|
|
104
|
+
type: 'ngrambf_v1',
|
|
105
|
+
ngramSize: numbers[0] ?? 0,
|
|
106
|
+
sizeBytes: numbers[1] ?? 0,
|
|
107
|
+
hashFunctions: numbers[2] ?? 0,
|
|
108
|
+
randomSeed: numbers[3] ?? 0,
|
|
109
|
+
}
|
|
110
|
+
: raw;
|
|
95
111
|
default:
|
|
96
|
-
return
|
|
112
|
+
return raw;
|
|
97
113
|
}
|
|
98
114
|
}
|
|
115
|
+
/** Numeric arguments, or none when any argument is not a plain number. */
|
|
116
|
+
function splitArgs(args) {
|
|
117
|
+
const parts = args.split(',').map((part) => part.trim());
|
|
118
|
+
if (parts.some((part) => !/^-?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i.test(part)))
|
|
119
|
+
return [];
|
|
120
|
+
return parts.map(Number);
|
|
121
|
+
}
|
|
99
122
|
export function normalizeIndexFromSystemRow(row) {
|
|
100
123
|
const parsed = parseIndexType(row.type);
|
|
101
124
|
return {
|
|
102
125
|
name: row.name,
|
|
103
126
|
expression: parsed.type === 'text' ? normalizeTextIndexSQL(row.expr) : normalizeSQLFragment(row.expr),
|
|
104
|
-
|
|
127
|
+
// UInt64 arrives as a JSON string when the server quotes 64-bit integers.
|
|
128
|
+
granularity: Number(row.granularity),
|
|
105
129
|
...parsed,
|
|
106
130
|
};
|
|
107
131
|
}
|
|
@@ -144,6 +168,7 @@ export function buildIntrospectedTables(tables, columns, indexes) {
|
|
|
144
168
|
settings: parseSettingsFromCreateTableQuery(row.create_table_query),
|
|
145
169
|
indexes: indexRows.map(normalizeIndexFromSystemRow),
|
|
146
170
|
projections: parseProjectionsFromCreateTableQuery(row.create_table_query),
|
|
171
|
+
constraints: parseConstraintsFromCreateTableQuery(row.create_table_query),
|
|
147
172
|
ttl: parseTTLFromCreateTableQuery(row.create_table_query),
|
|
148
173
|
};
|
|
149
174
|
})
|
|
@@ -208,9 +233,12 @@ function isAuthError(error) {
|
|
|
208
233
|
export function formatConnectionError(error, url, username) {
|
|
209
234
|
if (!(error instanceof Error))
|
|
210
235
|
return undefined;
|
|
236
|
+
const shownUrl = urlWithoutCredentials(url);
|
|
211
237
|
if (isAuthError(error)) {
|
|
212
|
-
|
|
213
|
-
|
|
238
|
+
// A user in the URL is the one the client signs in as (see credentialOptions).
|
|
239
|
+
const user = urlUsername(url) || username;
|
|
240
|
+
const who = user ? `user "${user}"` : 'the configured user';
|
|
241
|
+
return `Authentication failed for ${who} at ${shownUrl}. Check CLICKHOUSE_USER / CLICKHOUSE_PASSWORD.`;
|
|
214
242
|
}
|
|
215
243
|
const label = networkLabelFromError(error);
|
|
216
244
|
if (label) {
|
|
@@ -219,10 +247,27 @@ export function formatConnectionError(error, url, username) {
|
|
|
219
247
|
const hint = isLocalhostDefault && envUnset
|
|
220
248
|
? '\n Hint: CLICKHOUSE_URL is not set — chkit fell back to the default localhost endpoint. Set CLICKHOUSE_URL to point at your ClickHouse instance.'
|
|
221
249
|
: '';
|
|
222
|
-
return `Could not connect to ClickHouse at ${
|
|
250
|
+
return `Could not connect to ClickHouse at ${shownUrl} (${label})${hint}`;
|
|
223
251
|
}
|
|
224
252
|
return undefined;
|
|
225
253
|
}
|
|
254
|
+
/** The URL without its `user:password@` part, for messages and logs. */
|
|
255
|
+
export function urlWithoutCredentials(url) {
|
|
256
|
+
return url.replace(/^([a-z][a-z\d+.-]*:\/\/)[^/?#]*@/i, '$1');
|
|
257
|
+
}
|
|
258
|
+
/** The user set in the URL, decoded as `@clickhouse/client` does, or '' when it sets none. */
|
|
259
|
+
function urlUsername(url) {
|
|
260
|
+
if (!URL.canParse(url))
|
|
261
|
+
return '';
|
|
262
|
+
const username = new URL(url).username;
|
|
263
|
+
try {
|
|
264
|
+
return decodeURIComponent(username);
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
// Malformed escapes: keep them as written, as Python's unquote does.
|
|
268
|
+
return username;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
226
271
|
export function wrapConnectionError(error, url, username) {
|
|
227
272
|
const message = formatConnectionError(error, url, username);
|
|
228
273
|
if (message !== undefined)
|
|
@@ -283,7 +328,10 @@ export function assertStreamedQuerySucceeded(input) {
|
|
|
283
328
|
sql: input.sql,
|
|
284
329
|
});
|
|
285
330
|
}
|
|
286
|
-
export { waitForColumn, waitForDDLPropagation, waitForDictionary, waitForTable, waitForTableAbsent, waitForView, } from './ddl-propagation.js';
|
|
331
|
+
export { waitForColumn, waitForColumnAbsent, parseExchangeTables, waitForDDLPropagation, waitForDictionary, waitForExchange, waitForTable, waitForTableAbsent, waitForView, } from './ddl-propagation.js';
|
|
332
|
+
export { allReplicas, resolveReplicaFanout } from './replicas.js';
|
|
333
|
+
export { assertNoFireAndForgetAsyncInserts } from './async-insert-guard.js';
|
|
334
|
+
export { waitForInsertBarrier } from './insert-barrier.js';
|
|
287
335
|
function parseSummaryFromHeaders(headers) {
|
|
288
336
|
const raw = headers['x-clickhouse-summary'];
|
|
289
337
|
if (!raw || typeof raw !== 'string')
|
|
@@ -308,11 +356,36 @@ function logProfiling(logger, query, queryId, summary) {
|
|
|
308
356
|
resultBytes: Number(summary?.result_bytes ?? 0),
|
|
309
357
|
});
|
|
310
358
|
}
|
|
359
|
+
// Sent with every request. wait_end_of_query is an HTTP parameter, not a
|
|
360
|
+
// setting, so a readonly = 1 user, who cannot change any setting, can send it
|
|
361
|
+
// too (#402).
|
|
311
362
|
const DEFAULT_CLICKHOUSE_SETTINGS = {
|
|
312
363
|
wait_end_of_query: 1,
|
|
313
|
-
|
|
364
|
+
};
|
|
365
|
+
// Progress headers keep a long query's connection alive through proxies with
|
|
366
|
+
// an idle timeout (often 60 s), since wait_end_of_query holds back the body.
|
|
367
|
+
// Node and Bun reject a response once its headers pass ~16 KB, which the
|
|
368
|
+
// default 100 ms interval reaches after about 10 s, so send one every 30 s.
|
|
369
|
+
const PROGRESS_SETTINGS = {
|
|
314
370
|
send_progress_in_http_headers: 1,
|
|
371
|
+
http_headers_progress_interval_ms: '30000',
|
|
315
372
|
};
|
|
373
|
+
// Sent with writes only (command and insert): no asynchronous INSERTs, and
|
|
374
|
+
// progress headers that keep a long migration's connection alive.
|
|
375
|
+
const WRITE_SETTINGS = {
|
|
376
|
+
async_insert: 0,
|
|
377
|
+
...PROGRESS_SETTINGS,
|
|
378
|
+
};
|
|
379
|
+
// A readonly = 1 user cannot change any setting: ClickHouse rejects a query
|
|
380
|
+
// that carries one with READONLY (164). readonly = 2 allows them.
|
|
381
|
+
async function canChangeSettings(client) {
|
|
382
|
+
const result = await client.query({
|
|
383
|
+
query: "SELECT getSetting('readonly') AS readonly",
|
|
384
|
+
format: 'JSONEachRow',
|
|
385
|
+
});
|
|
386
|
+
const row = JSON.parse((await result.text()).trim());
|
|
387
|
+
return Number(row.readonly) !== 1;
|
|
388
|
+
}
|
|
316
389
|
// chkit emits its own clean, one-line connection errors (see wrapConnectionError).
|
|
317
390
|
// The built-in @clickhouse/client DefaultLogger defaults to WARN since v1.18, which
|
|
318
391
|
// logs the full raw server remediation blurb to stderr on any connection ERROR and
|
|
@@ -325,11 +398,20 @@ const SILENT_CLIENT_LOG = { level: ClickHouseLogLevel.OFF };
|
|
|
325
398
|
// completes, so any finite timeout eventually trips. 0 disables the idle
|
|
326
399
|
// timeout entirely — TCP keepalive still detects dead connections.
|
|
327
400
|
const NO_REQUEST_TIMEOUT = 0;
|
|
401
|
+
// @clickhouse/client takes credentials in the URL over username/password and logs
|
|
402
|
+
// a warning for each override, whatever the log level. Leaving out what the URL
|
|
403
|
+
// sets keeps the same credentials without the warnings.
|
|
404
|
+
function credentialOptions(config) {
|
|
405
|
+
const url = URL.canParse(config.url) ? new URL(config.url) : undefined;
|
|
406
|
+
return {
|
|
407
|
+
...(url?.username ? {} : { username: config.username }),
|
|
408
|
+
...(url?.password ? {} : { password: config.password }),
|
|
409
|
+
};
|
|
410
|
+
}
|
|
328
411
|
export function createStatelessClickHouseClient(config, clickhouseSettings = DEFAULT_CLICKHOUSE_SETTINGS, options = {}) {
|
|
329
412
|
return createClient({
|
|
330
413
|
url: config.url,
|
|
331
|
-
|
|
332
|
-
password: config.password,
|
|
414
|
+
...credentialOptions(config),
|
|
333
415
|
database: config.database,
|
|
334
416
|
application: CHKIT_APPLICATION_ID,
|
|
335
417
|
request_timeout: NO_REQUEST_TIMEOUT,
|
|
@@ -347,8 +429,7 @@ export function createStatelessClickHouseClient(config, clickhouseSettings = DEF
|
|
|
347
429
|
export function createSessionClickHouseClient(config, clickhouseSettings = DEFAULT_CLICKHOUSE_SETTINGS, sessionId = crypto.randomUUID(), options = {}) {
|
|
348
430
|
return createClient({
|
|
349
431
|
url: config.url,
|
|
350
|
-
|
|
351
|
-
password: config.password,
|
|
432
|
+
...credentialOptions(config),
|
|
352
433
|
database: config.database,
|
|
353
434
|
session_id: sessionId,
|
|
354
435
|
application: CHKIT_APPLICATION_ID,
|
|
@@ -364,12 +445,27 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
364
445
|
wait_end_of_query: 0,
|
|
365
446
|
});
|
|
366
447
|
let compressedClient;
|
|
448
|
+
// Reads add the progress settings unless the user cannot change settings,
|
|
449
|
+
// looked up once per executor. A failed lookup is not cached: the database
|
|
450
|
+
// may not exist yet (#370).
|
|
451
|
+
let settingsChangeable;
|
|
452
|
+
function settingsChangeableOnce() {
|
|
453
|
+
settingsChangeable ??= canChangeSettings(client).catch((error) => {
|
|
454
|
+
settingsChangeable = undefined;
|
|
455
|
+
throw error;
|
|
456
|
+
});
|
|
457
|
+
return settingsChangeable;
|
|
458
|
+
}
|
|
459
|
+
async function readSettings(settings) {
|
|
460
|
+
return (await settingsChangeableOnce()) ? { ...PROGRESS_SETTINGS, ...settings } : settings;
|
|
461
|
+
}
|
|
367
462
|
return {
|
|
368
|
-
async command(sql) {
|
|
463
|
+
async command(sql, settings) {
|
|
369
464
|
try {
|
|
370
465
|
const result = await client.command({
|
|
371
466
|
query: sql,
|
|
372
467
|
http_headers: { 'X-DDL': '1' },
|
|
468
|
+
clickhouse_settings: { ...WRITE_SETTINGS, ...settings },
|
|
373
469
|
});
|
|
374
470
|
assertStreamedQuerySucceeded({
|
|
375
471
|
response_headers: result.response_headers,
|
|
@@ -382,8 +478,7 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
382
478
|
if (isUnknownDatabaseError(error)) {
|
|
383
479
|
const fallback = createClient({
|
|
384
480
|
url: config.url,
|
|
385
|
-
|
|
386
|
-
password: config.password,
|
|
481
|
+
...credentialOptions(config),
|
|
387
482
|
application: CHKIT_APPLICATION_ID,
|
|
388
483
|
request_timeout: NO_REQUEST_TIMEOUT,
|
|
389
484
|
clickhouse_settings: { wait_end_of_query: 1, async_insert: 0 },
|
|
@@ -393,6 +488,7 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
393
488
|
const fallbackResult = await fallback.command({
|
|
394
489
|
query: sql,
|
|
395
490
|
http_headers: { 'X-DDL': '1' },
|
|
491
|
+
clickhouse_settings: { ...WRITE_SETTINGS, ...settings },
|
|
396
492
|
});
|
|
397
493
|
assertStreamedQuerySucceeded({
|
|
398
494
|
response_headers: fallbackResult.response_headers,
|
|
@@ -410,11 +506,12 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
410
506
|
},
|
|
411
507
|
async query(sql, settings) {
|
|
412
508
|
try {
|
|
509
|
+
const clickhouseSettings = await readSettings(settings);
|
|
413
510
|
const result = await client.query({
|
|
414
511
|
query: sql,
|
|
415
512
|
format: 'JSONEachRow',
|
|
416
513
|
http_headers: { 'X-DDL': '1' },
|
|
417
|
-
...(
|
|
514
|
+
...(clickhouseSettings ? { clickhouse_settings: clickhouseSettings } : {}),
|
|
418
515
|
});
|
|
419
516
|
// Check headers before decoding the body. With
|
|
420
517
|
// send_progress_in_http_headers=1, ClickHouse can return HTTP 200
|
|
@@ -426,7 +523,10 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
426
523
|
query_id: result.query_id,
|
|
427
524
|
sql,
|
|
428
525
|
});
|
|
429
|
-
|
|
526
|
+
// The client's JSONEachRow decoder drops the final row when the
|
|
527
|
+
// response ends without a newline. Decode every nonempty line,
|
|
528
|
+
// without rounding 64-bit integers and Decimals (#415).
|
|
529
|
+
const rows = parseJsonEachRow(await result.text());
|
|
430
530
|
logProfiling(profiler, sql, result.query_id, parseSummaryFromHeaders(result.response_headers));
|
|
431
531
|
return rows;
|
|
432
532
|
}
|
|
@@ -436,18 +536,19 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
436
536
|
},
|
|
437
537
|
async queryJson(sql, settings) {
|
|
438
538
|
try {
|
|
539
|
+
const clickhouseSettings = await readSettings(settings);
|
|
439
540
|
const result = await client.query({
|
|
440
541
|
query: sql,
|
|
441
542
|
format: 'JSON',
|
|
442
543
|
http_headers: { 'X-DDL': '1' },
|
|
443
|
-
...(
|
|
544
|
+
...(clickhouseSettings ? { clickhouse_settings: clickhouseSettings } : {}),
|
|
444
545
|
});
|
|
445
546
|
assertStreamedQuerySucceeded({
|
|
446
547
|
response_headers: result.response_headers,
|
|
447
548
|
query_id: result.query_id,
|
|
448
549
|
sql,
|
|
449
550
|
});
|
|
450
|
-
const payload = (await result.
|
|
551
|
+
const payload = parseJsonResult(await result.text());
|
|
451
552
|
logProfiling(profiler, sql, result.query_id, parseSummaryFromHeaders(result.response_headers));
|
|
452
553
|
return {
|
|
453
554
|
...payload,
|
|
@@ -471,10 +572,10 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
471
572
|
}
|
|
472
573
|
const result = await insertClient.insert({
|
|
473
574
|
table: params.table,
|
|
474
|
-
values: params.values,
|
|
575
|
+
values: params.stream ? Readable.from(params.values) : params.values,
|
|
475
576
|
format: 'JSONEachRow',
|
|
476
577
|
...(isNonEmpty(params.columns) ? { columns: params.columns } : {}),
|
|
477
|
-
|
|
578
|
+
clickhouse_settings: { ...WRITE_SETTINGS, ...params.settings },
|
|
478
579
|
});
|
|
479
580
|
assertStreamedQuerySucceeded({
|
|
480
581
|
response_headers: result.response_headers,
|
|
@@ -487,10 +588,17 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
487
588
|
wrapConnectionError(error, config.url, config.username);
|
|
488
589
|
}
|
|
489
590
|
},
|
|
490
|
-
async submit(sql, queryId) {
|
|
591
|
+
async submit(sql, queryId, settings) {
|
|
491
592
|
const id = queryId ?? crypto.randomUUID();
|
|
593
|
+
// A query_id in the settings would put a second query_id on the URL, and
|
|
594
|
+
// the server could run the query under an id queryStatus() never sees (#353).
|
|
595
|
+
const { query_id: _ignored, ...clickhouseSettings } = settings ?? {};
|
|
492
596
|
try {
|
|
493
|
-
await fireAndForgetClient.command({
|
|
597
|
+
await fireAndForgetClient.command({
|
|
598
|
+
query: sql,
|
|
599
|
+
query_id: id,
|
|
600
|
+
...(settings ? { clickhouse_settings: clickhouseSettings } : {}),
|
|
601
|
+
});
|
|
494
602
|
}
|
|
495
603
|
catch (error) {
|
|
496
604
|
wrapConnectionError(error, config.url, config.username);
|
|
@@ -506,15 +614,24 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
506
614
|
}
|
|
507
615
|
return `system.${table}`;
|
|
508
616
|
},
|
|
617
|
+
canChangeSettings: settingsChangeableOnce,
|
|
509
618
|
async queryStatus(queryId, options) {
|
|
619
|
+
// Without clickhouse.cluster, a multi-replica ObsessionDB service still
|
|
620
|
+
// runs the query on one replica only (#246).
|
|
621
|
+
const fanout = await resolveReplicaFanout(this, config.cluster);
|
|
622
|
+
const from = (table) => fanout ? allReplicas(fanout, `system.${table}`) : observableSystemTable(this, table);
|
|
623
|
+
const skipUnavailable = options?.everyReplica ? 0 : 1;
|
|
510
624
|
try {
|
|
511
|
-
const processesFrom =
|
|
625
|
+
const processesFrom = from('processes');
|
|
512
626
|
const running = await client.query({
|
|
513
|
-
query: `SELECT read_rows, read_bytes, written_rows, written_bytes, elapsed FROM ${processesFrom} WHERE user = currentUser() AND query_id = {qid:String} SETTINGS skip_unavailable_shards =
|
|
627
|
+
query: `SELECT read_rows, read_bytes, written_rows, written_bytes, elapsed FROM ${processesFrom} WHERE user = currentUser() AND query_id = {qid:String} SETTINGS skip_unavailable_shards = ${skipUnavailable}`,
|
|
514
628
|
query_params: { qid: queryId },
|
|
515
629
|
format: 'JSONEachRow',
|
|
516
630
|
});
|
|
517
|
-
|
|
631
|
+
// Decoded as executor.query() does (#436). A UInt64 count arrives as a
|
|
632
|
+
// number, or as a string of its digits beyond 2^53 or when the
|
|
633
|
+
// profile sets output_format_json_quote_64bit_integers.
|
|
634
|
+
const runningRows = parseJsonEachRow(await running.text());
|
|
518
635
|
const [proc] = runningRows;
|
|
519
636
|
if (proc) {
|
|
520
637
|
return {
|
|
@@ -527,7 +644,7 @@ export function createExecutorWithClient(config, client, options = {}) {
|
|
|
527
644
|
};
|
|
528
645
|
}
|
|
529
646
|
const afterTime = options?.afterTime ?? '1970-01-01T00:00:00Z';
|
|
530
|
-
const queryLogFrom =
|
|
647
|
+
const queryLogFrom = from('query_log');
|
|
531
648
|
const log = await client.query({
|
|
532
649
|
query: `SELECT type, written_rows, written_bytes, query_duration_ms, exception
|
|
533
650
|
FROM ${queryLogFrom}
|
|
@@ -538,11 +655,11 @@ WHERE user = currentUser()
|
|
|
538
655
|
AND query_start_time >= parseDateTimeBestEffort({after:String})
|
|
539
656
|
ORDER BY event_time DESC
|
|
540
657
|
LIMIT 1
|
|
541
|
-
SETTINGS skip_unavailable_shards =
|
|
658
|
+
SETTINGS skip_unavailable_shards = ${skipUnavailable}`,
|
|
542
659
|
query_params: { qid: queryId, after: afterTime },
|
|
543
660
|
format: 'JSONEachRow',
|
|
544
661
|
});
|
|
545
|
-
const logRows = await log.
|
|
662
|
+
const logRows = parseJsonEachRow(await log.text());
|
|
546
663
|
if (logRows.length === 0) {
|
|
547
664
|
return { status: 'unknown' };
|
|
548
665
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAGN,2BAA2B,EAC3B,oBAAoB,EAEpB,UAAU,EAEV,oBAAoB,EACpB,qBAAqB,GACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAA2B,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EACN,+BAA+B,EAC/B,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,iCAAiC,EACjC,4BAA4B,EAC5B,kCAAkC,GAClC,MAAM,0BAA0B,CAAA;AAEjC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAE3D,CAAA;AACD,MAAM,oBAAoB,GAAG,SAAS,GAAG,CAAC,OAAO,EAAE,CAAA;AAmFnD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACpC,QAAuD,EACvD,KAA4B;IAE5B,OAAO,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,EAAE,CAAA;AAChE,CAAC;AA6DD,OAAO,EACN,+BAA+B,EAC/B,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,iCAAiC,EACjC,4BAA4B,EAC5B,kCAAkC,GAClC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EACN,qCAAqC,EACrC,kDAAkD,EAClD,kDAAkD,EAClD,6CAA6C,EAC7C,gDAAgD,EAChD,oCAAoC,EACpC,sCAAsC,EACtC,oCAAoC,GAEpC,MAAM,+BAA+B,CAAA;AAEtC,MAAM,UAAU,yBAAyB,CACxC,MAAc;IAEd,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAA;IACpC,IAAI,MAAM,KAAK,kBAAkB;QAAE,OAAO,mBAAmB,CAAA;IAC7D,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,YAAY,CAAA;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,OAAO,CAAA;AACf,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC3C,GAAoB;IAEpB,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,YAAqD,CAAA;IACzD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAA;IACpC,IAAI,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,GAAG,CAAC,kBAAkB,IAAI,WAAW,EAAE,CAAC;QAC3C,2EAA2E;QAC3E,YAAY,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;IAC7C,CAAC;IACD,iEAAiE;IACjE,IAAI,WAAW,KAAK,WAAW,IAAI,YAAY,KAAK,SAAS,IAAI,2BAA2B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACpH,YAAY,GAAG,SAAS,CAAA;IACzB,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACpD,OAAO;QACN,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI;QACJ,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,WAAW,IAAI,WAAW,KAAK,SAAS;YACpD,CAAC,CAAC,WAA8C;YAChD,CAAC,CAAC,SAAS;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS;QACzC,KAAK,EAAE,UAAU;KACjB,CAAA;AACF,CAAC;AAqBD,SAAS,SAAS,CAAC,IAAwB;IAC1C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IACjC,OAAO,IAAI;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAA;IACpC,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;IAC3F,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAElC,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,QAAQ;YACZ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAC1B,KAAK,cAAc;YAClB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;gBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;gBACtD,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;QAC5B,KAAK,YAAY;YAChB,OAAO;gBACN,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACxB,CAAA;QACF,KAAK,YAAY;YAChB,OAAO;gBACN,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACxB,CAAA;QACF;YACC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;IAC/C,CAAC;AACF,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,GAA2B;IAE3B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvC,OAAO;QACN,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;QACrG,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,GAAG,MAAM;KACT,CAAA;AACF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,MAAwB,EACxB,OAA0B,EAC1B,OAAiC;IAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,CAC1D,CAAA;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAErC,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAA;IAC3D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAA;QAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;YACnB,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoC,CAAA;IAClE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAA;QAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;YACnB,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,SAAS;SACd,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;QACzC,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CACjC,CAAA;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC/C,OAAO;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACb,MAAM,EAAE,+BAA+B,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,MAAM;YAC9E,UAAU,EAAE,mCAAmC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC;YACzG,OAAO,EAAE,gCAAgC,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACjE,SAAS,EAAE,kCAAkC,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACrE,WAAW,EAAE,oCAAoC,CAChD,GAAG,CAAC,kBAAkB,CACtB;YACD,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,4BAA4B,CAAC;YACrD,QAAQ,EAAE,iCAAiC,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACnE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACnD,WAAW,EAAE,oCAAoC,CAChD,GAAG,CAAC,kBAAkB,CACtB;YACD,GAAG,EAAE,4BAA4B,CAAC,GAAG,CAAC,kBAAkB,CAAC;SACzD,CAAA;IACF,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACd,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;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,oBAAoB,GAA2B;IACpD,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,UAAU,EAAE,kBAAkB;IAC9B,YAAY,EAAE,kBAAkB;CAChC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,wBAAwB,GAA4B;IACzD,CAAC,mDAAmD,EAAE,gBAAgB,CAAC;IACvE,CAAC,eAAe,EAAE,oBAAoB,CAAC;IACvC,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAChD,CAAC,aAAa,EAAE,kBAAkB,CAAC;IACnC,CAAC,eAAe,EAAE,kBAAkB,CAAC;CACrC,CAAA;AAED,SAAS,qBAAqB,CAAC,KAAY;IAC1C,MAAM,IAAI,GACT,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAE,KAA+B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3E,IAAI,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACzE,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,wBAAwB,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;IAC9C,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAY;IAChC,MAAM,IAAI,GAAG,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC7D,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IACjD,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,uBAAuB;QAAE,OAAO,IAAI,CAAA;IACjF,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACpC,KAAc,EACd,GAAW,EACX,QAAiB;IAEjB,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/C,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAA;QACnE,OAAO,6BAA6B,GAAG,OAAO,GAAG,gDAAgD,CAAA;IAClG,CAAC;IACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,kBAAkB,GACvB,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;QAC5C,MAAM,IAAI,GACT,kBAAkB,IAAI,QAAQ;YAC7B,CAAC,CAAC,mJAAmJ;YACrJ,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,sCAAsC,GAAG,KAAK,KAAK,IAAI,IAAI,EAAE,CAAA;IACrE,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,GAAW,EAAE,QAAiB;IACjF,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC3D,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IACnD,MAAM,KAAK,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC5C,IAAI,CAAQ;IACZ,YAAY,CAAoB;IAChC,QAAQ,CAAoB;IACrC,YAAY,KAKX;QACA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACpE,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACjF,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG;YAC3B,CAAC,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAClF,CAAC,CAAC,EAAE,CAAA;QACL,KAAK,CACJ,+CAA+C,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,CAC5F,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAI5C;IACA,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAA;IACtC,IAAI,CAAC,OAAO;QAAE,OAAM;IACpB,MAAM,OAAO,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC1D,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;QAAE,OAAM;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAA;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACtD,MAAM,IAAI,2BAA2B,CAAC;QACrC,IAAI;QACJ,YAAY,EAAE,GAAG;QACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,EAAE,KAAK,CAAC,GAAG;KACd,CAAC,CAAA;AACH,CAAC;AAED,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,WAAW,GACX,MAAM,sBAAsB,CAAA;AAE7B,SAAS,uBAAuB,CAC/B,OAAsD;IAYtD,MAAM,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC3C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACrD,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAA;IACjB,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CACpB,MAAoC,EACpC,KAAa,EACb,OAAe,EACf,OAQC;IAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;QACxC,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC;QAC/C,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,IAAI,CAAC,CAAC;QACjD,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,GAAG,SAAS;QACvD,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;QAC7C,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC;KAC/C,CAAC,CAAA;AACH,CAAC;AAED,MAAM,2BAA2B,GAAuB;IACvD,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;IACf,6BAA6B,EAAE,CAAC;CAChC,CAAA;AAED,mFAAmF;AACnF,oFAAoF;AACpF,mFAAmF;AACnF,qFAAqF;AACrF,wFAAwF;AACxF,MAAM,iBAAiB,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAA;AAE3D,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAE5B,MAAM,UAAU,+BAA+B,CAC9C,MAAwB,EACxB,qBAAyC,2BAA2B,EACpE,UAAmC,EAAE;IAErC,OAAO,YAAY,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,oBAAoB;QACjC,eAAe,EAAE,kBAAkB;QACnC,mBAAmB,EAAE,kBAAkB;QACvC,GAAG,EAAE,iBAAiB;QACtB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC5C,MAAwB,EACxB,qBAAyC,2BAA2B,EACpE,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,EAC/B,UAAmC,EAAE;IAErC,OAAO,YAAY,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,oBAAoB;QACjC,eAAe,EAAE,kBAAkB;QACnC,mBAAmB,EAAE,kBAAkB;QACvC,GAAG,EAAE,iBAAiB;QACtB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,MAAwB,EACxB,MAAwB,EACxB,UAA+D,EAAE;IAEjE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAElD,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,MAAM,EAAE;QACnE,iBAAiB,EAAE,CAAC;KACpB,CAAC,CAAA;IACF,IAAI,gBAA8C,CAAA;IAElD,OAAO;QACN,KAAK,CAAC,OAAO,CAAC,GAAW;YACxB,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;oBACnC,KAAK,EAAE,GAAG;oBACV,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;iBAC9B,CAAC,CAAA;gBACF,4BAA4B,CAAC;oBAC5B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG;iBACH,CAAC,CAAA;gBACF,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,QAAQ,GAAG,YAAY,CAAC;wBAC7B,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,WAAW,EAAE,oBAAoB;wBACjC,eAAe,EAAE,kBAAkB;wBACnC,mBAAmB,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;wBAC9D,GAAG,EAAE,iBAAiB;qBACtB,CAAC,CAAA;oBACF,IAAI,CAAC;wBACJ,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;4BAC7C,KAAK,EAAE,GAAG;4BACV,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;yBAC9B,CAAC,CAAA;wBACF,4BAA4B,CAAC;4BAC5B,gBAAgB,EAAE,cAAc,CAAC,gBAAgB;4BACjD,QAAQ,EAAE,cAAc,CAAC,QAAQ;4BACjC,GAAG;yBACH,CAAC,CAAA;oBACH,CAAC;4BAAS,CAAC;wBACV,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;oBACvB,CAAC;oBACD,OAAM;gBACP,CAAC;gBACD,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxD,CAAC;QACF,CAAC;QACD,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,QAA6B;YACxD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;oBACjC,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,aAAa;oBACrB,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;oBAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD,CAAC,CAAA;gBACF,+CAA+C;gBAC/C,kEAAkE;gBAClE,8DAA8D;gBAC9D,0DAA0D;gBAC1D,yBAAyB;gBACzB,4BAA4B,CAAC;oBAC5B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG;iBACH,CAAC,CAAA;gBACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAK,CAAA;gBACnC,YAAY,CACX,QAAQ,EACR,GAAG,EACH,MAAM,CAAC,QAAQ,EACf,uBAAuB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAChD,CAAA;gBACD,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxD,CAAC;QACF,CAAC;QACD,KAAK,CAAC,SAAS,CACd,GAAW,EACX,QAA6B;YAE7B,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;oBACjC,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,MAAM;oBACd,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;oBAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD,CAAC,CAAA;gBACF,4BAA4B,CAAC;oBAC5B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG;iBACH,CAAC,CAAA;gBACF,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAK,CAAiC,CAAA;gBACxE,YAAY,CACX,QAAQ,EACR,GAAG,EACH,MAAM,CAAC,QAAQ,EACf,uBAAuB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAChD,CAAA;gBACD,OAAO;oBACN,GAAG,OAAO;oBACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBACzB,CAAA;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxD,CAAC;QACF,CAAC;QACD,KAAK,CAAC,MAAM,CACX,MAAiC;YAEjC,IAAI,CAAC;gBACJ,IAAI,YAAY,GAAG,MAAM,CAAA;gBACzB,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACvB,gBAAgB;4BACf,OAAO,CAAC,sBAAsB,EAAE,EAAE;gCAClC,+BAA+B,CAC9B,MAAM,EACN,2BAA2B,EAC3B,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAClC,CAAA;oBACH,CAAC;oBACD,YAAY,GAAG,gBAAgB,CAAA;gBAChC,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;oBACxC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,aAAa;oBACrB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpE,CAAC,CAAA;gBACF,4BAA4B,CAAC;oBAC5B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG,EAAE,eAAe,MAAM,CAAC,KAAK,EAAE;iBAClC,CAAC,CAAA;gBACF,YAAY,CACX,QAAQ,EACR,eAAe,MAAM,CAAC,KAAK,EAAE,EAC7B,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,CACd,CAAA;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxD,CAAC;QACF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAgB;YACzC,MAAM,EAAE,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAA;YACzC,IAAI,CAAC;gBACJ,MAAM,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,EAAE,CAAA;QACV,CAAC;QACD,iBAAiB,CAAC,KAA4B;YAC7C,oFAAoF;YACpF,gFAAgF;YAChF,0EAA0E;YAC1E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,uBAAuB,MAAM,CAAC,OAAO,aAAa,KAAK,GAAG,CAAA;YAClE,CAAC;YACD,OAAO,UAAU,KAAK,EAAE,CAAA;QACzB,CAAC;QACD,KAAK,CAAC,WAAW,CAChB,OAAe,EACf,OAAgC;YAEhC,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;gBAC9D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;oBAClC,KAAK,EAAE,2EAA2E,aAAa,8FAA8F;oBAC7L,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;oBAC9B,MAAM,EAAE,aAAa;iBACrB,CAAC,CAAA;gBACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,EAMlC,CAAA;gBACJ,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAA;gBAC1B,IAAI,IAAI,EAAE,CAAC;oBACV,OAAO;wBACN,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;wBAChC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;wBAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;wBACtC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;wBACxC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;qBAClD,CAAA;gBACF,CAAC;gBAED,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,sBAAsB,CAAA;gBAC9D,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;gBAC7D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;oBAC9B,KAAK,EAAE;OACL,YAAY;;;;;;;;qCAQkB;oBAChC,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;oBAChD,MAAM,EAAE,aAAa;iBACrB,CAAC,CAAA;gBACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAM1B,CAAA;gBAEJ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;gBAC7B,CAAC;gBAED,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;gBACrB,IAAI,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;gBAC7B,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAChC,OAAO;wBACN,MAAM,EAAE,UAAU;wBAClB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;wBACrC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;wBACvC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;qBACzC,CAAA;gBACF,CAAC;gBAED,OAAO;oBACN,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;oBACzC,KAAK,EAAE,GAAG,CAAC,SAAS;iBACpB,CAAA;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YACxD,CAAC;QACF,CAAC;QACD,KAAK,CAAC,KAAK;YACV,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjB,MAAM,CAAC,KAAK,EAAE;gBACd,mBAAmB,CAAC,KAAK,EAAE;gBAC3B,gBAAgB,EAAE,KAAK,EAAE;aACzB,CAAC,CAAA;QACH,CAAC;QACD,KAAK,CAAC,iBAAiB;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAC5B;;;;+BAI2B,CAC3B,CAAA;YAED,MAAM,GAAG,GAAsB,EAAE,CAAA;YACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAClD,IAAI,CAAC,IAAI;oBAAE,SAAQ;gBACnB,GAAG,CAAC,IAAI,CAAC;oBACR,IAAI;oBACJ,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;iBACd,CAAC,CAAA;YACH,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,SAAmB;YACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YAErC,MAAM,eAAe,GAAG,SAAS;iBAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;iBAClD,IAAI,CAAC,IAAI,CAAC,CAAA;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC9B;;;qBAGiB,eAAe,GAAG,CACnC,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;qBAEiB,eAAe,GAAG,CACnC,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;qBAEiB,eAAe,GAAG,CACnC,CAAA;YAED,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;KACD,CAAA;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,MAAwB;IAExB,yEAAyE;IACzE,8EAA8E;IAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IACrC,OAAO,wBAAwB,CAC9B,MAAM,EACN,6BAA6B,CAC5B,MAAM,EACN,2BAA2B,EAC3B,SAAS,CACT,EACD;QACC,sBAAsB,EAAE,GAAG,EAAE,CAC5B,6BAA6B,CAC5B,MAAM,EACN,2BAA2B,EAC3B,SAAS,EACT,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAClC;KACF,CACD,CAAA;AACF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAChD,MAAwB;IAExB,OAAO,wBAAwB,CAC9B,MAAM,EACN,+BAA+B,CAAC,MAAM,CAAC,EACvC;QACC,sBAAsB,EAAE,GAAG,EAAE,CAC5B,+BAA+B,CAAC,MAAM,EAAE,2BAA2B,EAAE;YACpE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC9B,CAAC;KACH,CACD,CAAA;AACF,CAAC;AAED,2DAA2D;AAC3D,SAAS,UAAU,CAAI,MAAuB;IAC7C,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ClickHouseExecutor, ClickHouseSettings } from './index.js';
|
|
2
|
+
export interface InsertBarrierOptions {
|
|
3
|
+
/** `clickhouse.cluster`; without it the `default` cluster is probed (ObsessionDB). */
|
|
4
|
+
cluster?: string;
|
|
5
|
+
/** Settings sent with each read of `sql` (`migrate --setting`). */
|
|
6
|
+
settings?: ClickHouseSettings;
|
|
7
|
+
timeoutMs?: number;
|
|
8
|
+
pollIntervalMs?: number;
|
|
9
|
+
log?: (line: string) => void;
|
|
10
|
+
sleep?: (ms: number) => Promise<void>;
|
|
11
|
+
now?: () => number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Runs `sql` (a SELECT over `system.processes` that returns a `query_id`
|
|
15
|
+
* column) on every replica once, then again until none of the query ids it
|
|
16
|
+
* returned the first time is still listed.
|
|
17
|
+
*
|
|
18
|
+
* An INSERT builds its pipeline, including the materialized views it feeds,
|
|
19
|
+
* when it starts. After a mirror view is created, the INSERTs that were
|
|
20
|
+
* already running do not write to it. Every one of them is listed in
|
|
21
|
+
* `system.processes` until it ends, so once the ids listed after the view
|
|
22
|
+
* existed on every replica are gone, every INSERT without the mirror has
|
|
23
|
+
* committed. No clock is involved: the first read only has to happen after
|
|
24
|
+
* the view exists, which is why a resumed run can simply read again.
|
|
25
|
+
*
|
|
26
|
+
* On a target with several replicas `system.processes` is read through
|
|
27
|
+
* `clusterAllReplicas`, because an INSERT runs on the replica that received it.
|
|
28
|
+
*/
|
|
29
|
+
export declare function waitForInsertBarrier(executor: ClickHouseExecutor, sql: string, options?: InsertBarrierOptions): Promise<{
|
|
30
|
+
waitedFor: number;
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=insert-barrier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert-barrier.d.ts","sourceRoot":"","sources":["../src/insert-barrier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAOxE,MAAM,WAAW,oBAAoB;IACnC,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAmChC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { setTimeout as defaultSleep } from 'node:timers/promises';
|
|
2
|
+
import { allReplicas, resolveReplicaFanout } from './replicas.js';
|
|
3
|
+
const DEFAULT_TIMEOUT_MS = 10 * 60_000;
|
|
4
|
+
const DEFAULT_POLL_INTERVAL_MS = 1_000;
|
|
5
|
+
const PROGRESS_EVERY_MS = 30_000;
|
|
6
|
+
/**
|
|
7
|
+
* Runs `sql` (a SELECT over `system.processes` that returns a `query_id`
|
|
8
|
+
* column) on every replica once, then again until none of the query ids it
|
|
9
|
+
* returned the first time is still listed.
|
|
10
|
+
*
|
|
11
|
+
* An INSERT builds its pipeline, including the materialized views it feeds,
|
|
12
|
+
* when it starts. After a mirror view is created, the INSERTs that were
|
|
13
|
+
* already running do not write to it. Every one of them is listed in
|
|
14
|
+
* `system.processes` until it ends, so once the ids listed after the view
|
|
15
|
+
* existed on every replica are gone, every INSERT without the mirror has
|
|
16
|
+
* committed. No clock is involved: the first read only has to happen after
|
|
17
|
+
* the view exists, which is why a resumed run can simply read again.
|
|
18
|
+
*
|
|
19
|
+
* On a target with several replicas `system.processes` is read through
|
|
20
|
+
* `clusterAllReplicas`, because an INSERT runs on the replica that received it.
|
|
21
|
+
*/
|
|
22
|
+
export async function waitForInsertBarrier(executor, sql, options = {}) {
|
|
23
|
+
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
24
|
+
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
25
|
+
const sleep = options.sleep ?? defaultSleep;
|
|
26
|
+
const now = options.now ?? Date.now;
|
|
27
|
+
const log = options.log ?? (() => { });
|
|
28
|
+
const fanout = await resolveReplicaFanout(executor, options.cluster);
|
|
29
|
+
const query = fanout ? sql.replace(/\bsystem\.processes\b/, allReplicas(fanout, 'system.processes')) : sql;
|
|
30
|
+
const read = async () => new Set((await executor.query(stripTrailingSemicolon(query), options.settings)).map((row) => row.query_id));
|
|
31
|
+
const initial = await read();
|
|
32
|
+
if (initial.size === 0)
|
|
33
|
+
return { waitedFor: 0 };
|
|
34
|
+
log(` waiting for ${initial.size} running INSERT ${initial.size === 1 ? 'query' : 'queries'} to finish`);
|
|
35
|
+
const started = now();
|
|
36
|
+
let lastProgress = started;
|
|
37
|
+
for (;;) {
|
|
38
|
+
await sleep(pollIntervalMs);
|
|
39
|
+
const current = await read();
|
|
40
|
+
const remaining = [...initial].filter((id) => current.has(id));
|
|
41
|
+
if (remaining.length === 0)
|
|
42
|
+
return { waitedFor: initial.size };
|
|
43
|
+
const elapsed = now() - started;
|
|
44
|
+
if (elapsed >= timeoutMs) {
|
|
45
|
+
throw new Error(`${remaining.length} INSERT ${remaining.length === 1 ? 'query' : 'queries'} that started before this step ${remaining.length === 1 ? 'is' : 'are'} still running after ${Math.round(elapsed / 1000)}s (query_id ${remaining.slice(0, 10).join(', ')}${remaining.length > 10 ? ', …' : ''}). ` +
|
|
46
|
+
'Their rows may not be mirrored or snapshotted yet. Let them finish, then run chkit migrate --apply again: this step reads the running INSERTs anew. A killed INSERT may have committed part of its rows, so inserting them again would reuse keys.');
|
|
47
|
+
}
|
|
48
|
+
if (now() - lastProgress >= PROGRESS_EVERY_MS) {
|
|
49
|
+
lastProgress = now();
|
|
50
|
+
log(` still waiting for ${remaining.length} INSERT ${remaining.length === 1 ? 'query' : 'queries'} (elapsed ${Math.round(elapsed / 1000)}s)`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function stripTrailingSemicolon(sql) {
|
|
55
|
+
return sql.replace(/;\s*$/, '');
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=insert-barrier.js.map
|