@hypequery/datasets 0.23.1 → 0.25.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 (255) hide show
  1. package/README.md +14 -0
  2. package/dist/aggregations.d.ts +3 -0
  3. package/dist/aggregations.d.ts.map +1 -1
  4. package/dist/aggregations.js +6 -0
  5. package/dist/cache/definition-identity.d.ts +9 -6
  6. package/dist/cache/definition-identity.d.ts.map +1 -1
  7. package/dist/cache/definition-identity.js +14 -8
  8. package/dist/cache/protocol-cache-keys.d.ts.map +1 -1
  9. package/dist/cache/protocol-cache-keys.js +29 -6
  10. package/dist/cache/query-signature.d.ts.map +1 -1
  11. package/dist/cache/query-signature.js +12 -1
  12. package/dist/catalog.d.ts +7 -0
  13. package/dist/catalog.d.ts.map +1 -1
  14. package/dist/catalog.js +5 -2
  15. package/dist/client-contract/query-schema.d.ts +19 -0
  16. package/dist/client-contract/query-schema.d.ts.map +1 -0
  17. package/dist/client-contract/query-schema.js +85 -0
  18. package/dist/constants.d.ts +5 -4
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +7 -6
  21. package/dist/contract.d.ts +5 -0
  22. package/dist/contract.d.ts.map +1 -1
  23. package/dist/contract.js +6 -3
  24. package/dist/dataset-compilation.d.ts +2 -0
  25. package/dist/dataset-compilation.d.ts.map +1 -1
  26. package/dist/dataset-sql-dialect.d.ts +119 -0
  27. package/dist/dataset-sql-dialect.d.ts.map +1 -1
  28. package/dist/dataset.d.ts +4 -2
  29. package/dist/dataset.d.ts.map +1 -1
  30. package/dist/dataset.js +23 -31
  31. package/dist/in-memory-backend.d.ts.map +1 -1
  32. package/dist/in-memory-backend.js +2 -0
  33. package/dist/index.d.ts +49 -6
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +34 -6
  36. package/dist/internal.d.ts +5 -1
  37. package/dist/internal.d.ts.map +1 -1
  38. package/dist/internal.js +5 -1
  39. package/dist/measure.d.ts +9 -1
  40. package/dist/measure.d.ts.map +1 -1
  41. package/dist/measure.js +9 -1
  42. package/dist/metric-query-engine.d.ts +0 -1
  43. package/dist/metric-query-engine.d.ts.map +1 -1
  44. package/dist/metric-query-engine.js +11 -3
  45. package/dist/protocol-adapter.d.ts.map +1 -1
  46. package/dist/protocol-adapter.js +2 -3
  47. package/dist/protocol-deployment-adapter.d.ts.map +1 -1
  48. package/dist/protocol-deployment-adapter.js +7 -1
  49. package/dist/protocol-rehydrate.d.ts.map +1 -1
  50. package/dist/protocol-rehydrate.js +1 -0
  51. package/dist/protocol-schema-adapter.d.ts +7 -7
  52. package/dist/protocol-schema-adapter.d.ts.map +1 -1
  53. package/dist/protocol-schema-adapter.js +12 -245
  54. package/dist/query-builder-protocol.d.ts +34 -1
  55. package/dist/query-builder-protocol.d.ts.map +1 -1
  56. package/dist/query-planner.d.ts +14 -5
  57. package/dist/query-planner.d.ts.map +1 -1
  58. package/dist/query-planner.js +53 -34
  59. package/dist/relationship-check.d.ts.map +1 -1
  60. package/dist/relationship-check.js +8 -8
  61. package/dist/schemas.d.ts +17 -0
  62. package/dist/schemas.d.ts.map +1 -0
  63. package/dist/schemas.js +16 -0
  64. package/dist/semantic-planner.d.ts.map +1 -1
  65. package/dist/semantic-planner.js +49 -13
  66. package/dist/semantic-query-schema.d.ts +8 -1
  67. package/dist/semantic-query-schema.d.ts.map +1 -1
  68. package/dist/semantic-query-schema.js +18 -12
  69. package/dist/tools.d.ts.map +1 -1
  70. package/dist/tools.js +4 -3
  71. package/dist/types.d.ts +105 -7
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/utils/aggregate-state-functions.d.ts +24 -0
  74. package/dist/utils/aggregate-state-functions.d.ts.map +1 -0
  75. package/dist/utils/aggregate-state-functions.js +60 -0
  76. package/dist/utils/approximate-measures.d.ts +3 -1
  77. package/dist/utils/approximate-measures.d.ts.map +1 -1
  78. package/dist/utils/approximate-measures.js +8 -2
  79. package/dist/utils/base-measure-definition.d.ts +16 -0
  80. package/dist/utils/base-measure-definition.d.ts.map +1 -1
  81. package/dist/utils/base-measure-definition.js +31 -0
  82. package/dist/utils/build-dataset-query-builder.d.ts +1 -1
  83. package/dist/utils/build-dataset-query-builder.d.ts.map +1 -1
  84. package/dist/utils/build-dataset-query-builder.js +26 -21
  85. package/dist/utils/by-name.d.ts +8 -0
  86. package/dist/utils/by-name.d.ts.map +1 -0
  87. package/dist/utils/by-name.js +44 -0
  88. package/dist/utils/calendar-shift-sql.d.ts +5 -4
  89. package/dist/utils/calendar-shift-sql.d.ts.map +1 -1
  90. package/dist/utils/calendar-shift-sql.js +8 -8
  91. package/dist/utils/clickhouse-dataset-sql-dialect.d.ts +2 -2
  92. package/dist/utils/clickhouse-dataset-sql-dialect.d.ts.map +1 -1
  93. package/dist/utils/clickhouse-dataset-sql-dialect.js +143 -1
  94. package/dist/utils/compile-dataset-query.d.ts +1 -1
  95. package/dist/utils/compile-dataset-query.d.ts.map +1 -1
  96. package/dist/utils/compile-dataset-query.js +22 -8
  97. package/dist/utils/composite-time-measure-sql.d.ts +3 -5
  98. package/dist/utils/composite-time-measure-sql.d.ts.map +1 -1
  99. package/dist/utils/composite-time-measure-sql.js +15 -16
  100. package/dist/utils/count-aggregations.d.ts +4 -0
  101. package/dist/utils/count-aggregations.d.ts.map +1 -0
  102. package/dist/utils/count-aggregations.js +6 -0
  103. package/dist/utils/dataset-definition-validation.d.ts +1 -1
  104. package/dist/utils/dataset-definition-validation.d.ts.map +1 -1
  105. package/dist/utils/dataset-definition-validation.js +55 -26
  106. package/dist/utils/dataset-derived-query.d.ts +2 -4
  107. package/dist/utils/dataset-derived-query.d.ts.map +1 -1
  108. package/dist/utils/dataset-derived-query.js +11 -14
  109. package/dist/utils/dataset-having.d.ts +5 -7
  110. package/dist/utils/dataset-having.d.ts.map +1 -1
  111. package/dist/utils/dataset-having.js +9 -12
  112. package/dist/utils/dataset-normalization.d.ts.map +1 -1
  113. package/dist/utils/dataset-normalization.js +1 -0
  114. package/dist/utils/dataset-query-validation.d.ts +1 -1
  115. package/dist/utils/dataset-query-validation.d.ts.map +1 -1
  116. package/dist/utils/dataset-query-validation.js +19 -2
  117. package/dist/utils/dataset-source.d.ts +42 -0
  118. package/dist/utils/dataset-source.d.ts.map +1 -0
  119. package/dist/utils/dataset-source.js +59 -0
  120. package/dist/utils/dataset-sql-dialect.d.ts +13 -2
  121. package/dist/utils/dataset-sql-dialect.d.ts.map +1 -1
  122. package/dist/utils/dataset-sql-dialect.js +74 -1
  123. package/dist/utils/dataset-time-keys.d.ts +32 -0
  124. package/dist/utils/dataset-time-keys.d.ts.map +1 -0
  125. package/dist/utils/dataset-time-keys.js +55 -0
  126. package/dist/utils/dataset-validation.d.ts.map +1 -1
  127. package/dist/utils/dataset-validation.js +7 -0
  128. package/dist/utils/deployable-formulas.d.ts +33 -0
  129. package/dist/utils/deployable-formulas.d.ts.map +1 -0
  130. package/dist/utils/deployable-formulas.js +102 -0
  131. package/dist/utils/derived-cte-validation.d.ts +5 -0
  132. package/dist/utils/derived-cte-validation.d.ts.map +1 -1
  133. package/dist/utils/derived-cte-validation.js +77 -8
  134. package/dist/utils/derived-measure-sql.d.ts +10 -2
  135. package/dist/utils/derived-measure-sql.d.ts.map +1 -1
  136. package/dist/utils/derived-measure-sql.js +23 -43
  137. package/dist/utils/enforced-constraints.d.ts +14 -0
  138. package/dist/utils/enforced-constraints.d.ts.map +1 -0
  139. package/dist/utils/enforced-constraints.js +57 -0
  140. package/dist/utils/filter-field-type.d.ts +14 -0
  141. package/dist/utils/filter-field-type.d.ts.map +1 -0
  142. package/dist/utils/filter-field-type.js +21 -0
  143. package/dist/utils/filtered-aggregation-sql.d.ts +2 -1
  144. package/dist/utils/filtered-aggregation-sql.d.ts.map +1 -1
  145. package/dist/utils/filtered-aggregation-sql.js +18 -35
  146. package/dist/utils/groupable.d.ts +7 -0
  147. package/dist/utils/groupable.d.ts.map +1 -0
  148. package/dist/utils/groupable.js +8 -0
  149. package/dist/utils/metric-derived-query.d.ts +2 -4
  150. package/dist/utils/metric-derived-query.d.ts.map +1 -1
  151. package/dist/utils/metric-derived-query.js +58 -51
  152. package/dist/utils/metric-query-builder.d.ts +1 -1
  153. package/dist/utils/metric-query-builder.d.ts.map +1 -1
  154. package/dist/utils/metric-query-builder.js +22 -20
  155. package/dist/utils/metric-query-validation.d.ts.map +1 -1
  156. package/dist/utils/metric-query-validation.js +14 -1
  157. package/dist/utils/portable-aggregations.d.ts +1 -0
  158. package/dist/utils/portable-aggregations.d.ts.map +1 -1
  159. package/dist/utils/portable-aggregations.js +5 -0
  160. package/dist/utils/protocol-schema-conversion.d.ts +12 -0
  161. package/dist/utils/protocol-schema-conversion.d.ts.map +1 -0
  162. package/dist/utils/protocol-schema-conversion.js +61 -0
  163. package/dist/utils/query-field-references.d.ts +10 -0
  164. package/dist/utils/query-field-references.d.ts.map +1 -0
  165. package/dist/utils/query-field-references.js +38 -0
  166. package/dist/utils/query-timezone.d.ts +41 -3
  167. package/dist/utils/query-timezone.d.ts.map +1 -1
  168. package/dist/utils/query-timezone.js +76 -9
  169. package/dist/utils/raw-sql-dialect-check.d.ts +12 -0
  170. package/dist/utils/raw-sql-dialect-check.d.ts.map +1 -0
  171. package/dist/utils/raw-sql-dialect-check.js +37 -0
  172. package/dist/utils/relationship-builder-plan.d.ts +37 -18
  173. package/dist/utils/relationship-builder-plan.d.ts.map +1 -1
  174. package/dist/utils/relationship-builder-plan.js +43 -28
  175. package/dist/utils/relationship-measure-sql.d.ts +14 -4
  176. package/dist/utils/relationship-measure-sql.d.ts.map +1 -1
  177. package/dist/utils/relationship-measure-sql.js +36 -10
  178. package/dist/utils/relationship-measures.d.ts.map +1 -1
  179. package/dist/utils/relationship-measures.js +3 -0
  180. package/dist/utils/relationship-validation.d.ts.map +1 -1
  181. package/dist/utils/relationship-validation.js +2 -0
  182. package/dist/utils/row-scope.d.ts +23 -0
  183. package/dist/utils/row-scope.d.ts.map +1 -0
  184. package/dist/utils/row-scope.js +26 -0
  185. package/dist/utils/scoped-dataset-source.d.ts +23 -0
  186. package/dist/utils/scoped-dataset-source.d.ts.map +1 -0
  187. package/dist/utils/scoped-dataset-source.js +34 -0
  188. package/dist/utils/semantic-tool.d.ts +2 -2
  189. package/dist/utils/semantic-tool.d.ts.map +1 -1
  190. package/dist/utils/semantic-tool.js +1 -1
  191. package/dist/utils/shift-measure-sql.d.ts +5 -4
  192. package/dist/utils/shift-measure-sql.d.ts.map +1 -1
  193. package/dist/utils/shift-measure-sql.js +25 -26
  194. package/dist/utils/shift-wall-time-sql.d.ts +2 -1
  195. package/dist/utils/shift-wall-time-sql.d.ts.map +1 -1
  196. package/dist/utils/shift-wall-time-sql.js +7 -7
  197. package/dist/utils/snapshot-execution-context.d.ts.map +1 -1
  198. package/dist/utils/snapshot-execution-context.js +3 -0
  199. package/dist/utils/statement-parameters.d.ts +58 -0
  200. package/dist/utils/statement-parameters.d.ts.map +1 -0
  201. package/dist/utils/statement-parameters.js +101 -0
  202. package/dist/utils/time-axis-calendar-guard.d.ts +2 -1
  203. package/dist/utils/time-axis-calendar-guard.d.ts.map +1 -1
  204. package/dist/utils/time-axis-calendar-guard.js +5 -7
  205. package/dist/utils/time-measure-axis-sql.d.ts +3 -2
  206. package/dist/utils/time-measure-axis-sql.d.ts.map +1 -1
  207. package/dist/utils/time-measure-axis-sql.js +20 -22
  208. package/dist/utils/time-measure-context-sql.d.ts +3 -2
  209. package/dist/utils/time-measure-context-sql.d.ts.map +1 -1
  210. package/dist/utils/time-measure-context-sql.js +11 -11
  211. package/dist/utils/time-measure-dataset-sql.d.ts +7 -5
  212. package/dist/utils/time-measure-dataset-sql.d.ts.map +1 -1
  213. package/dist/utils/time-measure-dataset-sql.js +17 -12
  214. package/dist/utils/time-measure-leaf-sql.d.ts +3 -2
  215. package/dist/utils/time-measure-leaf-sql.d.ts.map +1 -1
  216. package/dist/utils/time-measure-leaf-sql.js +19 -18
  217. package/dist/utils/time-measure-result-sql.d.ts.map +1 -1
  218. package/dist/utils/time-measure-result-sql.js +10 -11
  219. package/dist/utils/time-measure-source-sql.d.ts +5 -2
  220. package/dist/utils/time-measure-source-sql.d.ts.map +1 -1
  221. package/dist/utils/time-measure-source-sql.js +33 -23
  222. package/dist/utils/time-measure-values-sql.d.ts +4 -3
  223. package/dist/utils/time-measure-values-sql.d.ts.map +1 -1
  224. package/dist/utils/time-measure-values-sql.js +26 -29
  225. package/dist/utils/timestamp-instants.d.ts +17 -0
  226. package/dist/utils/timestamp-instants.d.ts.map +1 -0
  227. package/dist/utils/timestamp-instants.js +34 -0
  228. package/dist/utils/timestamp-text.d.ts +12 -0
  229. package/dist/utils/timestamp-text.d.ts.map +1 -0
  230. package/dist/utils/timestamp-text.js +18 -0
  231. package/dist/utils/zod-json-schema.d.ts +8 -0
  232. package/dist/utils/zod-json-schema.d.ts.map +1 -0
  233. package/dist/utils/zod-json-schema.js +18 -0
  234. package/dist/utils/zod-schema-version.d.ts +19 -0
  235. package/dist/utils/zod-schema-version.d.ts.map +1 -0
  236. package/dist/utils/zod-schema-version.js +6 -0
  237. package/dist/utils/zod-v3-protocol-schema.d.ts +10 -0
  238. package/dist/utils/zod-v3-protocol-schema.d.ts.map +1 -0
  239. package/dist/utils/zod-v3-protocol-schema.js +164 -0
  240. package/dist/utils/zod-v4-protocol-schema.d.ts +12 -0
  241. package/dist/utils/zod-v4-protocol-schema.d.ts.map +1 -0
  242. package/dist/utils/zod-v4-protocol-schema.js +171 -0
  243. package/dist/validation.d.ts +7 -0
  244. package/dist/validation.d.ts.map +1 -1
  245. package/dist/validation.js +42 -8
  246. package/package.json +21 -12
  247. package/dist/api.type-test.d.ts +0 -2
  248. package/dist/api.type-test.d.ts.map +0 -1
  249. package/dist/api.type-test.js +0 -251
  250. package/dist/utils/time-arithmetic-sql.d.ts +0 -4
  251. package/dist/utils/time-arithmetic-sql.d.ts.map +0 -1
  252. package/dist/utils/time-arithmetic-sql.js +0 -9
  253. package/dist/utils/window-aggregation-sql.d.ts +0 -5
  254. package/dist/utils/window-aggregation-sql.d.ts.map +0 -1
  255. package/dist/utils/window-aggregation-sql.js +0 -17
package/dist/types.d.ts CHANGED
@@ -1,8 +1,26 @@
1
+ /**
2
+ * How a dataset's rows are resolved, as the deployment contract carries it
3
+ * (RFC 0021). `{ kind: 'final' }` reads the source with `FINAL`, and is what the
4
+ * deprecated `final: true` means; naming the engine also filters the resolved rows by its deletion or sign
5
+ * column, so only current rows remain.
6
+ */
7
+ export type RowResolution = {
8
+ readonly kind: 'final';
9
+ } | {
10
+ readonly kind: 'final';
11
+ readonly engine: 'replacing';
12
+ readonly deletedColumn?: string;
13
+ } | {
14
+ readonly kind: 'final';
15
+ readonly engine: 'collapsing' | 'versioned-collapsing';
16
+ readonly signColumn: string;
17
+ };
1
18
  import type { QueryableRelationshipMeasureNames, RelationshipMeasureDefinition } from './utils/relationship-measure-types.js';
2
19
  import type { DatasetFilterFor } from './utils/dataset-filter-types.js';
3
20
  import type { QueryBuilderFactoryInput } from './query-builder-protocol.js';
4
21
  import type { SemanticCacheMetaInfo, SemanticCacheRuntime } from './cache/semantic-query-cache.js';
5
22
  import type { SemanticExpression } from './semantic-plan.js';
23
+ import type { AggregateStateFunction } from './utils/aggregate-state-functions.js';
6
24
  export type FieldType = 'string' | 'number' | 'boolean' | 'timestamp';
7
25
  export type DimensionType = FieldType;
8
26
  export type SemanticSensitivity = 'public' | 'internal' | 'confidential' | 'restricted';
@@ -79,7 +97,12 @@ export interface RelationshipDefinition<TTarget extends {
79
97
  }
80
98
  export type AggregationType = 'sum' | 'count' | 'countDistinct' | 'avg' | 'min' | 'max' | 'argMax' | 'argMin' | 'percentile' | 'stddev' | 'variance'
81
99
  /** Estimated distinct count (ClickHouse `uniq`); results carry `approximate`. */
82
- | 'approxCountDistinct';
100
+ | 'approxCountDistinct'
101
+ /**
102
+ * Finalize stored aggregate states (`AggregateFunction` columns of an
103
+ * AggregatingMergeTree table) with the `-Merge` combinator of `stateFunction`.
104
+ */
105
+ | 'merge';
83
106
  export type MeasureAggregation = AggregationType;
84
107
  export interface AggregationSpec {
85
108
  __type: 'aggregation_spec';
@@ -89,6 +112,8 @@ export interface AggregationSpec {
89
112
  argField?: string;
90
113
  /** Percentile level in [0, 1]. Required when aggregation is 'percentile'. */
91
114
  level?: number;
115
+ /** State function whose `-Merge` reads the column. Required when aggregation is 'merge'. */
116
+ stateFunction?: AggregateStateFunction;
92
117
  sql?: string;
93
118
  filters?: MetricFilter[];
94
119
  }
@@ -108,6 +133,8 @@ export interface MeasureDefinition extends SemanticMetadata {
108
133
  argField?: string;
109
134
  /** Percentile level in [0, 1]. Required when aggregation is 'percentile'. */
110
135
  level?: number;
136
+ /** State function whose `-Merge` reads the column. Required when aggregation is 'merge'. */
137
+ stateFunction?: AggregateStateFunction;
111
138
  sql?: string;
112
139
  /** Identifiers referenced by `sql`; required when producing a protocol artifact. */
113
140
  dependencies?: readonly string[];
@@ -304,6 +331,11 @@ export interface MetricQuery {
304
331
  limit?: number;
305
332
  offset?: number;
306
333
  by?: TimeGrain;
334
+ /**
335
+ * Time axis for `by` and for window and shift measures: the dataset's
336
+ * `timeKey` or one of its `timeKeys`. Defaults to `timeKey`.
337
+ */
338
+ timeKey?: string;
307
339
  /** IANA timezone for buckets and local time-key bounds; overrides the client default. */
308
340
  timezone?: string;
309
341
  }
@@ -322,6 +354,11 @@ export interface DatasetQuery {
322
354
  limit?: number;
323
355
  offset?: number;
324
356
  by?: TimeGrain;
357
+ /**
358
+ * Time axis for `by` and for window and shift measures: the dataset's
359
+ * `timeKey` or one of its `timeKeys`. Defaults to `timeKey`.
360
+ */
361
+ timeKey?: string;
325
362
  /** IANA timezone for buckets and local time-key bounds; overrides the client default. */
326
363
  timezone?: string;
327
364
  }
@@ -377,6 +414,14 @@ export type SemanticTenantRuntime = string | {
377
414
  export interface SemanticExecutionRuntime {
378
415
  builderFactory?: QueryBuilderFactoryInput;
379
416
  tenant?: SemanticTenantRuntime;
417
+ /**
418
+ * RFC 0019 enforced constraints: comparisons on the queried dataset's
419
+ * declared filters or one-hop relationship fields, ANDed with the caller's
420
+ * filters. Resolve them from trusted context (the authenticated principal),
421
+ * never from caller input. A constraint the dataset cannot enforce refuses
422
+ * the call.
423
+ */
424
+ constraints?: MetricFilter[];
380
425
  }
381
426
  export interface ExecutionContext {
382
427
  runtime?: SemanticExecutionRuntime;
@@ -436,14 +481,42 @@ export interface DerivedMetricConfig<TDatasetName extends string = string> exten
436
481
  label?: string;
437
482
  description?: string;
438
483
  }
439
- export interface DatasetConfig<TDimensions extends Record<string, DimensionDefinition> = Record<string, DimensionDefinition>, TMeasures extends Record<string, DatasetMeasureDefinition> = Record<string, MeasureDefinition>, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, TSegments extends Record<string, SegmentDefinition> = Record<string, SegmentDefinition>, TFilters extends SemanticFiltersDefinition | undefined = SemanticFiltersDefinition> extends SemanticMetadata {
484
+ export interface DatasetConfig<TDimensions extends Record<string, DimensionDefinition> = Record<string, DimensionDefinition>, TMeasures extends Record<string, DatasetMeasureDefinition> = Record<string, MeasureDefinition>, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, TSegments extends Record<string, SegmentDefinition> = Record<string, SegmentDefinition>, TFilters extends SemanticFiltersDefinition | undefined = SemanticFiltersDefinition, TTimeKey extends string | undefined = string | undefined, TTimeKeys extends readonly string[] = readonly string[]> extends SemanticMetadata {
440
485
  source: string;
486
+ /**
487
+ * Read the source with ClickHouse `FINAL`, so queries see one row per
488
+ * sorting key: the latest version in a ReplacingMergeTree (deleted keys
489
+ * dropped when the engine has an `is_deleted` column) and collapsed rows in
490
+ * a CollapsingMergeTree. Without it, row versions that have not been merged
491
+ * yet are each counted. Applies to every query on this dataset, to its
492
+ * relationship-key checks, and to joins that target it.
493
+ *
494
+ * @deprecated Use `rowResolution: { kind: 'final' }`, which means the same and
495
+ * can also name the engine. `final: true` still works and is read as that.
496
+ */
497
+ final?: boolean;
498
+ /**
499
+ * Read the source with ClickHouse `FINAL` (RFC 0021), as code and as the
500
+ * deployment contract carries it. `{ kind: 'final' }` reads `FINAL` only;
501
+ * naming the engine also keeps only rows whose deletion column is 0, or whose
502
+ * sign column is 1, after `FINAL`.
503
+ */
504
+ rowResolution?: RowResolution;
441
505
  description?: string;
442
506
  freshness?: DatasetFreshness;
443
507
  owner?: string;
444
508
  defaults?: DatasetDefaults;
445
509
  tenantKey?: string;
446
- timeKey?: string;
510
+ /** The default time axis: what `by` buckets on when a query selects no `timeKey`. */
511
+ timeKey?: TTimeKey;
512
+ /**
513
+ * Further time axes a query may select with `query.timeKey`, such as
514
+ * `shipped_at` beside a `created_at` default. Each is a dimension name or a
515
+ * column, like `timeKey`, and requires `timeKey` to be set. The selected
516
+ * axis drives grains, window and shift measures, and their time-range
517
+ * checks; `timeGrains` applies to every axis.
518
+ */
519
+ timeKeys?: TTimeKeys;
447
520
  /**
448
521
  * Restricts the time grains this dataset supports. Defaults to every grain
449
522
  * the planner can bucket on. Use it, for example, to refuse `minute` and
@@ -463,10 +536,18 @@ export interface DatasetConfig<TDimensions extends Record<string, DimensionDefin
463
536
  */
464
537
  segments?: TSegments;
465
538
  }
466
- export interface DatasetInstance<TDimensions extends Record<string, DimensionDefinition> = Record<string, DimensionDefinition>, TMeasures extends Record<string, DatasetMeasureDefinition> = Record<string, DatasetMeasureDefinition>, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, TDatasetName extends string = string, TDerivedMeasures extends Record<string, DerivedMeasureDefinition> = Record<string, DerivedMeasureDefinition>, TSegments extends Record<string, SegmentDefinition> = Record<string, SegmentDefinition>, TFilters extends SemanticFiltersDefinition = SemanticFiltersDefinition> {
539
+ export interface DatasetInstance<TDimensions extends Record<string, DimensionDefinition> = Record<string, DimensionDefinition>, TMeasures extends Record<string, DatasetMeasureDefinition> = Record<string, DatasetMeasureDefinition>, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, TDatasetName extends string = string, TDerivedMeasures extends Record<string, DerivedMeasureDefinition> = Record<string, DerivedMeasureDefinition>, TSegments extends Record<string, SegmentDefinition> = Record<string, SegmentDefinition>, TFilters extends SemanticFiltersDefinition = SemanticFiltersDefinition, TTimeKey extends string | undefined = string | undefined, TTimeKeys extends string = string> {
467
540
  __type: 'dataset';
468
541
  name: TDatasetName;
469
542
  source: string;
543
+ /**
544
+ * True whenever `rowResolution` is set.
545
+ *
546
+ * @deprecated Read `rowResolution` instead.
547
+ */
548
+ final?: boolean;
549
+ /** How the source's rows are resolved; see `DatasetConfig.rowResolution`. */
550
+ rowResolution?: RowResolution;
470
551
  description?: string;
471
552
  examples?: readonly string[];
472
553
  synonyms?: readonly string[];
@@ -478,7 +559,9 @@ export interface DatasetInstance<TDimensions extends Record<string, DimensionDef
478
559
  sensitivity?: SemanticSensitivity;
479
560
  defaults?: DatasetDefaults;
480
561
  tenantKey?: string;
481
- timeKey?: string;
562
+ timeKey?: TTimeKey;
563
+ /** Alternate time axes, excluding `timeKey`; see `DatasetConfig.timeKeys`. */
564
+ timeKeys?: readonly TTimeKeys[];
482
565
  timeGrains?: readonly TimeGrain[];
483
566
  dimensions: TDimensions;
484
567
  /** All declared measures: base aggregates, formulas, and time windows. */
@@ -490,8 +573,8 @@ export interface DatasetInstance<TDimensions extends Record<string, DimensionDef
490
573
  limits?: DatasetLimits;
491
574
  cache?: DatasetCachePolicy;
492
575
  segments: TSegments;
493
- metric<TName extends string>(metricName: TName, metricConfig: BaseMetricConfig<BaseMeasures<TMeasures>>): BaseMetricRef<TDatasetName, TName, DatasetInstance<TDimensions, TMeasures, TRelationships, TDatasetName, TDerivedMeasures, TSegments, TFilters>>;
494
- metric<TName extends string>(metricName: TName, metricConfig: DerivedMetricConfig<TDatasetName>): DerivedMetricRef<TDatasetName, TName, DatasetInstance<TDimensions, TMeasures, TRelationships, TDatasetName, TDerivedMeasures, TSegments, TFilters>>;
576
+ metric<TName extends string>(metricName: TName, metricConfig: BaseMetricConfig<BaseMeasures<TMeasures>>): BaseMetricRef<TDatasetName, TName, DatasetInstance<TDimensions, TMeasures, TRelationships, TDatasetName, TDerivedMeasures, TSegments, TFilters, TTimeKey, TTimeKeys>>;
577
+ metric<TName extends string>(metricName: TName, metricConfig: DerivedMetricConfig<TDatasetName>): DerivedMetricRef<TDatasetName, TName, DatasetInstance<TDimensions, TMeasures, TRelationships, TDatasetName, TDerivedMeasures, TSegments, TFilters, TTimeKey, TTimeKeys>>;
495
578
  }
496
579
  export interface DatasetRegistryInstance {
497
580
  register(ds: DatasetInstance): void;
@@ -534,6 +617,11 @@ export type DatasetQueryableMeasures<TDataset extends DatasetInstance<any, any,
534
617
  };
535
618
  /** Segment names declared by a dataset. */
536
619
  export type DatasetSegmentNames<TDataset extends DatasetInstance<any, any, any, any>> = keyof TDataset['segments'] & string;
620
+ /**
621
+ * Time axes a query may select with `timeKey`: the dataset's `timeKey` and its
622
+ * `timeKeys`. `never` when the dataset declares no time axis.
623
+ */
624
+ export type DatasetTimeKeyNames<TDataset extends DatasetInstance<any, any, any, any>> = Exclude<TDataset['timeKey'], undefined> | (NonNullable<TDataset['timeKeys']> extends readonly (infer TKey)[] ? TKey & string : never);
537
625
  /**
538
626
  * Fields a result can be ordered by. This is the selection-independent superset
539
627
  * (every dimension + measure, plus the synthetic `period` column for grained
@@ -556,6 +644,11 @@ export interface DatasetQueryFor<TDataset extends DatasetInstance<any, any, any,
556
644
  limit?: number;
557
645
  offset?: number;
558
646
  by?: TimeGrain;
647
+ /**
648
+ * Time axis for `by` and for window and shift measures: the dataset's
649
+ * `timeKey` or one of its `timeKeys`. Defaults to `timeKey`.
650
+ */
651
+ timeKey?: DatasetTimeKeyNames<TDataset>;
559
652
  /** IANA timezone for buckets and local time-key bounds; overrides the client default. */
560
653
  timezone?: string;
561
654
  includeMeta?: boolean;
@@ -601,6 +694,11 @@ export interface MetricQueryFor<TDataset extends DatasetInstance<any, any, any,
601
694
  limit?: number;
602
695
  offset?: number;
603
696
  by?: TimeGrain;
697
+ /**
698
+ * Time axis for `by` and for window and shift measures: the dataset's
699
+ * `timeKey` or one of its `timeKeys`. Defaults to `timeKey`.
700
+ */
701
+ timeKey?: DatasetTimeKeyNames<TDataset>;
604
702
  /** IANA timezone for buckets and local time-key bounds; overrides the client default. */
605
703
  timezone?: string;
606
704
  includeMeta?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Aggregate functions whose stored states a `merge` measure can finalize.
3
+ *
4
+ * An `AggregatingMergeTree` table stores partial aggregation states in
5
+ * `AggregateFunction(<fn>, <type>)` columns. Reading one needs the matching
6
+ * `-Merge` combinator (`uniqMerge(users)`); a plain `sum` or `count` over the
7
+ * state column is a type error or a meaningless number.
8
+ *
9
+ * Only non-parametric functions are listed: a parametric state such as
10
+ * `quantile(0.9)` must be merged with the same parameters, which a measure
11
+ * cannot read back from the column type. The name is interpolated into SQL, so
12
+ * it must come from this list.
13
+ */
14
+ import type { MeasureDefinition } from '../types.js';
15
+ export declare const AGGREGATE_STATE_FUNCTIONS: readonly ["uniq", "uniqExact", "uniqCombined", "uniqCombined64", "uniqHLL12", "uniqTheta", "count", "sum", "avg", "min", "max", "any", "anyLast", "groupBitmap"];
16
+ export type AggregateStateFunction = (typeof AGGREGATE_STATE_FUNCTIONS)[number];
17
+ export declare function isAggregateStateFunction(value: unknown): value is AggregateStateFunction;
18
+ /** Throws unless `value` is a supported state function; `owner` names the measure. */
19
+ export declare function assertAggregateStateFunction(value: unknown, owner: string): asserts value is AggregateStateFunction;
20
+ /** ClickHouse `-Merge` call that finalizes the states in `column`. */
21
+ export declare function mergeStateExpression(stateFunction: AggregateStateFunction, column: string): string;
22
+ export declare function isApproximateStateFunction(stateFunction: string | undefined): boolean;
23
+ export declare function isCountStateMerge(definition: Pick<MeasureDefinition, 'aggregation' | 'stateFunction'>): boolean;
24
+ //# sourceMappingURL=aggregate-state-functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-state-functions.d.ts","sourceRoot":"","sources":["../../src/utils/aggregate-state-functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,yBAAyB,kKAe5B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAchF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAExF;AAED,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAOnH;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElG;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,eAAe,CAAC,GAAG,OAAO,CAI/G"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Aggregate functions whose stored states a `merge` measure can finalize.
3
+ *
4
+ * An `AggregatingMergeTree` table stores partial aggregation states in
5
+ * `AggregateFunction(<fn>, <type>)` columns. Reading one needs the matching
6
+ * `-Merge` combinator (`uniqMerge(users)`); a plain `sum` or `count` over the
7
+ * state column is a type error or a meaningless number.
8
+ *
9
+ * Only non-parametric functions are listed: a parametric state such as
10
+ * `quantile(0.9)` must be merged with the same parameters, which a measure
11
+ * cannot read back from the column type. The name is interpolated into SQL, so
12
+ * it must come from this list.
13
+ */
14
+ export const AGGREGATE_STATE_FUNCTIONS = [
15
+ 'uniq',
16
+ 'uniqExact',
17
+ 'uniqCombined',
18
+ 'uniqCombined64',
19
+ 'uniqHLL12',
20
+ 'uniqTheta',
21
+ 'count',
22
+ 'sum',
23
+ 'avg',
24
+ 'min',
25
+ 'max',
26
+ 'any',
27
+ 'anyLast',
28
+ 'groupBitmap',
29
+ ];
30
+ const STATE_FUNCTIONS = new Set(AGGREGATE_STATE_FUNCTIONS);
31
+ /** States whose merged value is an estimate. */
32
+ const APPROXIMATE_STATE_FUNCTIONS = new Set([
33
+ 'uniq', 'uniqCombined', 'uniqCombined64', 'uniqHLL12', 'uniqTheta',
34
+ ]);
35
+ /** States whose merged value is a count: 0, not NULL, over an empty population. */
36
+ const COUNT_STATE_FUNCTIONS = new Set([
37
+ 'uniq', 'uniqExact', 'uniqCombined', 'uniqCombined64', 'uniqHLL12', 'uniqTheta', 'count', 'groupBitmap',
38
+ ]);
39
+ export function isAggregateStateFunction(value) {
40
+ return typeof value === 'string' && STATE_FUNCTIONS.has(value);
41
+ }
42
+ /** Throws unless `value` is a supported state function; `owner` names the measure. */
43
+ export function assertAggregateStateFunction(value, owner) {
44
+ if (!isAggregateStateFunction(value)) {
45
+ throw new Error(`${owner} merges an unsupported aggregate state "${String(value)}". ` +
46
+ `Supported state functions: ${AGGREGATE_STATE_FUNCTIONS.join(', ')}.`);
47
+ }
48
+ }
49
+ /** ClickHouse `-Merge` call that finalizes the states in `column`. */
50
+ export function mergeStateExpression(stateFunction, column) {
51
+ return `${stateFunction}Merge(${column})`;
52
+ }
53
+ export function isApproximateStateFunction(stateFunction) {
54
+ return stateFunction !== undefined && APPROXIMATE_STATE_FUNCTIONS.has(stateFunction);
55
+ }
56
+ export function isCountStateMerge(definition) {
57
+ return definition.aggregation === 'merge'
58
+ && definition.stateFunction !== undefined
59
+ && COUNT_STATE_FUNCTIONS.has(definition.stateFunction);
60
+ }
@@ -3,8 +3,10 @@
3
3
  * consumer, and in particular an agent, can say a value is an estimate
4
4
  * (RFC 0015).
5
5
  */
6
- import type { AggregationType, DerivedMeasureDefinition, DatasetMeasureDefinition } from '../types.js';
6
+ import type { AggregationType, DerivedMeasureDefinition, DatasetMeasureDefinition, MeasureDefinition } from '../types.js';
7
7
  export declare function isApproximateAggregation(aggregation: AggregationType): boolean;
8
+ /** A base measure is approximate by aggregation, or by merging estimating states (`uniqMerge`). */
9
+ export declare function isApproximateBaseMeasure(definition: Pick<MeasureDefinition, 'aggregation' | 'stateFunction'>): boolean;
8
10
  /** A derived measure is approximate when any measure it uses is. */
9
11
  export declare function isApproximateDerivedMeasure(measures: Readonly<Record<string, DatasetMeasureDefinition>>, definition: DerivedMeasureDefinition): boolean;
10
12
  export declare function isApproximateMeasure(measures: Readonly<Record<string, DatasetMeasureDefinition>>, name: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"approximate-measures.d.ts","sourceRoot":"","sources":["../../src/utils/approximate-measures.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvG,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAE9E;AAED,oEAAoE;AACpE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EAC5D,UAAU,EAAE,wBAAwB,GACnC,OAAO,CAKT;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxH"}
1
+ {"version":3,"file":"approximate-measures.d.ts","sourceRoot":"","sources":["../../src/utils/approximate-measures.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG1H,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAE9E;AAED,mGAAmG;AACnG,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,eAAe,CAAC,GAAG,OAAO,CAGtH;AAED,oEAAoE;AACpE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EAC5D,UAAU,EAAE,wBAAwB,GACnC,OAAO,CAKT;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxH"}
@@ -1,18 +1,24 @@
1
1
  import { measureDependencyNames } from './measure-dependencies.js';
2
2
  import { getBaseMeasure } from './dataset-measures.js';
3
+ import { isApproximateStateFunction } from './aggregate-state-functions.js';
3
4
  export function isApproximateAggregation(aggregation) {
4
5
  return aggregation === 'approxCountDistinct';
5
6
  }
7
+ /** A base measure is approximate by aggregation, or by merging estimating states (`uniqMerge`). */
8
+ export function isApproximateBaseMeasure(definition) {
9
+ return isApproximateAggregation(definition.aggregation)
10
+ || (definition.aggregation === 'merge' && isApproximateStateFunction(definition.stateFunction));
11
+ }
6
12
  /** A derived measure is approximate when any measure it uses is. */
7
13
  export function isApproximateDerivedMeasure(measures, definition) {
8
14
  return measureDependencyNames(measures, Object.values(definition.uses)).some(name => {
9
15
  const base = getBaseMeasure(measures, name);
10
- return base !== undefined && isApproximateAggregation(base.aggregation);
16
+ return base !== undefined && isApproximateBaseMeasure(base);
11
17
  });
12
18
  }
13
19
  export function isApproximateMeasure(measures, name) {
14
20
  return measureDependencyNames(measures, [name]).some(input => {
15
21
  const base = getBaseMeasure(measures, input);
16
- return base !== undefined && isApproximateAggregation(base.aggregation);
22
+ return base !== undefined && isApproximateBaseMeasure(base);
17
23
  });
18
24
  }
@@ -1,4 +1,5 @@
1
1
  import type { DerivedMeasureDefinition, DerivedMeasureOptions, DerivedMeasureUses, MeasureDefinition, MeasureOptions, MeasureAggregation } from '../types.js';
2
+ import { type AggregateStateFunction } from './aggregate-state-functions.js';
2
3
  export declare function createMeasureHelper<TAggregation extends MeasureAggregation>(aggregation: TAggregation): <const TField extends string, const TOptions extends MeasureOptions = MeasureOptions>(field: TField, opts?: TOptions) => MeasureDefinition & {
3
4
  aggregation: TAggregation;
4
5
  field: TField;
@@ -15,6 +16,21 @@ export declare function createPercentileMeasure<const TField extends string, con
15
16
  aggregation: 'percentile';
16
17
  field: TField;
17
18
  } & TOptions;
19
+ /**
20
+ * Finalizes the aggregate states stored in `field` (an `AggregateFunction`
21
+ * column) with `stateFunction`'s `-Merge` combinator. Measure filters are not
22
+ * supported: a filtered merge needs `-MergeIf`, which this measure does not
23
+ * emit yet.
24
+ */
25
+ export declare function createMergeMeasure<const TStateFunction extends AggregateStateFunction, const TField extends string, const TOptions extends Omit<MeasureOptions, 'filters' | 'sql' | 'dependencies'> = Omit<MeasureOptions, 'filters' | 'sql' | 'dependencies'>>(stateFunction: TStateFunction, field: TField, opts?: TOptions & {
26
+ filters?: never;
27
+ sql?: never;
28
+ dependencies?: never;
29
+ }): MeasureDefinition & {
30
+ aggregation: 'merge';
31
+ field: TField;
32
+ stateFunction: TStateFunction;
33
+ } & TOptions;
18
34
  export declare function createMedianMeasure<const TField extends string, const TOptions extends MeasureOptions = MeasureOptions>(field: TField, opts?: TOptions): MeasureDefinition & {
19
35
  aggregation: "percentile";
20
36
  field: TField;
@@ -1 +1 @@
1
- {"version":3,"file":"base-measure-definition.d.ts","sourceRoot":"","sources":["../../src/utils/base-measure-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAGrB,wBAAgB,mBAAmB,CAAC,YAAY,SAAS,kBAAkB,EAAE,WAAW,EAAE,YAAY,IAC5F,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAAE,OAAO,MAAM,EAAE,OAAO,QAAQ,KAAG,iBAAiB,GAAG;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAW1M;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED,wBAAgB,sBAAsB,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAAE,WAAW,EAAE,YAAY,IAChG,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,IAAI,EAAE,OAAO,QAAQ,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,KAAG,iBAAiB,GAAG;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,QAAQ,CAgBvT;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAcvP;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ;iBAhByD,YAAY;;aAkB3N;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,KAAK,SAAS,kBAAkB,EACzE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,GACpC,wBAAwB,CAAC,KAAK,CAAC,CASjC"}
1
+ {"version":3,"file":"base-measure-definition.d.ts","sourceRoot":"","sources":["../../src/utils/base-measure-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE3G,wBAAgB,mBAAmB,CAAC,YAAY,SAAS,kBAAkB,EAAE,WAAW,EAAE,YAAY,IAC5F,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAAE,OAAO,MAAM,EAAE,OAAO,QAAQ,KAAG,iBAAiB,GAAG;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAW1M;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED,wBAAgB,sBAAsB,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAAE,WAAW,EAAE,YAAY,IAChG,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,IAAI,EAAE,OAAO,QAAQ,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,KAAG,iBAAiB,GAAG;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,QAAQ,CAgBvT;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG;IAAE,WAAW,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAcvP;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,cAAc,SAAS,sBAAsB,EACnD,KAAK,CAAC,MAAM,SAAS,MAAM,EAC3B,KAAK,CAAC,QAAQ,SAAS,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,EAE1I,aAAa,EAAE,cAAc,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,QAAQ,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,GACvE,iBAAiB,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,cAAc,CAAA;CAAE,GAAG,QAAQ,CAyBvG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ;iBAzDyD,YAAY;;aA2D3N;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,KAAK,SAAS,kBAAkB,EACzE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,GACpC,wBAAwB,CAAC,KAAK,CAAC,CASjC"}
@@ -1,4 +1,5 @@
1
1
  import { snapshotSemanticMetadata } from './semantic-metadata.js';
2
+ import { assertAggregateStateFunction } from './aggregate-state-functions.js';
2
3
  export function createMeasureHelper(aggregation) {
3
4
  return (field, opts) => ({
4
5
  __type: 'measure_definition',
@@ -50,6 +51,36 @@ export function createPercentileMeasure(field, level, opts) {
50
51
  filters: opts?.filters,
51
52
  };
52
53
  }
54
+ /**
55
+ * Finalizes the aggregate states stored in `field` (an `AggregateFunction`
56
+ * column) with `stateFunction`'s `-Merge` combinator. Measure filters are not
57
+ * supported: a filtered merge needs `-MergeIf`, which this measure does not
58
+ * emit yet.
59
+ */
60
+ export function createMergeMeasure(stateFunction, field, opts) {
61
+ assertAggregateStateFunction(stateFunction, `measure.merge(…, "${field}")`);
62
+ if (typeof field !== 'string' || field.trim().length === 0) {
63
+ throw new Error('measure.merge(stateFunction, field) requires a field.');
64
+ }
65
+ // The types forbid these, but untyped callers can still pass them. Dropping
66
+ // them would silently widen the measure (an ignored filter counts every row),
67
+ // so they are rejected instead.
68
+ const unsupported = ['filters', 'sql', 'dependencies']
69
+ .filter(key => opts?.[key] !== undefined);
70
+ if (unsupported.length) {
71
+ throw new Error(`measure.merge(…, "${field}") does not support ${unsupported.join(', ')}: ` +
72
+ 'merge measures read a stored state column, and a filtered merge needs -MergeIf, which is not emitted yet.');
73
+ }
74
+ return {
75
+ __type: 'measure_definition',
76
+ aggregation: 'merge',
77
+ field,
78
+ stateFunction,
79
+ label: opts?.label,
80
+ description: opts?.description,
81
+ ...snapshotSemanticMetadata(opts ?? {}),
82
+ };
83
+ }
53
84
  export function createMedianMeasure(field, opts) {
54
85
  return createPercentileMeasure(field, 0.5, opts);
55
86
  }
@@ -1,5 +1,5 @@
1
1
  import type { AnyDatasetInstance, DatasetQuery } from '../types.js';
2
2
  import type { QueryBuilderLike } from '../query-builder-protocol.js';
3
3
  import type { DatasetQueryExecutionOptions } from '../dataset-query.js';
4
- export declare function buildDatasetQueryBuilder(ds: AnyDatasetInstance, query: DatasetQuery, options: DatasetQueryExecutionOptions): QueryBuilderLike;
4
+ export declare function buildDatasetQueryBuilder(dataset: AnyDatasetInstance, query: DatasetQuery, options: DatasetQueryExecutionOptions): QueryBuilderLike;
5
5
  //# sourceMappingURL=build-dataset-query-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-dataset-query-builder.d.ts","sourceRoot":"","sources":["../../src/utils/build-dataset-query-builder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAqBrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,4BAA4B,GACpC,gBAAgB,CAiElB"}
1
+ {"version":3,"file":"build-dataset-query-builder.d.ts","sourceRoot":"","sources":["../../src/utils/build-dataset-query-builder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAgBrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,4BAA4B,GACpC,gBAAgB,CAoElB"}