@chkit/clickhouse 0.1.2-beta.7 → 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.
Files changed (45) hide show
  1. package/dist/alter-column-statement.d.ts +32 -0
  2. package/dist/alter-column-statement.d.ts.map +1 -0
  3. package/dist/alter-column-statement.js +137 -0
  4. package/dist/alter-column-statement.js.map +1 -0
  5. package/dist/async-insert-guard.d.ts +31 -0
  6. package/dist/async-insert-guard.d.ts.map +1 -0
  7. package/dist/async-insert-guard.js +55 -0
  8. package/dist/async-insert-guard.js.map +1 -0
  9. package/dist/canonicalize.d.ts +21 -0
  10. package/dist/canonicalize.d.ts.map +1 -0
  11. package/dist/canonicalize.js +70 -0
  12. package/dist/canonicalize.js.map +1 -0
  13. package/dist/create-table-parser.d.ts +3 -0
  14. package/dist/create-table-parser.d.ts.map +1 -1
  15. package/dist/create-table-parser.js +54 -43
  16. package/dist/create-table-parser.js.map +1 -1
  17. package/dist/ddl-propagation.d.ts +62 -6
  18. package/dist/ddl-propagation.d.ts.map +1 -1
  19. package/dist/ddl-propagation.js +459 -49
  20. package/dist/ddl-propagation.js.map +1 -1
  21. package/dist/e2e-testkit.d.ts +26 -4
  22. package/dist/e2e-testkit.d.ts.map +1 -1
  23. package/dist/e2e-testkit.js +56 -14
  24. package/dist/e2e-testkit.js.map +1 -1
  25. package/dist/exact-json.d.ts +27 -0
  26. package/dist/exact-json.d.ts.map +1 -0
  27. package/dist/exact-json.js +128 -0
  28. package/dist/exact-json.js.map +1 -0
  29. package/dist/index.d.ts +52 -9
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +220 -64
  32. package/dist/index.js.map +1 -1
  33. package/dist/insert-barrier.d.ts +32 -0
  34. package/dist/insert-barrier.d.ts.map +1 -0
  35. package/dist/insert-barrier.js +57 -0
  36. package/dist/insert-barrier.js.map +1 -0
  37. package/dist/replicas.d.ts +21 -0
  38. package/dist/replicas.d.ts.map +1 -0
  39. package/dist/replicas.js +39 -0
  40. package/dist/replicas.js.map +1 -0
  41. package/dist/view-details.d.ts +30 -0
  42. package/dist/view-details.d.ts.map +1 -0
  43. package/dist/view-details.js +73 -0
  44. package/dist/view-details.js.map +1 -0
  45. package/package.json +5 -2
package/dist/index.js CHANGED
@@ -1,11 +1,23 @@
1
1
  import { createRequire } from 'node:module';
2
- import { normalizeSQLFragment, parseCodec, } from '@chkit/core';
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 { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
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
- export { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
11
+ /**
12
+ * Resolve the system table expression used for async query observation.
13
+ * Prefers `executor.systemTableSource` when present; otherwise local `system.<table>`.
14
+ */
15
+ export function observableSystemTable(executor, table) {
16
+ return executor.systemTableSource?.(table) ?? `system.${table}`;
17
+ }
18
+ export { parseConstraintsFromCreateTableQuery, parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
19
+ export { canonicalizeSqlFragments } from './canonicalize.js';
20
+ export { listViewDetails, parseMaterializedViewTarget } from './view-details.js';
9
21
  export { parseCommentFromCreateDictionaryQuery, parseDictionaryAttributesFromCreateDictionaryQuery, parseDictionaryPrimaryKeyFromCreateDictionaryQuery, parseDictionaryRangeFromCreateDictionaryQuery, parseDictionarySettingsFromCreateDictionaryQuery, parseLayoutFromCreateDictionaryQuery, parseLifetimeFromCreateDictionaryQuery, parseSourceFromCreateDictionaryQuery, } from './create-dictionary-parser.js';
10
22
  export function inferSchemaKindFromEngine(engine) {
11
23
  if (engine === 'View')
@@ -23,8 +35,17 @@ export function normalizeColumnFromSystemRow(row) {
23
35
  const type = nullableMatch?.[1] ? nullableMatch[1] : row.type;
24
36
  const nullable = Boolean(nullableMatch?.[1]);
25
37
  let defaultValue;
26
- if (row.default_expression && row.default_kind === 'DEFAULT') {
27
- defaultValue = normalizeSQLFragment(row.default_expression);
38
+ const defaultKind = row.default_kind;
39
+ if (defaultKind && !['DEFAULT', 'MATERIALIZED', 'ALIAS', 'EPHEMERAL'].includes(defaultKind)) {
40
+ throw new Error(`Unsupported column default kind: ${defaultKind}`);
41
+ }
42
+ if (row.default_expression && defaultKind) {
43
+ // Preserve whitespace inside SQL string literals when pulling expressions.
44
+ defaultValue = row.default_expression.trim();
45
+ }
46
+ // A bare EPHEMERAL column reads back as its synthesized default.
47
+ if (defaultKind === 'EPHEMERAL' && defaultValue !== undefined && isSyntheticEphemeralDefault(String(defaultValue))) {
48
+ defaultValue = undefined;
28
49
  }
29
50
  const codecSteps = parseCodec(row.compression_codec);
30
51
  return {
@@ -32,54 +53,79 @@ export function normalizeColumnFromSystemRow(row) {
32
53
  type,
33
54
  nullable: nullable || undefined,
34
55
  default: defaultValue,
56
+ defaultKind: defaultKind && defaultKind !== 'DEFAULT'
57
+ ? defaultKind
58
+ : undefined,
35
59
  comment: row.comment?.trim() || undefined,
36
60
  codec: codecSteps,
37
61
  };
38
62
  }
39
- function splitArgs(args) {
40
- if (args === undefined)
41
- return [];
42
- return args
43
- .split(',')
44
- .map((part) => Number(part.trim()))
45
- .filter((value) => !Number.isNaN(value));
46
- }
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
+ */
47
70
  function parseIndexType(value) {
48
- const match = value.match(/^(\w+)\((.+)\)$/);
49
- const baseName = match?.[1] ?? value;
50
- const args = splitArgs(match?.[2]);
71
+ const match = value.match(/^(\w+)\((.*)\)$/s);
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;
51
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
+ }
52
89
  case 'minmax':
53
- return { type: 'minmax' };
90
+ return args === undefined ? { type: 'minmax' } : raw;
91
+ case 'set':
92
+ return numeric(1) ? { type: 'set', maxRows: numbers[0] ?? 0 } : raw;
54
93
  case 'bloom_filter':
55
- return args[0] !== undefined
56
- ? { type: 'bloom_filter', falsePositiveRate: args[0] }
57
- : { type: 'bloom_filter' };
94
+ if (args === undefined)
95
+ return { type: 'bloom_filter' };
96
+ return numeric(1) ? { type: 'bloom_filter', falsePositiveRate: numbers[0] } : raw;
58
97
  case 'tokenbf_v1':
59
- return {
60
- type: 'tokenbf_v1',
61
- sizeBytes: args[0] ?? 0,
62
- hashFunctions: args[1] ?? 0,
63
- randomSeed: args[2] ?? 0,
64
- };
98
+ return numeric(3)
99
+ ? { type: 'tokenbf_v1', sizeBytes: numbers[0] ?? 0, hashFunctions: numbers[1] ?? 0, randomSeed: numbers[2] ?? 0 }
100
+ : raw;
65
101
  case 'ngrambf_v1':
66
- return {
67
- type: 'ngrambf_v1',
68
- ngramSize: args[0] ?? 0,
69
- sizeBytes: args[1] ?? 0,
70
- hashFunctions: args[2] ?? 0,
71
- randomSeed: args[3] ?? 0,
72
- };
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;
73
111
  default:
74
- return { type: 'set', maxRows: args[0] ?? 0 };
112
+ return raw;
75
113
  }
76
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
+ }
77
122
  export function normalizeIndexFromSystemRow(row) {
78
123
  const parsed = parseIndexType(row.type);
79
124
  return {
80
125
  name: row.name,
81
- expression: normalizeSQLFragment(row.expr),
82
- granularity: row.granularity,
126
+ expression: parsed.type === 'text' ? normalizeTextIndexSQL(row.expr) : normalizeSQLFragment(row.expr),
127
+ // UInt64 arrives as a JSON string when the server quotes 64-bit integers.
128
+ granularity: Number(row.granularity),
83
129
  ...parsed,
84
130
  };
85
131
  }
@@ -113,8 +159,8 @@ export function buildIntrospectedTables(tables, columns, indexes) {
113
159
  return {
114
160
  database: row.database,
115
161
  name: row.name,
116
- engine: parseEngineFromCreateTableQuery(row.create_table_query),
117
- primaryKey: parsePrimaryKeyFromCreateTableQuery(row.create_table_query),
162
+ engine: parseEngineFromCreateTableQuery(row.create_table_query) ?? row.engine,
163
+ primaryKey: parsePrimaryKeyFromCreateTableQuery(row.create_table_query) ?? (row.primary_key || undefined),
118
164
  orderBy: parseOrderByFromCreateTableQuery(row.create_table_query),
119
165
  uniqueKey: parseUniqueKeyFromCreateTableQuery(row.create_table_query),
120
166
  partitionBy: parsePartitionByFromCreateTableQuery(row.create_table_query),
@@ -122,6 +168,7 @@ export function buildIntrospectedTables(tables, columns, indexes) {
122
168
  settings: parseSettingsFromCreateTableQuery(row.create_table_query),
123
169
  indexes: indexRows.map(normalizeIndexFromSystemRow),
124
170
  projections: parseProjectionsFromCreateTableQuery(row.create_table_query),
171
+ constraints: parseConstraintsFromCreateTableQuery(row.create_table_query),
125
172
  ttl: parseTTLFromCreateTableQuery(row.create_table_query),
126
173
  };
127
174
  })
@@ -186,9 +233,12 @@ function isAuthError(error) {
186
233
  export function formatConnectionError(error, url, username) {
187
234
  if (!(error instanceof Error))
188
235
  return undefined;
236
+ const shownUrl = urlWithoutCredentials(url);
189
237
  if (isAuthError(error)) {
190
- const who = username ? `user "${username}"` : 'the configured user';
191
- return `Authentication failed for ${who} at ${url}. Check CLICKHOUSE_USER / CLICKHOUSE_PASSWORD.`;
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.`;
192
242
  }
193
243
  const label = networkLabelFromError(error);
194
244
  if (label) {
@@ -197,10 +247,27 @@ export function formatConnectionError(error, url, username) {
197
247
  const hint = isLocalhostDefault && envUnset
198
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.'
199
249
  : '';
200
- return `Could not connect to ClickHouse at ${url} (${label})${hint}`;
250
+ return `Could not connect to ClickHouse at ${shownUrl} (${label})${hint}`;
201
251
  }
202
252
  return undefined;
203
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
+ }
204
271
  export function wrapConnectionError(error, url, username) {
205
272
  const message = formatConnectionError(error, url, username);
206
273
  if (message !== undefined)
@@ -261,7 +328,10 @@ export function assertStreamedQuerySucceeded(input) {
261
328
  sql: input.sql,
262
329
  });
263
330
  }
264
- 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';
265
335
  function parseSummaryFromHeaders(headers) {
266
336
  const raw = headers['x-clickhouse-summary'];
267
337
  if (!raw || typeof raw !== 'string')
@@ -286,11 +356,36 @@ function logProfiling(logger, query, queryId, summary) {
286
356
  resultBytes: Number(summary?.result_bytes ?? 0),
287
357
  });
288
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).
289
362
  const DEFAULT_CLICKHOUSE_SETTINGS = {
290
363
  wait_end_of_query: 1,
291
- async_insert: 0,
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 = {
292
370
  send_progress_in_http_headers: 1,
371
+ http_headers_progress_interval_ms: '30000',
293
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
+ }
294
389
  // chkit emits its own clean, one-line connection errors (see wrapConnectionError).
295
390
  // The built-in @clickhouse/client DefaultLogger defaults to WARN since v1.18, which
296
391
  // logs the full raw server remediation blurb to stderr on any connection ERROR and
@@ -303,11 +398,20 @@ const SILENT_CLIENT_LOG = { level: ClickHouseLogLevel.OFF };
303
398
  // completes, so any finite timeout eventually trips. 0 disables the idle
304
399
  // timeout entirely — TCP keepalive still detects dead connections.
305
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
+ }
306
411
  export function createStatelessClickHouseClient(config, clickhouseSettings = DEFAULT_CLICKHOUSE_SETTINGS, options = {}) {
307
412
  return createClient({
308
413
  url: config.url,
309
- username: config.username,
310
- password: config.password,
414
+ ...credentialOptions(config),
311
415
  database: config.database,
312
416
  application: CHKIT_APPLICATION_ID,
313
417
  request_timeout: NO_REQUEST_TIMEOUT,
@@ -325,8 +429,7 @@ export function createStatelessClickHouseClient(config, clickhouseSettings = DEF
325
429
  export function createSessionClickHouseClient(config, clickhouseSettings = DEFAULT_CLICKHOUSE_SETTINGS, sessionId = crypto.randomUUID(), options = {}) {
326
430
  return createClient({
327
431
  url: config.url,
328
- username: config.username,
329
- password: config.password,
432
+ ...credentialOptions(config),
330
433
  database: config.database,
331
434
  session_id: sessionId,
332
435
  application: CHKIT_APPLICATION_ID,
@@ -342,12 +445,27 @@ export function createExecutorWithClient(config, client, options = {}) {
342
445
  wait_end_of_query: 0,
343
446
  });
344
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
+ }
345
462
  return {
346
- async command(sql) {
463
+ async command(sql, settings) {
347
464
  try {
348
465
  const result = await client.command({
349
466
  query: sql,
350
467
  http_headers: { 'X-DDL': '1' },
468
+ clickhouse_settings: { ...WRITE_SETTINGS, ...settings },
351
469
  });
352
470
  assertStreamedQuerySucceeded({
353
471
  response_headers: result.response_headers,
@@ -360,8 +478,7 @@ export function createExecutorWithClient(config, client, options = {}) {
360
478
  if (isUnknownDatabaseError(error)) {
361
479
  const fallback = createClient({
362
480
  url: config.url,
363
- username: config.username,
364
- password: config.password,
481
+ ...credentialOptions(config),
365
482
  application: CHKIT_APPLICATION_ID,
366
483
  request_timeout: NO_REQUEST_TIMEOUT,
367
484
  clickhouse_settings: { wait_end_of_query: 1, async_insert: 0 },
@@ -371,6 +488,7 @@ export function createExecutorWithClient(config, client, options = {}) {
371
488
  const fallbackResult = await fallback.command({
372
489
  query: sql,
373
490
  http_headers: { 'X-DDL': '1' },
491
+ clickhouse_settings: { ...WRITE_SETTINGS, ...settings },
374
492
  });
375
493
  assertStreamedQuerySucceeded({
376
494
  response_headers: fallbackResult.response_headers,
@@ -388,11 +506,12 @@ export function createExecutorWithClient(config, client, options = {}) {
388
506
  },
389
507
  async query(sql, settings) {
390
508
  try {
509
+ const clickhouseSettings = await readSettings(settings);
391
510
  const result = await client.query({
392
511
  query: sql,
393
512
  format: 'JSONEachRow',
394
513
  http_headers: { 'X-DDL': '1' },
395
- ...(settings ? { clickhouse_settings: settings } : {}),
514
+ ...(clickhouseSettings ? { clickhouse_settings: clickhouseSettings } : {}),
396
515
  });
397
516
  // Check headers before decoding the body. With
398
517
  // send_progress_in_http_headers=1, ClickHouse can return HTTP 200
@@ -404,7 +523,10 @@ export function createExecutorWithClient(config, client, options = {}) {
404
523
  query_id: result.query_id,
405
524
  sql,
406
525
  });
407
- const rows = await result.json();
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());
408
530
  logProfiling(profiler, sql, result.query_id, parseSummaryFromHeaders(result.response_headers));
409
531
  return rows;
410
532
  }
@@ -414,18 +536,19 @@ export function createExecutorWithClient(config, client, options = {}) {
414
536
  },
415
537
  async queryJson(sql, settings) {
416
538
  try {
539
+ const clickhouseSettings = await readSettings(settings);
417
540
  const result = await client.query({
418
541
  query: sql,
419
542
  format: 'JSON',
420
543
  http_headers: { 'X-DDL': '1' },
421
- ...(settings ? { clickhouse_settings: settings } : {}),
544
+ ...(clickhouseSettings ? { clickhouse_settings: clickhouseSettings } : {}),
422
545
  });
423
546
  assertStreamedQuerySucceeded({
424
547
  response_headers: result.response_headers,
425
548
  query_id: result.query_id,
426
549
  sql,
427
550
  });
428
- const payload = (await result.json());
551
+ const payload = parseJsonResult(await result.text());
429
552
  logProfiling(profiler, sql, result.query_id, parseSummaryFromHeaders(result.response_headers));
430
553
  return {
431
554
  ...payload,
@@ -449,8 +572,10 @@ export function createExecutorWithClient(config, client, options = {}) {
449
572
  }
450
573
  const result = await insertClient.insert({
451
574
  table: params.table,
452
- values: params.values,
575
+ values: params.stream ? Readable.from(params.values) : params.values,
453
576
  format: 'JSONEachRow',
577
+ ...(isNonEmpty(params.columns) ? { columns: params.columns } : {}),
578
+ clickhouse_settings: { ...WRITE_SETTINGS, ...params.settings },
454
579
  });
455
580
  assertStreamedQuerySucceeded({
456
581
  response_headers: result.response_headers,
@@ -463,24 +588,50 @@ export function createExecutorWithClient(config, client, options = {}) {
463
588
  wrapConnectionError(error, config.url, config.username);
464
589
  }
465
590
  },
466
- async submit(sql, queryId) {
591
+ async submit(sql, queryId, settings) {
467
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 ?? {};
468
596
  try {
469
- await fireAndForgetClient.command({ query: sql, query_id: id });
597
+ await fireAndForgetClient.command({
598
+ query: sql,
599
+ query_id: id,
600
+ ...(settings ? { clickhouse_settings: clickhouseSettings } : {}),
601
+ });
470
602
  }
471
603
  catch (error) {
472
604
  wrapConnectionError(error, config.url, config.username);
473
605
  }
474
606
  return id;
475
607
  },
608
+ systemTableSource(table) {
609
+ // `config.cluster` is validated at resolveConfig (assertValidClusterName), so it is
610
+ // safe to interpolate into the single-quoted clusterAllReplicas argument — same
611
+ // contract as onClusterClause. Never guess a default name like 'cluster'.
612
+ if (config.cluster) {
613
+ return `clusterAllReplicas('${config.cluster}', system.${table})`;
614
+ }
615
+ return `system.${table}`;
616
+ },
617
+ canChangeSettings: settingsChangeableOnce,
476
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;
477
624
  try {
625
+ const processesFrom = from('processes');
478
626
  const running = await client.query({
479
- query: `SELECT read_rows, read_bytes, written_rows, written_bytes, elapsed FROM clusterAllReplicas('cluster', system.processes) WHERE user = currentUser() AND query_id = {qid:String} SETTINGS skip_unavailable_shards = 1`,
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}`,
480
628
  query_params: { qid: queryId },
481
629
  format: 'JSONEachRow',
482
630
  });
483
- const runningRows = await running.json();
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());
484
635
  const [proc] = runningRows;
485
636
  if (proc) {
486
637
  return {
@@ -493,9 +644,10 @@ export function createExecutorWithClient(config, client, options = {}) {
493
644
  };
494
645
  }
495
646
  const afterTime = options?.afterTime ?? '1970-01-01T00:00:00Z';
647
+ const queryLogFrom = from('query_log');
496
648
  const log = await client.query({
497
649
  query: `SELECT type, written_rows, written_bytes, query_duration_ms, exception
498
- FROM clusterAllReplicas('cluster', system.query_log)
650
+ FROM ${queryLogFrom}
499
651
  WHERE user = currentUser()
500
652
  AND query_id = {qid:String}
501
653
  AND type IN ('QueryFinish', 'ExceptionWhileProcessing')
@@ -503,11 +655,11 @@ WHERE user = currentUser()
503
655
  AND query_start_time >= parseDateTimeBestEffort({after:String})
504
656
  ORDER BY event_time DESC
505
657
  LIMIT 1
506
- SETTINGS skip_unavailable_shards = 1`,
658
+ SETTINGS skip_unavailable_shards = ${skipUnavailable}`,
507
659
  query_params: { qid: queryId, after: afterTime },
508
660
  format: 'JSONEachRow',
509
661
  });
510
- const logRows = await log.json();
662
+ const logRows = parseJsonEachRow(await log.text());
511
663
  if (logRows.length === 0) {
512
664
  return { status: 'unknown' };
513
665
  }
@@ -565,14 +717,14 @@ WHERE is_temporary = 0
565
717
  const quotedDatabases = databases
566
718
  .map((dbName) => `'${dbName.replace(/'/g, "''")}'`)
567
719
  .join(', ');
568
- const tables = await this.query(`SELECT database, name, engine, create_table_query
720
+ const tables = await this.query(`SELECT database, name, engine, create_table_query, primary_key
569
721
  FROM system.tables
570
722
  WHERE is_temporary = 0
571
723
  AND database IN (${quotedDatabases})`);
572
724
  const columns = await this.query(`SELECT database, table, name, type, default_kind, default_expression, comment, position, compression_codec
573
725
  FROM system.columns
574
726
  WHERE database IN (${quotedDatabases})`);
575
- const indexes = await this.query(`SELECT database, table, name, expr, type, granularity
727
+ const indexes = await this.query(`SELECT database, table, name, expr, type_full AS type, granularity
576
728
  FROM system.data_skipping_indices
577
729
  WHERE database IN (${quotedDatabases})`);
578
730
  return buildIntrospectedTables(tables, columns, indexes);
@@ -594,4 +746,8 @@ export function createStatelessClickHouseExecutor(config) {
594
746
  }),
595
747
  });
596
748
  }
749
+ // @clickhouse/client only accepts a non-empty column list.
750
+ function isNonEmpty(values) {
751
+ return values !== undefined && values.length > 0;
752
+ }
597
753
  //# sourceMappingURL=index.js.map
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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"}
@@ -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