@hypequery/clickhouse 2.12.2 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/cli/bin.js +1 -1
  2. package/dist/cli/generate-types.js +1 -1
  3. package/dist/cli/index.d.ts +1 -1
  4. package/dist/core/features/aggregations.d.ts +1 -0
  5. package/dist/core/features/aggregations.d.ts.map +1 -1
  6. package/dist/core/features/aggregations.js +12 -1
  7. package/dist/core/features/executor.d.ts +1 -0
  8. package/dist/core/features/executor.d.ts.map +1 -1
  9. package/dist/core/features/executor.js +13 -0
  10. package/dist/core/features/joins.d.ts +11 -2
  11. package/dist/core/features/joins.d.ts.map +1 -1
  12. package/dist/core/features/joins.js +11 -42
  13. package/dist/core/formatters/sql-formatter.d.ts.map +1 -1
  14. package/dist/core/formatters/sql-formatter.js +7 -4
  15. package/dist/core/query-builder.d.ts +32 -6
  16. package/dist/core/query-builder.d.ts.map +1 -1
  17. package/dist/core/query-builder.js +46 -20
  18. package/dist/core/query-node.d.ts.map +1 -1
  19. package/dist/core/query-node.js +5 -1
  20. package/dist/core/types/builder-state.d.ts +4 -0
  21. package/dist/core/types/builder-state.d.ts.map +1 -1
  22. package/dist/core/utils/join-conditions.d.ts +3 -0
  23. package/dist/core/utils/join-conditions.d.ts.map +1 -0
  24. package/dist/core/utils/join-conditions.js +31 -0
  25. package/dist/core/utils/join-keys.d.ts +11 -0
  26. package/dist/core/utils/join-keys.d.ts.map +1 -0
  27. package/dist/core/utils/join-keys.js +37 -0
  28. package/dist/core/utils/query-config-compat.d.ts +2 -1
  29. package/dist/core/utils/query-config-compat.d.ts.map +1 -1
  30. package/dist/core/utils/query-config-compat.js +1 -0
  31. package/dist/datasets.d.ts.map +1 -1
  32. package/dist/datasets.js +3 -0
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/types/base.d.ts +6 -0
  36. package/dist/types/base.d.ts.map +1 -1
  37. package/package.json +10 -10
package/dist/cli/bin.js CHANGED
@@ -7,7 +7,7 @@ import dotenv from 'dotenv';
7
7
  import fs from 'fs/promises';
8
8
 
9
9
  // Load environment variables from the current directory
10
- dotenv.config();
10
+ dotenv.config({ quiet: true });
11
11
 
12
12
  // ANSI color codes for prettier output
13
13
  const colors = {
@@ -7,7 +7,7 @@ import { clickhouseToTsType } from './type-parsing.js';
7
7
  export { clickhouseToTsType } from './type-parsing.js';
8
8
 
9
9
  // Load environment variables from the current directory
10
- dotenv.config();
10
+ dotenv.config({ quiet: true });
11
11
 
12
12
  /**
13
13
  * @typedef {Object} ColumnInfo
@@ -5,4 +5,4 @@ export {
5
5
  generateTypes,
6
6
  type GenerateTypesOptions,
7
7
  type TypeGenerationClickHouseClient,
8
- } from './generate-types';
8
+ } from './generate-types.js';
@@ -30,5 +30,6 @@ export declare class AggregationFeature<Schema extends SchemaDefinition<Schema>,
30
30
  stddev(column: string, alias: string): SelectQueryNode<State["output"], Schema>;
31
31
  variance(column: string, alias: string): SelectQueryNode<State["output"], Schema>;
32
32
  approxCountDistinct(column: string, alias: string): SelectQueryNode<State["output"], Schema>;
33
+ mergeState(stateFunction: string, column: string, alias: string): SelectQueryNode<State["output"], Schema>;
33
34
  }
34
35
  //# sourceMappingURL=aggregations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregations.d.ts","sourceRoot":"","sources":["../../../src/core/features/aggregations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,sBAAsB,CAAC;AAE3E,qBAAa,kBAAkB,CAC7B,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAMlG,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAsC;IACpF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAC4B;gBAE9D,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAExD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,iBAAiB;IAQzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAInC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAI3C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIvD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIvD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOrD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIpC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAItC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAGlD"}
1
+ {"version":3,"file":"aggregations.d.ts","sourceRoot":"","sources":["../../../src/core/features/aggregations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,sBAAsB,CAAC;AAE3E,qBAAa,kBAAkB,CAC7B,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAMlG,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAsC;IACpF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CACsD;gBAExF,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAExD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,iBAAiB;IAQzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAInC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAI3C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIvD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIvD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOrD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIpC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAItC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIjD,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAIhE"}
@@ -1,7 +1,7 @@
1
1
  export class AggregationFeature {
2
2
  builder;
3
3
  static TRAILING_ALIAS_PATTERN = /\s+AS\s+[A-Za-z_][A-Za-z0-9_]*$/i;
4
- static LEADING_AGGREGATE_CALL_PATTERN = /^(COUNT|SUM|AVG|MIN|MAX|argMax|argMin|quantile|stddevSamp|varSamp|uniq)\s*\(/i;
4
+ static LEADING_AGGREGATE_CALL_PATTERN = /^(COUNT|SUM|AVG|MIN|MAX|argMax|argMin|quantile|stddevSamp|varSamp|uniq|[A-Za-z][A-Za-z0-9]*Merge)\s*\(/i;
5
5
  constructor(builder) {
6
6
  this.builder = builder;
7
7
  }
@@ -101,4 +101,15 @@ export class AggregationFeature {
101
101
  approxCountDistinct(column, alias) {
102
102
  return this.appendAggregateSelection(`uniq(${column}) AS ${alias}`);
103
103
  }
104
+ mergeState(stateFunction, column, alias) {
105
+ assertStateFunctionName(stateFunction);
106
+ return this.appendAggregateSelection(`${stateFunction}Merge(${column}) AS ${alias}`);
107
+ }
108
+ }
109
+ const STATE_FUNCTION_NAME = /^[A-Za-z][A-Za-z0-9]*$/;
110
+ /** The name is spliced into SQL as `<name>Merge`, so it must be a bare function name. */
111
+ function assertStateFunctionName(stateFunction) {
112
+ if (typeof stateFunction !== 'string' || !STATE_FUNCTION_NAME.test(stateFunction) || /(Merge|State|If|OrNull|OrDefault)$/.test(stateFunction)) {
113
+ throw new Error(`Invalid aggregate state function "${String(stateFunction)}": expected a bare function name such as "uniq" or "sum".`);
114
+ }
104
115
  }
@@ -16,6 +16,7 @@ export declare class ExecutorFeature<Schema extends SchemaDefinition<Schema>, St
16
16
  sql: string;
17
17
  parameters: any[];
18
18
  };
19
+ toSQLWithPlaceholders(placeholder: (value: unknown) => string): string;
19
20
  toSQL(): string;
20
21
  execute(options?: ExecutorRunOptions): Promise<State['output'][]>;
21
22
  stream(options?: ExecutorStreamOptions): Promise<ReadableStream<State['output'][]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/core/features/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAU,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG3D,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChC;AAED,UAAU,qBAAqB;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,eAAe,CAC1B,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAElG,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAExD,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,GAAG,EAAE,CAAA;KAAE;IAKrD,KAAK,IAAI,MAAM;IAMT,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAsDjE,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAgDzF,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/core/features/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAU,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI3D,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChC;AAED,UAAU,qBAAqB;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,eAAe,CAC1B,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAElG,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAExD,eAAe,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,GAAG,EAAE,CAAA;KAAE;IAKrD,qBAAqB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAatE,KAAK,IAAI,MAAM;IAMT,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAsDjE,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAgDzF,OAAO,CAAC,YAAY;CAMrB"}
@@ -1,5 +1,6 @@
1
1
  import { logger } from '../utils/logger.js';
2
2
  import { substituteParameters } from '../utils.js';
3
+ import { splitSqlPlaceholders } from '../utils/sql-parens.js';
3
4
  export class ExecutorFeature {
4
5
  builder;
5
6
  constructor(builder) {
@@ -9,6 +10,18 @@ export class ExecutorFeature {
9
10
  const compiled = this.compileQuery();
10
11
  return { sql: compiled.query, parameters: [...compiled.parameters] };
11
12
  }
13
+ toSQLWithPlaceholders(placeholder) {
14
+ const { sql, parameters } = this.toSQLWithParams();
15
+ const parts = splitSqlPlaceholders(sql);
16
+ if (parts.length - 1 !== parameters.length) {
17
+ throw new Error(`Mismatch between placeholders and parameters. Found ${parts.length - 1} placeholders but ${parameters.length} parameters.`);
18
+ }
19
+ let rendered = parts[0];
20
+ for (let i = 0; i < parameters.length; i++) {
21
+ rendered += placeholder(parameters[i]) + parts[i + 1];
22
+ }
23
+ return rendered;
24
+ }
12
25
  toSQL() {
13
26
  const { sql, parameters } = this.toSQLWithParams();
14
27
  const adapter = this.builder.getAdapter();
@@ -1,6 +1,12 @@
1
1
  import type { BuilderState, SchemaDefinition } from '../types/builder-state.js';
2
2
  import { QueryBuilder } from '../query-builder.js';
3
- import { JoinType, type JoinConditionInput, type SelectQueryNode } from '../../types/index.js';
3
+ import type { JoinType, JoinConditionInput, JoinKeyNode, SelectQueryNode } from '../../types/index.js';
4
+ interface JoinOptions {
5
+ alias?: string;
6
+ leftSource?: string;
7
+ on?: JoinConditionInput | JoinConditionInput[];
8
+ additionalKeys?: JoinKeyNode[];
9
+ }
4
10
  export declare class JoinFeature<Schema extends SchemaDefinition<Schema>, State extends BuilderState<Schema, string, any, keyof Schema, Partial<Record<string, keyof Schema>>, any, any>> {
5
11
  private builder;
6
12
  constructor(builder: QueryBuilder<Schema, State>);
@@ -8,6 +14,9 @@ export declare class JoinFeature<Schema extends SchemaDefinition<Schema>, State
8
14
  * Join targets are plain identifiers here: the caller has already checked the
9
15
  * table against the schema, or the CTEs declared on the query.
10
16
  */
11
- addJoin(type: JoinType, table: string, leftColumn: string, rightColumn: string, alias?: string, leftSource?: string, on?: JoinConditionInput | JoinConditionInput[]): SelectQueryNode<State['output'], Schema>;
17
+ addJoin(type: JoinType, table: string, leftColumn: string, rightColumn: string, options?: JoinOptions): SelectQueryNode<State['output'], Schema>;
18
+ /** @deprecated Pass join options as an object. */
19
+ addJoin(type: JoinType, table: string, leftColumn: string, rightColumn: string, alias?: string, leftSource?: string, on?: JoinConditionInput | JoinConditionInput[], additionalKeys?: JoinKeyNode[]): SelectQueryNode<State['output'], Schema>;
12
20
  }
21
+ export {};
13
22
  //# sourceMappingURL=joins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"joins.d.ts","sourceRoot":"","sources":["../../../src/core/features/joins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,QAAQ,EAGR,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAqC9B,qBAAa,WAAW,CACtB,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAElG,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAExD;;;OAGG;IACH,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GAC7C,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAuB5C"}
1
+ {"version":3,"file":"joins.d.ts","sourceRoot":"","sources":["../../../src/core/features/joins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAI9B,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IAC/C,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;CAChC;AAED,qBAAa,WAAW,CACtB,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACvC,KAAK,SAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAElG,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAExD;;;OAGG;IACH,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3C,kDAAkD;IAClD,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,EAC9C,cAAc,CAAC,EAAE,WAAW,EAAE,GAC7B,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAmC5C"}
@@ -1,48 +1,16 @@
1
- function wrapConditionValue(operator, value) {
2
- if (operator === 'inSubquery' || operator === 'globalInSubquery' || operator === 'inTable' || operator === 'globalInTable') {
3
- return String(value);
4
- }
5
- if (operator === 'between') {
6
- const range = value;
7
- return [
8
- { kind: 'value', value: range[0] },
9
- { kind: 'value', value: range[1] },
10
- ];
11
- }
12
- if (operator === 'inTuple' || operator === 'globalInTuple') {
13
- return value.map(tuple => tuple.map(tupleValue => ({ kind: 'value', value: tupleValue })));
14
- }
15
- if (operator === 'in' || operator === 'notIn' || operator === 'globalIn' || operator === 'globalNotIn') {
16
- return value.map(item => ({ kind: 'value', value: item }));
17
- }
18
- return { kind: 'value', value };
19
- }
20
- function buildOnExpression(conditions) {
21
- const conditionList = Array.isArray(conditions) ? conditions : [conditions];
22
- const expressions = conditionList.map(condition => ({
23
- kind: 'condition',
24
- column: condition.column,
25
- operator: condition.operator,
26
- value: wrapConditionValue(condition.operator, condition.value),
27
- }));
28
- return expressions.length === 1
29
- ? expressions[0]
30
- : { kind: 'logical', operator: 'AND', conditions: expressions };
31
- }
1
+ import { buildOnExpression } from '../utils/join-conditions.js';
2
+ import { aliasJoinKey } from '../utils/join-keys.js';
32
3
  export class JoinFeature {
33
4
  builder;
34
5
  constructor(builder) {
35
6
  this.builder = builder;
36
7
  }
37
- /**
38
- * Join targets are plain identifiers here: the caller has already checked the
39
- * table against the schema, or the CTEs declared on the query.
40
- */
41
- addJoin(type, table, leftColumn, rightColumn, alias, leftSource, on) {
8
+ addJoin(type, table, leftColumn, rightColumn, aliasOrOptions, legacyLeftSource, legacyOn, legacyAdditionalKeys) {
9
+ const { alias, leftSource, on, additionalKeys } = typeof aliasOrOptions === 'object'
10
+ ? aliasOrOptions
11
+ : { alias: aliasOrOptions, leftSource: legacyLeftSource, on: legacyOn, additionalKeys: legacyAdditionalKeys };
42
12
  const query = this.builder.getQueryNode();
43
- const renderedRightColumn = alias
44
- ? rightColumn.replace(`${table}.`, `${alias}.`)
45
- : rightColumn;
13
+ const firstKey = aliasJoinKey({ leftColumn, rightColumn }, table, alias);
46
14
  const newConfig = {
47
15
  ...query,
48
16
  joins: [
@@ -50,10 +18,11 @@ export class JoinFeature {
50
18
  {
51
19
  kind: 'join',
52
20
  type,
53
- table: String(table),
54
- leftColumn: String(leftColumn),
21
+ table,
22
+ leftColumn: firstKey.leftColumn,
55
23
  leftSource,
56
- rightColumn: renderedRightColumn,
24
+ rightColumn: firstKey.rightColumn,
25
+ ...(additionalKeys?.length ? { additionalKeys: additionalKeys.map(key => aliasJoinKey(key, table, alias)) } : {}),
57
26
  alias,
58
27
  on: on ? buildOnExpression(on) : undefined,
59
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sql-formatter.d.ts","sourceRoot":"","sources":["../../../src/core/formatters/sql-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAkB,MAAM,sBAAsB,CAAC;AAIhJ,qBAAa,YAAY;IACvB,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAMtD,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAMvD,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAO1D,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIxD,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIrD,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAYvC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,UAAQ,GAAG,aAAa;IA0D3D,OAAO,CAAC,gBAAgB;IA4FxB,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa;IAkB9D,OAAO,CAAC,cAAc;IActB,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa;IAkB7D,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIrD,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa;IAW5D,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIpD,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAOvD,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAKvD,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,4BAA4B;CAMrC"}
1
+ {"version":3,"file":"sql-formatter.d.ts","sourceRoot":"","sources":["../../../src/core/formatters/sql-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAkB,MAAM,sBAAsB,CAAC;AAIhJ,qBAAa,YAAY;IACvB,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAMtD,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAMvD,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAO1D,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIxD,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIrD,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAYvC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,UAAQ,GAAG,aAAa;IA0D3D,OAAO,CAAC,gBAAgB;IA4FxB,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa;IAkB9D,OAAO,CAAC,cAAc;IActB,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa;IAqB7D,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIrD,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa;IAW5D,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAIpD,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAOvD,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;IAKvD,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,4BAA4B;CAMrC"}
@@ -217,12 +217,15 @@ export class SQLFormatter {
217
217
  const tableClause = join.alias
218
218
  ? `${join.table} AS ${join.alias}`
219
219
  : join.table;
220
- const leftColumn = join.leftSource && !join.leftColumn.includes('.')
221
- ? `${join.leftSource}.${join.leftColumn}`
222
- : join.leftColumn;
220
+ const keys = [join, ...(join.additionalKeys ?? [])].map(key => {
221
+ const leftColumn = join.leftSource && !key.leftColumn.includes('.')
222
+ ? `${join.leftSource}.${key.leftColumn}`
223
+ : key.leftColumn;
224
+ return `${leftColumn} = ${key.rightColumn}`;
225
+ }).join(' AND ');
223
226
  const extra = this.compileExpr(join.on);
224
227
  return {
225
- query: `${join.type} JOIN ${tableClause} ON ${leftColumn} = ${join.rightColumn}${extra.query ? ` AND ${extra.query}` : ''}`,
228
+ query: `${join.type} JOIN ${tableClause} ON ${keys}${extra.query ? ` AND ${extra.query}` : ''}`,
226
229
  parameters: extra.parameters,
227
230
  };
228
231
  }), ' ');
@@ -15,7 +15,7 @@ import type { ClickHouseClient as WebClickHouseClient } from '@clickhouse/client
15
15
  import type { CacheOptions, CacheConfig } from './cache/types.js';
16
16
  import type { QueryRuntimeContext } from './cache/runtime-context.js';
17
17
  import { type InsertQB } from './insert-builder.js';
18
- import type { BuilderState, AnyBuilderState, SchemaDefinition, InitialState, UpdateOutput, WidenTables, AppendToOutput, BaseRow, AddAlias, AddScalar, AddCte, FromSubqueryState, JoinableTable, JoinRightColumn, JoinAliasArg, JoinResultState, NonTableSource } from './types/builder-state.js';
18
+ import type { BuilderState, AnyBuilderState, SchemaDefinition, InitialState, UpdateOutput, WidenTables, AppendToOutput, BaseRow, AddAlias, AddScalar, AddCte, FromSubqueryState, JoinableTable, JoinRightColumn, JoinKeyPairs, JoinAliasArg, JoinResultState, NonTableSource } from './types/builder-state.js';
19
19
  import { SelectableItem, CheckedSelections, SelectableColumn, ArraySelectableColumn, SelectionResult, ColumnSelectionValue } from './types/select-types.js';
20
20
  type WhereColumn<State extends AnyBuilderState> = SelectableColumn<State>;
21
21
  type ColumnOperatorValue<Schema extends SchemaDefinition<Schema>, State extends BuilderState<Schema, string, any, keyof Schema, Partial<Record<string, keyof Schema>>, any, any>, Column extends WhereColumn<State>, Op extends keyof OperatorValueMap<any, Schema>> = OperatorValueMap<ColumnSelectionValue<State, Column>, Schema>[Op];
@@ -221,6 +221,13 @@ export declare class QueryBuilder<Schema extends SchemaDefinition<Schema>, State
221
221
  * estimate, not an exact count.
222
222
  */
223
223
  approxCountDistinct<Column extends keyof BaseRow<State>, Alias extends string = `${Column & string}_approxCountDistinct`>(column: Column, alias?: Alias): QueryBuilder<Schema, AppendToOutput<State, Record<Alias, string>>>;
224
+ /**
225
+ * Finalize the aggregate states stored in `column` (an `AggregateFunction`
226
+ * column of an AggregatingMergeTree table) with `stateFunction`'s `-Merge`
227
+ * combinator: `mergeState('uniq', 'users')` selects `uniqMerge(users)`.
228
+ * `stateFunction` must be a bare function name, without combinators.
229
+ */
230
+ mergeState<Column extends keyof BaseRow<State>, Alias extends string = `${Column & string}_merge`>(stateFunction: string, column: Column, alias?: Alias): QueryBuilder<Schema, AppendToOutput<State, Record<Alias, string>>>;
224
231
  /** Sample variance of `column` (ClickHouse `varSamp`). */
225
232
  variance<Column extends SelectableColumn<State>, Alias extends string = `${Column & string}_variance`>(column: Column, alias?: Alias): QueryBuilder<Schema, AppendToOutput<State, Record<Alias, string>>>;
226
233
  private applyAggregation;
@@ -236,6 +243,24 @@ export declare class QueryBuilder<Schema extends SchemaDefinition<Schema>, State
236
243
  sql: string;
237
244
  parameters: any[];
238
245
  };
246
+ /**
247
+ * Compiles the query, writing each bound value through `placeholder`.
248
+ *
249
+ * The callback is called once per value, in the order the values appear in
250
+ * the SQL, and its return value is inserted verbatim as SQL. The caller
251
+ * owns placeholder spelling and numbering, so the statement can be embedded
252
+ * in a larger one without renumbering it. Question marks inside literals,
253
+ * quoted identifiers and comments are left untouched.
254
+ *
255
+ * @example
256
+ * ```ts
257
+ * const values: unknown[] = [];
258
+ * const sql = db.table('events').where('id', 'eq', 7)
259
+ * .toSQLWithPlaceholders(value => `$${values.push(value)}`);
260
+ * // SELECT * FROM events WHERE id = $1, values: [7]
261
+ * ```
262
+ */
263
+ toSQLWithPlaceholders(placeholder: (value: unknown) => string): string;
239
264
  execute(options?: ExecuteOptions): Promise<State['output'][]>;
240
265
  stream(options?: StreamOptions): Promise<ReadableStream<State['output'][]>>;
241
266
  /**
@@ -350,15 +375,16 @@ export declare class QueryBuilder<Schema extends SchemaDefinition<Schema>, State
350
375
  prewhereNull<Column extends WhereColumn<State>>(this: TableSourceMethodThis<State, this>, column: Column): this;
351
376
  prewhereNotNull<Column extends WhereColumn<State>>(this: TableSourceMethodThis<State, this>, column: Column): this;
352
377
  whereBetween<Column extends keyof BaseRow<State>>(column: Column, [min, max]: [BaseRow<State>[Column], BaseRow<State>[Column]]): this;
378
+ innerJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, keys: JoinKeyPairs<State, NoInfer<TableName>>, alias?: JoinAliasArg<State, TableName, Alias>): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
353
379
  innerJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, leftColumn: keyof BaseRow<State>, rightColumn: JoinRightColumn<State, TableName>, alias?: JoinAliasArg<State, TableName, Alias>): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
380
+ leftJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, keys: JoinKeyPairs<State, NoInfer<TableName>>, alias?: JoinAliasArg<State, TableName, Alias>, on?: JoinConditionInput | JoinConditionInput[]): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
354
381
  leftJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, leftColumn: keyof BaseRow<State>, rightColumn: JoinRightColumn<State, TableName>, alias?: JoinAliasArg<State, TableName, Alias>, on?: JoinConditionInput | JoinConditionInput[]): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
355
- /**
356
- * ClickHouse `LEFT ANY JOIN`: like `leftJoin`, but takes at most one matching
357
- * right-side row per left row, so duplicate join keys never fan out the
358
- * result. Used by the semantic layer for to-one relationship traversal.
359
- */
382
+ /** ClickHouse LEFT ANY JOIN takes at most one matching right row per left row. */
383
+ leftAnyJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, keys: JoinKeyPairs<State, NoInfer<TableName>>, alias?: JoinAliasArg<State, TableName, Alias>, on?: JoinConditionInput | JoinConditionInput[]): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
360
384
  leftAnyJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, leftColumn: keyof BaseRow<State>, rightColumn: JoinRightColumn<State, TableName>, alias?: JoinAliasArg<State, TableName, Alias>, on?: JoinConditionInput | JoinConditionInput[]): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
385
+ rightJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, keys: JoinKeyPairs<State, NoInfer<TableName>>, alias?: JoinAliasArg<State, TableName, Alias>): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
361
386
  rightJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, leftColumn: keyof BaseRow<State>, rightColumn: JoinRightColumn<State, TableName>, alias?: JoinAliasArg<State, TableName, Alias>): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
387
+ fullJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, keys: JoinKeyPairs<State, NoInfer<TableName>>, alias?: JoinAliasArg<State, TableName, Alias>): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
362
388
  fullJoin<TableName extends JoinableTable<State>, Alias extends string | undefined = undefined>(table: TableName, leftColumn: keyof BaseRow<State>, rightColumn: JoinRightColumn<State, TableName>, alias?: JoinAliasArg<State, TableName, Alias>): QueryBuilder<Schema, JoinResultState<State, TableName, Alias>>;
363
389
  private applyJoin;
364
390
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/core/query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/core/query-builder.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { executeWithCache } from './cache/cache-manager.js';
15
15
  import { mergeCacheOptionsPartial, initializeCacheRuntime } from './cache/utils.js';
16
16
  import { InsertBuilder } from './insert-builder.js';
17
17
  import { SUBQUERY_SOURCE_TABLE } from './types/builder-state.js';
18
+ import { normalizeJoinArguments } from './utils/join-keys.js';
18
19
  import { normalizeFilterApplication } from './utils/filter-application.js';
19
20
  import { assertSafeIdentifier } from './utils/insert-identifiers.js';
20
21
  import { toLegacyQueryConfig } from './utils/query-config-compat.js';
@@ -316,6 +317,15 @@ export class QueryBuilder {
316
317
  approxCountDistinct(column, alias) {
317
318
  return this.applyAggregation(column, alias, 'approxCountDistinct', (col, finalAlias) => this.aggregations.approxCountDistinct(col, finalAlias));
318
319
  }
320
+ /**
321
+ * Finalize the aggregate states stored in `column` (an `AggregateFunction`
322
+ * column of an AggregatingMergeTree table) with `stateFunction`'s `-Merge`
323
+ * combinator: `mergeState('uniq', 'users')` selects `uniqMerge(users)`.
324
+ * `stateFunction` must be a bare function name, without combinators.
325
+ */
326
+ mergeState(stateFunction, column, alias) {
327
+ return this.applyAggregation(column, alias, 'merge', (col, finalAlias) => this.aggregations.mergeState(stateFunction, col, finalAlias));
328
+ }
319
329
  /** Sample variance of `column` (ClickHouse `varSamp`). */
320
330
  variance(column, alias) {
321
331
  return this.applyAggregation(column, alias, 'variance', (col, finalAlias) => this.aggregations.variance(col, finalAlias));
@@ -356,6 +366,26 @@ export class QueryBuilder {
356
366
  toSQLWithParams() {
357
367
  return this.executor.toSQLWithParams();
358
368
  }
369
+ /**
370
+ * Compiles the query, writing each bound value through `placeholder`.
371
+ *
372
+ * The callback is called once per value, in the order the values appear in
373
+ * the SQL, and its return value is inserted verbatim as SQL. The caller
374
+ * owns placeholder spelling and numbering, so the statement can be embedded
375
+ * in a larger one without renumbering it. Question marks inside literals,
376
+ * quoted identifiers and comments are left untouched.
377
+ *
378
+ * @example
379
+ * ```ts
380
+ * const values: unknown[] = [];
381
+ * const sql = db.table('events').where('id', 'eq', 7)
382
+ * .toSQLWithPlaceholders(value => `$${values.push(value)}`);
383
+ * // SELECT * FROM events WHERE id = $1, values: [7]
384
+ * ```
385
+ */
386
+ toSQLWithPlaceholders(placeholder) {
387
+ return this.executor.toSQLWithPlaceholders(placeholder);
388
+ }
359
389
  execute(options) {
360
390
  return executeWithCache(this, options);
361
391
  }
@@ -540,32 +570,28 @@ export class QueryBuilder {
540
570
  }
541
571
  return this.where(column, 'between', [min, max]);
542
572
  }
543
- innerJoin(table, leftColumn, rightColumn, alias) {
544
- return this.applyJoin('INNER', table, leftColumn, rightColumn, alias);
573
+ innerJoin(table, leftColumnOrKeys, rightColumnOrAlias, alias) {
574
+ return this.applyJoin('INNER', table, leftColumnOrKeys, rightColumnOrAlias, alias);
545
575
  }
546
- leftJoin(table, leftColumn, rightColumn, alias, on) {
547
- return this.applyJoin('LEFT', table, leftColumn, rightColumn, alias, on);
576
+ leftJoin(table, leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on) {
577
+ return this.applyJoin('LEFT', table, leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on);
548
578
  }
549
- /**
550
- * ClickHouse `LEFT ANY JOIN`: like `leftJoin`, but takes at most one matching
551
- * right-side row per left row, so duplicate join keys never fan out the
552
- * result. Used by the semantic layer for to-one relationship traversal.
553
- */
554
- leftAnyJoin(table, leftColumn, rightColumn, alias, on) {
555
- return this.applyJoin('LEFT ANY', table, leftColumn, rightColumn, alias, on);
579
+ leftAnyJoin(table, leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on) {
580
+ return this.applyJoin('LEFT ANY', table, leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on);
556
581
  }
557
- rightJoin(table, leftColumn, rightColumn, alias) {
558
- return this.applyJoin('RIGHT', table, leftColumn, rightColumn, alias);
582
+ rightJoin(table, leftColumnOrKeys, rightColumnOrAlias, alias) {
583
+ return this.applyJoin('RIGHT', table, leftColumnOrKeys, rightColumnOrAlias, alias);
559
584
  }
560
- fullJoin(table, leftColumn, rightColumn, alias) {
561
- return this.applyJoin('FULL', table, leftColumn, rightColumn, alias);
585
+ fullJoin(table, leftColumnOrKeys, rightColumnOrAlias, alias) {
586
+ return this.applyJoin('FULL', table, leftColumnOrKeys, rightColumnOrAlias, alias);
562
587
  }
563
- applyJoin(type, table, leftColumn, rightColumn, alias, on) {
564
- const nextAliases = (alias
565
- ? { ...this.state.aliases, [alias]: table }
588
+ applyJoin(type, table, leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on) {
589
+ const args = normalizeJoinArguments(leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on);
590
+ const nextAliases = (args.alias
591
+ ? { ...this.state.aliases, [args.alias]: table }
566
592
  : this.state.aliases);
567
593
  const nextState = this.withAliasesState(nextAliases);
568
- const nextConfig = this.joins.addJoin(type, String(table), String(leftColumn), String(rightColumn), alias, undefined, on);
594
+ const nextConfig = this.joins.addJoin(type, String(table), args.firstKey.leftColumn, args.firstKey.rightColumn, { alias: args.alias, on: args.on, additionalKeys: args.additionalKeys });
569
595
  return this.transition(nextState, nextConfig);
570
596
  }
571
597
  /**
@@ -595,7 +621,7 @@ export class QueryBuilder {
595
621
  const leftSource = String(joinPath.from);
596
622
  const table = String(joinPath.to);
597
623
  const rightColumn = `${table}.${joinPath.rightColumn}`;
598
- return next.joins.addJoin(type, table, leftColumn, rightColumn, alias, leftSource);
624
+ return next.joins.addJoin(type, table, leftColumn, rightColumn, { alias, leftSource });
599
625
  }, label);
600
626
  return next;
601
627
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query-node.d.ts","sourceRoot":"","sources":["../../src/core/query-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AA0B3B,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAgCnE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EACpD,MAAM,GAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAM,GACzC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAuCnC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EACnD,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GACvC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAEnC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAClD,eAAe,CAOjB;AAoBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAE5E;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,IAAI,CACjD,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KACrC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEvC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EACvD,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,EACxC,UAAU,EAAE,aAAa,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAC9D,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAKnC"}
1
+ {"version":3,"file":"query-node.d.ts","sourceRoot":"","sources":["../../src/core/query-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AA0B3B,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAgCnE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EACpD,MAAM,GAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAM,GACzC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CA2CnC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EACnD,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GACvC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAEnC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAClD,eAAe,CAOjB;AAoBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAE5E;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,IAAI,CACjD,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KACrC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEvC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EACvD,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,EACxC,UAAU,EAAE,aAAa,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAC9D,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAKnC"}
@@ -80,7 +80,11 @@ export function createSelectQueryNode(config = {}) {
80
80
  distinct: config.distinct,
81
81
  orderBy: config.orderBy ? config.orderBy.map(item => ({ ...item })) : undefined,
82
82
  joins: config.joins
83
- ? config.joins.map(item => ({ ...item, on: cloneExprNode(item.on) }))
83
+ ? config.joins.map(item => ({
84
+ ...item,
85
+ ...(item.additionalKeys ? { additionalKeys: item.additionalKeys.map(key => ({ ...key })) } : {}),
86
+ on: cloneExprNode(item.on),
87
+ }))
84
88
  : undefined,
85
89
  ctes: config.ctes
86
90
  ? config.ctes.map(item => ({
@@ -57,6 +57,10 @@ export type AddAlias<State extends AnyBuilderState, Alias extends string, Table
57
57
  export type AddScalar<State extends AnyBuilderState, Alias extends string, Value> = BuilderState<State['schema'], State['tables'], State['output'], State['baseTable'], State['aliases'], State['scalars'] & Record<Alias, Value>, State['base'], StateCtes<State>>;
58
58
  /** Columns accepted for a join's right-hand side, qualified by table or CTE. */
59
59
  export type JoinRightColumn<State extends AnyBuilderState, Table extends JoinableTable<State>> = `${Table}.${Extract<keyof ResolveTableSchema<State, Table>, string>}`;
60
+ /** A checked column pair for an explicit equality join. */
61
+ export type JoinKeyPair<State extends AnyBuilderState, Table extends JoinableTable<State>> = readonly [keyof BaseRow<State>, JoinRightColumn<State, Table>];
62
+ /** At least one equality key is required; readonly inputs are supported. */
63
+ export type JoinKeyPairs<State extends AnyBuilderState, Table extends JoinableTable<State>> = readonly [JoinKeyPair<State, Table>, ...JoinKeyPair<State, Table>[]];
60
64
  /**
61
65
  * Joining a CTE cannot take a table alias: aliases resolve through the schema,
62
66
  * and a CTE has no schema entry to resolve to.
@@ -1 +1 @@
1
- {"version":3,"file":"builder-state.d.ts","sourceRoot":"","sources":["../../../src/core/types/builder-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder-state.d.ts","sourceRoot":"","sources":["../../../src/core/types/builder-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ExprNode, JoinConditionInput } from '../../types/index.js';
2
+ export declare function buildOnExpression(conditions: JoinConditionInput | JoinConditionInput[]): ExprNode;
3
+ //# sourceMappingURL=join-conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-conditions.d.ts","sourceRoot":"","sources":["../../../src/core/utils/join-conditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,QAAQ,EAAE,kBAAkB,EAAa,MAAM,sBAAsB,CAAC;AAwBxG,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GAAG,QAAQ,CAWjG"}
@@ -0,0 +1,31 @@
1
+ function wrapConditionValue(operator, value) {
2
+ if (operator === 'inSubquery' || operator === 'globalInSubquery' || operator === 'inTable' || operator === 'globalInTable') {
3
+ return String(value);
4
+ }
5
+ if (operator === 'between') {
6
+ const range = value;
7
+ return [
8
+ { kind: 'value', value: range[0] },
9
+ { kind: 'value', value: range[1] },
10
+ ];
11
+ }
12
+ if (operator === 'inTuple' || operator === 'globalInTuple') {
13
+ return value.map(tuple => tuple.map(tupleValue => ({ kind: 'value', value: tupleValue })));
14
+ }
15
+ if (operator === 'in' || operator === 'notIn' || operator === 'globalIn' || operator === 'globalNotIn') {
16
+ return value.map(item => ({ kind: 'value', value: item }));
17
+ }
18
+ return { kind: 'value', value };
19
+ }
20
+ export function buildOnExpression(conditions) {
21
+ const conditionList = Array.isArray(conditions) ? conditions : [conditions];
22
+ const expressions = conditionList.map(condition => ({
23
+ kind: 'condition',
24
+ column: condition.column,
25
+ operator: condition.operator,
26
+ value: wrapConditionValue(condition.operator, condition.value),
27
+ }));
28
+ return expressions.length === 1
29
+ ? expressions[0]
30
+ : { kind: 'logical', operator: 'AND', conditions: expressions };
31
+ }
@@ -0,0 +1,11 @@
1
+ import type { JoinConditionInput, JoinKeyNode } from '../../types/index.js';
2
+ /** Normalize both public signatures without retaining caller-owned key arrays. */
3
+ export declare function normalizeJoinArguments(leftColumnOrKeys: unknown, rightColumnOrAlias: string | undefined, aliasOrOn: string | JoinConditionInput | JoinConditionInput[] | undefined, on?: JoinConditionInput | JoinConditionInput[]): {
4
+ firstKey: JoinKeyNode;
5
+ additionalKeys?: JoinKeyNode[];
6
+ alias?: string;
7
+ on?: JoinConditionInput | JoinConditionInput[];
8
+ };
9
+ /** Right inputs use table qualifiers even when the joined table has an alias. */
10
+ export declare function aliasJoinKey(key: JoinKeyNode, table: string, alias?: string): JoinKeyNode;
11
+ //# sourceMappingURL=join-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-keys.d.ts","sourceRoot":"","sources":["../../../src/core/utils/join-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5E,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,kBAAkB,EAAE,GAAG,SAAS,EACzE,EAAE,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GAC7C;IACD,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;CAChD,CA2BA;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAQzF"}
@@ -0,0 +1,37 @@
1
+ /** Normalize both public signatures without retaining caller-owned key arrays. */
2
+ export function normalizeJoinArguments(leftColumnOrKeys, rightColumnOrAlias, aliasOrOn, on) {
3
+ if (!Array.isArray(leftColumnOrKeys)) {
4
+ return {
5
+ firstKey: { leftColumn: String(leftColumnOrKeys), rightColumn: String(rightColumnOrAlias) },
6
+ alias: typeof aliasOrOn === 'string' ? aliasOrOn : undefined,
7
+ on,
8
+ };
9
+ }
10
+ if (!leftColumnOrKeys.length) {
11
+ throw new Error('A join requires at least one column pair');
12
+ }
13
+ const keys = Array.from(leftColumnOrKeys, pair => {
14
+ if (!Array.isArray(pair) || pair.length !== 2
15
+ || typeof pair[0] !== 'string' || !pair[0].length
16
+ || typeof pair[1] !== 'string' || !pair[1].length) {
17
+ throw new Error('Each join key must be a pair of non-empty column names');
18
+ }
19
+ return { leftColumn: pair[0], rightColumn: pair[1] };
20
+ });
21
+ return {
22
+ firstKey: keys[0],
23
+ additionalKeys: keys.slice(1),
24
+ alias: rightColumnOrAlias,
25
+ on: typeof aliasOrOn === 'string' ? undefined : aliasOrOn,
26
+ };
27
+ }
28
+ /** Right inputs use table qualifiers even when the joined table has an alias. */
29
+ export function aliasJoinKey(key, table, alias) {
30
+ const prefix = `${table}.`;
31
+ return {
32
+ ...key,
33
+ rightColumn: alias && key.rightColumn.startsWith(prefix)
34
+ ? `${alias}.${key.rightColumn.slice(prefix.length)}`
35
+ : key.rightColumn,
36
+ };
37
+ }
@@ -1,5 +1,5 @@
1
1
  import type { ClickHouseSettings } from '../../types/clickhouse-settings.js';
2
- import type { ExprNode, FilterOperator, JoinType, OrderDirection, SelectQueryNode, SourceNode } from '../../types/index.js';
2
+ import type { ExprNode, FilterOperator, JoinType, JoinKeyNode, OrderDirection, SelectQueryNode, SourceNode } from '../../types/index.js';
3
3
  export type LegacyStandardWhereCondition = {
4
4
  column: string;
5
5
  operator: FilterOperator;
@@ -33,6 +33,7 @@ export type LegacyQueryConfig<T> = {
33
33
  table: string;
34
34
  leftColumn: string;
35
35
  rightColumn: string;
36
+ additionalKeys?: JoinKeyNode[];
36
37
  alias?: string;
37
38
  on?: ExprNode;
38
39
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"query-config-compat.d.ts","sourceRoot":"","sources":["../../../src/core/utils/query-config-compat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAEV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACd,eAAe,EACf,UAAU,EAEX,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,GAAG,8BAA8B,CAAC;AAEjG,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;QACzB,SAAS,EAAE,cAAc,CAAC;KAC3B,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,EAAE,CAAC,EAAE,QAAQ,CAAC;KACf,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AA2IF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAC3C,SAAS,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,GACpC,iBAAiB,CAAC,CAAC,CAAC,CA4BtB"}
1
+ {"version":3,"file":"query-config-compat.d.ts","sourceRoot":"","sources":["../../../src/core/utils/query-config-compat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAEV,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,UAAU,EAEX,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,GAAG,8BAA8B,CAAC;AAEjG,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;QACzB,SAAS,EAAE,cAAc,CAAC;KAC3B,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,EAAE,CAAC,EAAE,QAAQ,CAAC;KACf,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AA2IF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAC3C,SAAS,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,GACpC,iBAAiB,CAAC,CAAC,CAAC,CA6BtB"}
@@ -134,6 +134,7 @@ export function toLegacyQueryConfig(queryNode) {
134
134
  table: join.table,
135
135
  leftColumn: join.leftColumn,
136
136
  rightColumn: join.rightColumn,
137
+ ...(join.additionalKeys ? { additionalKeys: join.additionalKeys.map(key => ({ ...key })) } : {}),
137
138
  alias: join.alias,
138
139
  on: join.on,
139
140
  })),
@@ -1 +1 @@
1
- {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../src/datasets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAGL,KAAK,eAAe,EAGrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,0HAA0H;AAC1H,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AA2d3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACnE,MAAM,EAAE,mBAAmB,GAC1B,eAAe,CA0DjB"}
1
+ {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../src/datasets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAGL,KAAK,eAAe,EAGrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,0HAA0H;AAC1H,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AA8d3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,gBAAgB,CAAC,MAAM,CAAC,EACnE,MAAM,EAAE,mBAAmB,GAC1B,eAAe,CA0DjB"}
package/dist/datasets.js CHANGED
@@ -300,6 +300,9 @@ function applyAggregations(builder, plan, qualify = (field) => field) {
300
300
  case 'approxCountDistinct':
301
301
  qb = qb.approxCountDistinct(field, name);
302
302
  break;
303
+ case 'merge':
304
+ // Semantic plans never carry merge measures; the datasets planner refuses them.
305
+ throw new Error(`Semantic backend plans do not support merge measure "${name}".`);
303
306
  }
304
307
  }
305
308
  return qb;
package/dist/index.d.ts CHANGED
@@ -39,4 +39,5 @@ export type { DimensionOptions, MetricOptions } from './dataset/helpers.js';
39
39
  export type { DimensionType, SimpleDimension, DimensionDefinition, Dimension, DimensionsMap, MetricAggregationType, MetricFormat, MetricDefinition, MetricsMap, DatasetDefinition, DatasetsMap, TenantConfig, DatasetLimits, DateRangeValue, FilterValue, FilterDefinition, Filters, SortDirection, OrderByDimension, OrderByMetric, OrderBy, DatasetQuery, QueryContext, QueryResultMetadata, QueryResult, InferDimensionType, InferMetricType, InferQueryRowType, InferQueryResult, IntrospectedDimension, IntrospectedMetric, IntrospectedDataset, } from './dataset/types.js';
40
40
  export { validateDatasetDefinition, validateDatasets, normalizeDimension, normalizeDimensions, inferDimensionType, getDimensionSQL, getMetricSQL, getDataset, listDatasets, hasDataset, getDimensionNames, getMetricNames, hasDimension, hasMetric, getDimension, getMetric, } from './dataset/definition.js';
41
41
  export { introspectDimension, introspectMetric, getDatasetSchema, getAllDatasetSchemas, summarizeDataset, datasetsToJSON, summarizeAllDatasets, } from './dataset/introspection.js';
42
+ export type { JoinKeyPair, JoinKeyPairs } from './core/types/builder-state.js';
42
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -107,6 +107,10 @@ export interface JoinConditionInput {
107
107
  operator: FilterOperator;
108
108
  value: unknown;
109
109
  }
110
+ export interface JoinKeyNode {
111
+ leftColumn: string;
112
+ rightColumn: string;
113
+ }
110
114
  export interface JoinNode {
111
115
  kind: 'join';
112
116
  type: JoinType;
@@ -114,6 +118,8 @@ export interface JoinNode {
114
118
  leftColumn: string;
115
119
  leftSource?: string;
116
120
  rightColumn: string;
121
+ /** Additional equality keys, combined with the first pair using AND. */
122
+ additionalKeys?: JoinKeyNode[];
117
123
  alias?: string;
118
124
  on?: ExprNode;
119
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hypequery/clickhouse",
3
- "version": "2.12.2",
3
+ "version": "2.14.0",
4
4
  "description": "Type-safe ClickHouse query builder and schema generator for TypeScript analytics",
5
5
  "keywords": [
6
6
  "clickhouse",
@@ -46,9 +46,9 @@
46
46
  "README-CLI.md"
47
47
  ],
48
48
  "dependencies": {
49
- "@clickhouse/client": "^1.23.1",
49
+ "@clickhouse/client": "^1.24.1",
50
50
  "@clickhouse/client-common": "^1.23.0",
51
- "dotenv": "^16.0.0"
51
+ "dotenv": "^18.0.8"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@clickhouse/client-web": "^0.2.0 || ^1.0.0",
@@ -63,17 +63,17 @@
63
63
  }
64
64
  },
65
65
  "devDependencies": {
66
- "@clickhouse/client": "^1.23.1",
67
- "@clickhouse/client-web": "^1.23.1",
66
+ "@clickhouse/client": "^1.24.1",
67
+ "@clickhouse/client-web": "^1.24.0",
68
68
  "@types/node": "^18.19.80",
69
69
  "glob": "^13.0.6",
70
70
  "ts-node": "^10.9.0",
71
71
  "typedoc": "^0.28.20",
72
- "typedoc-plugin-markdown": "^4.13.1",
73
- "typescript": "^5.7.3",
74
- "@vitest/coverage-v8": "^5.0.2",
75
- "vitest": "^5.0.2",
76
- "@hypequery/datasets": "0.21.0"
72
+ "typedoc-plugin-markdown": "^4.14.1",
73
+ "typescript": "^6.0.3",
74
+ "@vitest/coverage-v8": "^5.0.5",
75
+ "vitest": "^5.0.5",
76
+ "@hypequery/datasets": "0.24.0"
77
77
  },
78
78
  "ts-node": {
79
79
  "esm": true,