@lightdash/common 0.2650.0 → 0.2652.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 (214) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/compiler/translator.d.ts +10 -1
  3. package/dist/cjs/compiler/translator.d.ts.map +1 -1
  4. package/dist/cjs/compiler/translator.js +15 -31
  5. package/dist/cjs/compiler/translator.js.map +1 -1
  6. package/dist/cjs/compiler/translator.test.js +0 -259
  7. package/dist/cjs/compiler/translator.test.js.map +1 -1
  8. package/dist/cjs/index.d.ts +0 -1
  9. package/dist/cjs/index.d.ts.map +1 -1
  10. package/dist/cjs/index.js +0 -1
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/types/analytics.d.ts +1 -0
  13. package/dist/cjs/types/analytics.d.ts.map +1 -1
  14. package/dist/cjs/types/analytics.js +1 -0
  15. package/dist/cjs/types/analytics.js.map +1 -1
  16. package/dist/cjs/types/featureFlags.d.ts +7 -1
  17. package/dist/cjs/types/featureFlags.d.ts.map +1 -1
  18. package/dist/cjs/types/featureFlags.js +6 -0
  19. package/dist/cjs/types/featureFlags.js.map +1 -1
  20. package/dist/cjs/types/scheduler.d.ts +18 -3
  21. package/dist/cjs/types/scheduler.d.ts.map +1 -1
  22. package/dist/cjs/types/scheduler.js +27 -2
  23. package/dist/cjs/types/scheduler.js.map +1 -1
  24. package/dist/cjs/types/schedulerLog.d.ts +7 -2
  25. package/dist/cjs/types/schedulerLog.d.ts.map +1 -1
  26. package/dist/cjs/types/schedulerLog.js +7 -1
  27. package/dist/cjs/types/schedulerLog.js.map +1 -1
  28. package/dist/esm/.tsbuildinfo +1 -1
  29. package/dist/esm/compiler/translator.d.ts +10 -1
  30. package/dist/esm/compiler/translator.d.ts.map +1 -1
  31. package/dist/esm/compiler/translator.js +16 -32
  32. package/dist/esm/compiler/translator.js.map +1 -1
  33. package/dist/esm/compiler/translator.test.js +1 -260
  34. package/dist/esm/compiler/translator.test.js.map +1 -1
  35. package/dist/esm/index.d.ts +0 -1
  36. package/dist/esm/index.d.ts.map +1 -1
  37. package/dist/esm/index.js +0 -1
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/types/analytics.d.ts +1 -0
  40. package/dist/esm/types/analytics.d.ts.map +1 -1
  41. package/dist/esm/types/analytics.js +1 -0
  42. package/dist/esm/types/analytics.js.map +1 -1
  43. package/dist/esm/types/featureFlags.d.ts +7 -1
  44. package/dist/esm/types/featureFlags.d.ts.map +1 -1
  45. package/dist/esm/types/featureFlags.js +6 -0
  46. package/dist/esm/types/featureFlags.js.map +1 -1
  47. package/dist/esm/types/scheduler.d.ts +18 -3
  48. package/dist/esm/types/scheduler.d.ts.map +1 -1
  49. package/dist/esm/types/scheduler.js +24 -1
  50. package/dist/esm/types/scheduler.js.map +1 -1
  51. package/dist/esm/types/schedulerLog.d.ts +7 -2
  52. package/dist/esm/types/schedulerLog.d.ts.map +1 -1
  53. package/dist/esm/types/schedulerLog.js +6 -0
  54. package/dist/esm/types/schedulerLog.js.map +1 -1
  55. package/dist/types/.tsbuildinfo +1 -1
  56. package/dist/types/compiler/translator.d.ts +10 -1
  57. package/dist/types/compiler/translator.d.ts.map +1 -1
  58. package/dist/types/compiler/translator.js +16 -32
  59. package/dist/types/compiler/translator.js.map +1 -1
  60. package/dist/types/compiler/translator.test.js +1 -260
  61. package/dist/types/compiler/translator.test.js.map +1 -1
  62. package/dist/types/index.d.ts +0 -1
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/types/index.js +0 -1
  65. package/dist/types/index.js.map +1 -1
  66. package/dist/types/types/analytics.d.ts +1 -0
  67. package/dist/types/types/analytics.d.ts.map +1 -1
  68. package/dist/types/types/analytics.js +1 -0
  69. package/dist/types/types/analytics.js.map +1 -1
  70. package/dist/types/types/featureFlags.d.ts +7 -1
  71. package/dist/types/types/featureFlags.d.ts.map +1 -1
  72. package/dist/types/types/featureFlags.js +6 -0
  73. package/dist/types/types/featureFlags.js.map +1 -1
  74. package/dist/types/types/scheduler.d.ts +18 -3
  75. package/dist/types/types/scheduler.d.ts.map +1 -1
  76. package/dist/types/types/scheduler.js +24 -1
  77. package/dist/types/types/scheduler.js.map +1 -1
  78. package/dist/types/types/schedulerLog.d.ts +7 -2
  79. package/dist/types/types/schedulerLog.d.ts.map +1 -1
  80. package/dist/types/types/schedulerLog.js +6 -0
  81. package/dist/types/types/schedulerLog.js.map +1 -1
  82. package/package.json +1 -1
  83. package/dist/cjs/preAggregates/additivity.d.ts +0 -9
  84. package/dist/cjs/preAggregates/additivity.d.ts.map +0 -1
  85. package/dist/cjs/preAggregates/additivity.js +0 -54
  86. package/dist/cjs/preAggregates/additivity.js.map +0 -1
  87. package/dist/cjs/preAggregates/buildPreAggregateExplore.d.ts +0 -5
  88. package/dist/cjs/preAggregates/buildPreAggregateExplore.d.ts.map +0 -1
  89. package/dist/cjs/preAggregates/buildPreAggregateExplore.js +0 -242
  90. package/dist/cjs/preAggregates/buildPreAggregateExplore.js.map +0 -1
  91. package/dist/cjs/preAggregates/buildPreAggregateExplore.test.d.ts +0 -2
  92. package/dist/cjs/preAggregates/buildPreAggregateExplore.test.d.ts.map +0 -1
  93. package/dist/cjs/preAggregates/buildPreAggregateExplore.test.js +0 -233
  94. package/dist/cjs/preAggregates/buildPreAggregateExplore.test.js.map +0 -1
  95. package/dist/cjs/preAggregates/definition.d.ts +0 -5
  96. package/dist/cjs/preAggregates/definition.d.ts.map +0 -1
  97. package/dist/cjs/preAggregates/definition.js +0 -73
  98. package/dist/cjs/preAggregates/definition.js.map +0 -1
  99. package/dist/cjs/preAggregates/generatePreAggregateExplores.d.ts +0 -7
  100. package/dist/cjs/preAggregates/generatePreAggregateExplores.d.ts.map +0 -1
  101. package/dist/cjs/preAggregates/generatePreAggregateExplores.js +0 -51
  102. package/dist/cjs/preAggregates/generatePreAggregateExplores.js.map +0 -1
  103. package/dist/cjs/preAggregates/index.d.ts +0 -9
  104. package/dist/cjs/preAggregates/index.d.ts.map +0 -1
  105. package/dist/cjs/preAggregates/index.js +0 -12
  106. package/dist/cjs/preAggregates/index.js.map +0 -1
  107. package/dist/cjs/preAggregates/matcher.d.ts +0 -14
  108. package/dist/cjs/preAggregates/matcher.d.ts.map +0 -1
  109. package/dist/cjs/preAggregates/matcher.js +0 -221
  110. package/dist/cjs/preAggregates/matcher.js.map +0 -1
  111. package/dist/cjs/preAggregates/matcher.test.d.ts +0 -2
  112. package/dist/cjs/preAggregates/matcher.test.d.ts.map +0 -1
  113. package/dist/cjs/preAggregates/matcher.test.js +0 -593
  114. package/dist/cjs/preAggregates/matcher.test.js.map +0 -1
  115. package/dist/cjs/preAggregates/metricRepresentation.d.ts +0 -21
  116. package/dist/cjs/preAggregates/metricRepresentation.d.ts.map +0 -1
  117. package/dist/cjs/preAggregates/metricRepresentation.js +0 -68
  118. package/dist/cjs/preAggregates/metricRepresentation.js.map +0 -1
  119. package/dist/cjs/preAggregates/naming.d.ts +0 -8
  120. package/dist/cjs/preAggregates/naming.d.ts.map +0 -1
  121. package/dist/cjs/preAggregates/naming.js +0 -15
  122. package/dist/cjs/preAggregates/naming.js.map +0 -1
  123. package/dist/cjs/preAggregates/references.d.ts +0 -21
  124. package/dist/cjs/preAggregates/references.d.ts.map +0 -1
  125. package/dist/cjs/preAggregates/references.js +0 -40
  126. package/dist/cjs/preAggregates/references.js.map +0 -1
  127. package/dist/esm/preAggregates/additivity.d.ts +0 -9
  128. package/dist/esm/preAggregates/additivity.d.ts.map +0 -1
  129. package/dist/esm/preAggregates/additivity.js +0 -48
  130. package/dist/esm/preAggregates/additivity.js.map +0 -1
  131. package/dist/esm/preAggregates/buildPreAggregateExplore.d.ts +0 -5
  132. package/dist/esm/preAggregates/buildPreAggregateExplore.d.ts.map +0 -1
  133. package/dist/esm/preAggregates/buildPreAggregateExplore.js +0 -237
  134. package/dist/esm/preAggregates/buildPreAggregateExplore.js.map +0 -1
  135. package/dist/esm/preAggregates/buildPreAggregateExplore.test.d.ts +0 -2
  136. package/dist/esm/preAggregates/buildPreAggregateExplore.test.d.ts.map +0 -1
  137. package/dist/esm/preAggregates/buildPreAggregateExplore.test.js +0 -231
  138. package/dist/esm/preAggregates/buildPreAggregateExplore.test.js.map +0 -1
  139. package/dist/esm/preAggregates/definition.d.ts +0 -5
  140. package/dist/esm/preAggregates/definition.d.ts.map +0 -1
  141. package/dist/esm/preAggregates/definition.js +0 -68
  142. package/dist/esm/preAggregates/definition.js.map +0 -1
  143. package/dist/esm/preAggregates/generatePreAggregateExplores.d.ts +0 -7
  144. package/dist/esm/preAggregates/generatePreAggregateExplores.d.ts.map +0 -1
  145. package/dist/esm/preAggregates/generatePreAggregateExplores.js +0 -47
  146. package/dist/esm/preAggregates/generatePreAggregateExplores.js.map +0 -1
  147. package/dist/esm/preAggregates/index.d.ts +0 -9
  148. package/dist/esm/preAggregates/index.d.ts.map +0 -1
  149. package/dist/esm/preAggregates/index.js +0 -9
  150. package/dist/esm/preAggregates/index.js.map +0 -1
  151. package/dist/esm/preAggregates/matcher.d.ts +0 -14
  152. package/dist/esm/preAggregates/matcher.d.ts.map +0 -1
  153. package/dist/esm/preAggregates/matcher.js +0 -217
  154. package/dist/esm/preAggregates/matcher.js.map +0 -1
  155. package/dist/esm/preAggregates/matcher.test.d.ts +0 -2
  156. package/dist/esm/preAggregates/matcher.test.d.ts.map +0 -1
  157. package/dist/esm/preAggregates/matcher.test.js +0 -591
  158. package/dist/esm/preAggregates/matcher.test.js.map +0 -1
  159. package/dist/esm/preAggregates/metricRepresentation.d.ts +0 -21
  160. package/dist/esm/preAggregates/metricRepresentation.d.ts.map +0 -1
  161. package/dist/esm/preAggregates/metricRepresentation.js +0 -62
  162. package/dist/esm/preAggregates/metricRepresentation.js.map +0 -1
  163. package/dist/esm/preAggregates/naming.d.ts +0 -8
  164. package/dist/esm/preAggregates/naming.d.ts.map +0 -1
  165. package/dist/esm/preAggregates/naming.js +0 -7
  166. package/dist/esm/preAggregates/naming.js.map +0 -1
  167. package/dist/esm/preAggregates/references.d.ts +0 -21
  168. package/dist/esm/preAggregates/references.d.ts.map +0 -1
  169. package/dist/esm/preAggregates/references.js +0 -33
  170. package/dist/esm/preAggregates/references.js.map +0 -1
  171. package/dist/types/preAggregates/additivity.d.ts +0 -9
  172. package/dist/types/preAggregates/additivity.d.ts.map +0 -1
  173. package/dist/types/preAggregates/additivity.js +0 -48
  174. package/dist/types/preAggregates/additivity.js.map +0 -1
  175. package/dist/types/preAggregates/buildPreAggregateExplore.d.ts +0 -5
  176. package/dist/types/preAggregates/buildPreAggregateExplore.d.ts.map +0 -1
  177. package/dist/types/preAggregates/buildPreAggregateExplore.js +0 -237
  178. package/dist/types/preAggregates/buildPreAggregateExplore.js.map +0 -1
  179. package/dist/types/preAggregates/buildPreAggregateExplore.test.d.ts +0 -2
  180. package/dist/types/preAggregates/buildPreAggregateExplore.test.d.ts.map +0 -1
  181. package/dist/types/preAggregates/buildPreAggregateExplore.test.js +0 -231
  182. package/dist/types/preAggregates/buildPreAggregateExplore.test.js.map +0 -1
  183. package/dist/types/preAggregates/definition.d.ts +0 -5
  184. package/dist/types/preAggregates/definition.d.ts.map +0 -1
  185. package/dist/types/preAggregates/definition.js +0 -68
  186. package/dist/types/preAggregates/definition.js.map +0 -1
  187. package/dist/types/preAggregates/generatePreAggregateExplores.d.ts +0 -7
  188. package/dist/types/preAggregates/generatePreAggregateExplores.d.ts.map +0 -1
  189. package/dist/types/preAggregates/generatePreAggregateExplores.js +0 -47
  190. package/dist/types/preAggregates/generatePreAggregateExplores.js.map +0 -1
  191. package/dist/types/preAggregates/index.d.ts +0 -9
  192. package/dist/types/preAggregates/index.d.ts.map +0 -1
  193. package/dist/types/preAggregates/index.js +0 -9
  194. package/dist/types/preAggregates/index.js.map +0 -1
  195. package/dist/types/preAggregates/matcher.d.ts +0 -14
  196. package/dist/types/preAggregates/matcher.d.ts.map +0 -1
  197. package/dist/types/preAggregates/matcher.js +0 -217
  198. package/dist/types/preAggregates/matcher.js.map +0 -1
  199. package/dist/types/preAggregates/matcher.test.d.ts +0 -2
  200. package/dist/types/preAggregates/matcher.test.d.ts.map +0 -1
  201. package/dist/types/preAggregates/matcher.test.js +0 -591
  202. package/dist/types/preAggregates/matcher.test.js.map +0 -1
  203. package/dist/types/preAggregates/metricRepresentation.d.ts +0 -21
  204. package/dist/types/preAggregates/metricRepresentation.d.ts.map +0 -1
  205. package/dist/types/preAggregates/metricRepresentation.js +0 -62
  206. package/dist/types/preAggregates/metricRepresentation.js.map +0 -1
  207. package/dist/types/preAggregates/naming.d.ts +0 -8
  208. package/dist/types/preAggregates/naming.d.ts.map +0 -1
  209. package/dist/types/preAggregates/naming.js +0 -7
  210. package/dist/types/preAggregates/naming.js.map +0 -1
  211. package/dist/types/preAggregates/references.d.ts +0 -21
  212. package/dist/types/preAggregates/references.d.ts.map +0 -1
  213. package/dist/types/preAggregates/references.js +0 -33
  214. package/dist/types/preAggregates/references.js.map +0 -1
@@ -1,591 +0,0 @@
1
- import { SupportedDbtAdapter } from '../types/dbt';
2
- import { CustomDimensionType, DimensionType, FieldType, MetricType, } from '../types/field';
3
- import { FilterOperator } from '../types/filter';
4
- import { PreAggregateMissReason } from '../types/preAggregate';
5
- import { TimeFrames } from '../types/timeFrames';
6
- import { findMatch } from './matcher';
7
- const makeDimension = ({ name, table = 'orders', type = DimensionType.STRING, timeInterval, timeIntervalBaseDimensionName, }) => ({
8
- index: 0,
9
- fieldType: FieldType.DIMENSION,
10
- type,
11
- name,
12
- label: name,
13
- sql: '${TABLE}.x',
14
- table,
15
- tableLabel: table,
16
- hidden: false,
17
- compiledSql: 'x',
18
- tablesReferences: [],
19
- ...(timeInterval ? { timeInterval } : {}),
20
- ...(timeIntervalBaseDimensionName ? { timeIntervalBaseDimensionName } : {}),
21
- });
22
- const makeMetric = ({ name, type, table = 'orders', }) => ({
23
- index: 0,
24
- fieldType: FieldType.METRIC,
25
- type,
26
- name,
27
- label: name,
28
- sql: '${TABLE}.x',
29
- table,
30
- tableLabel: table,
31
- hidden: false,
32
- compiledSql: 'x',
33
- tablesReferences: [],
34
- });
35
- const baseExplore = () => ({
36
- name: 'orders',
37
- label: 'Orders',
38
- tags: [],
39
- baseTable: 'orders',
40
- joinedTables: [],
41
- targetDatabase: SupportedDbtAdapter.POSTGRES,
42
- tables: {
43
- orders: {
44
- name: 'orders',
45
- label: 'Orders',
46
- database: 'db',
47
- schema: 'public',
48
- sqlTable: 'orders',
49
- dimensions: {
50
- status: makeDimension({ name: 'status' }),
51
- order_date: makeDimension({
52
- name: 'order_date',
53
- type: DimensionType.DATE,
54
- }),
55
- order_date_day: makeDimension({
56
- name: 'order_date_day',
57
- type: DimensionType.DATE,
58
- timeInterval: TimeFrames.DAY,
59
- timeIntervalBaseDimensionName: 'order_date',
60
- }),
61
- order_date_month: makeDimension({
62
- name: 'order_date_month',
63
- type: DimensionType.DATE,
64
- timeInterval: TimeFrames.MONTH,
65
- timeIntervalBaseDimensionName: 'order_date',
66
- }),
67
- },
68
- metrics: {
69
- total_order_amount: makeMetric({
70
- name: 'total_order_amount',
71
- type: MetricType.SUM,
72
- }),
73
- order_count: makeMetric({
74
- name: 'order_count',
75
- type: MetricType.COUNT,
76
- }),
77
- unique_customers: makeMetric({
78
- name: 'unique_customers',
79
- type: MetricType.COUNT_DISTINCT,
80
- }),
81
- custom_metric: makeMetric({
82
- name: 'custom_metric',
83
- type: MetricType.NUMBER,
84
- }),
85
- avg_order_amount: makeMetric({
86
- name: 'avg_order_amount',
87
- type: MetricType.AVERAGE,
88
- }),
89
- },
90
- lineageGraph: {},
91
- },
92
- customers: {
93
- name: 'customers',
94
- label: 'Customers',
95
- database: 'db',
96
- schema: 'public',
97
- sqlTable: 'customers',
98
- dimensions: {
99
- first_name: makeDimension({
100
- name: 'first_name',
101
- table: 'customers',
102
- }),
103
- },
104
- metrics: {},
105
- lineageGraph: {},
106
- },
107
- },
108
- });
109
- const makeMetricQuery = (partial) => ({
110
- exploreName: 'orders',
111
- dimensions: partial.dimensions,
112
- metrics: partial.metrics,
113
- filters: partial.filters || {},
114
- sorts: partial.sorts || [],
115
- limit: partial.limit || 500,
116
- tableCalculations: partial.tableCalculations || [],
117
- ...(partial.additionalMetrics
118
- ? { additionalMetrics: partial.additionalMetrics }
119
- : {}),
120
- ...(partial.customDimensions
121
- ? { customDimensions: partial.customDimensions }
122
- : {}),
123
- });
124
- describe('findMatch', () => {
125
- it('returns no_pre_aggregates_defined when explore has no pre-aggregates', () => {
126
- const result = findMatch(makeMetricQuery({
127
- dimensions: ['orders_status'],
128
- metrics: ['orders_order_count'],
129
- }), baseExplore());
130
- expect(result).toStrictEqual({
131
- hit: false,
132
- preAggregateName: null,
133
- miss: {
134
- reason: PreAggregateMissReason.NO_PRE_AGGREGATES_DEFINED,
135
- },
136
- });
137
- });
138
- it('returns hit when dimensions and metrics match', () => {
139
- const explore = {
140
- ...baseExplore(),
141
- preAggregates: [
142
- {
143
- name: 'orders_daily',
144
- dimensions: ['status', 'order_date'],
145
- metrics: ['order_count', 'total_order_amount'],
146
- timeDimension: 'order_date',
147
- granularity: TimeFrames.DAY,
148
- },
149
- ],
150
- };
151
- const result = findMatch(makeMetricQuery({
152
- dimensions: ['orders_status', 'orders_order_date_month'],
153
- metrics: ['orders_order_count'],
154
- }), explore);
155
- expect(result).toStrictEqual({
156
- hit: true,
157
- preAggregateName: 'orders_daily',
158
- miss: null,
159
- });
160
- });
161
- it('returns hit when time dimension is separate from dimensions array', () => {
162
- const explore = {
163
- ...baseExplore(),
164
- preAggregates: [
165
- {
166
- name: 'orders_daily',
167
- dimensions: ['status'],
168
- metrics: ['order_count'],
169
- timeDimension: 'order_date',
170
- granularity: TimeFrames.DAY,
171
- },
172
- ],
173
- };
174
- const result = findMatch(makeMetricQuery({
175
- dimensions: ['orders_status', 'orders_order_date_month'],
176
- metrics: ['orders_order_count'],
177
- }), explore);
178
- expect(result).toStrictEqual({
179
- hit: true,
180
- preAggregateName: 'orders_daily',
181
- miss: null,
182
- });
183
- });
184
- it('returns dimension_not_in_pre_aggregate when query dimensions are missing', () => {
185
- const explore = {
186
- ...baseExplore(),
187
- preAggregates: [
188
- {
189
- name: 'orders_summary',
190
- dimensions: ['order_date'],
191
- metrics: ['order_count'],
192
- },
193
- ],
194
- };
195
- const result = findMatch(makeMetricQuery({
196
- dimensions: ['orders_status'],
197
- metrics: ['orders_order_count'],
198
- }), explore);
199
- expect(result.miss).toStrictEqual({
200
- reason: PreAggregateMissReason.DIMENSION_NOT_IN_PRE_AGGREGATE,
201
- fieldId: 'orders_status',
202
- });
203
- });
204
- it('returns metric_not_in_pre_aggregate when query metrics are missing', () => {
205
- const explore = {
206
- ...baseExplore(),
207
- preAggregates: [
208
- {
209
- name: 'orders_summary',
210
- dimensions: ['status'],
211
- metrics: ['order_count'],
212
- },
213
- ],
214
- };
215
- const result = findMatch(makeMetricQuery({
216
- dimensions: ['orders_status'],
217
- metrics: ['orders_total_order_amount'],
218
- }), explore);
219
- expect(result.miss).toStrictEqual({
220
- reason: PreAggregateMissReason.METRIC_NOT_IN_PRE_AGGREGATE,
221
- fieldId: 'orders_total_order_amount',
222
- });
223
- });
224
- it('returns non_additive_metric for non-reaggregatable metrics', () => {
225
- const explore = {
226
- ...baseExplore(),
227
- preAggregates: [
228
- {
229
- name: 'orders_summary',
230
- dimensions: ['status'],
231
- metrics: ['unique_customers'],
232
- },
233
- ],
234
- };
235
- const result = findMatch(makeMetricQuery({
236
- dimensions: ['orders_status'],
237
- metrics: ['orders_unique_customers'],
238
- }), explore);
239
- expect(result.miss).toStrictEqual({
240
- reason: PreAggregateMissReason.NON_ADDITIVE_METRIC,
241
- fieldId: 'orders_unique_customers',
242
- });
243
- });
244
- it('returns custom_sql_metric for type:number metrics', () => {
245
- const explore = {
246
- ...baseExplore(),
247
- preAggregates: [
248
- {
249
- name: 'orders_summary',
250
- dimensions: ['status'],
251
- metrics: ['custom_metric'],
252
- },
253
- ],
254
- };
255
- const result = findMatch(makeMetricQuery({
256
- dimensions: ['orders_status'],
257
- metrics: ['orders_custom_metric'],
258
- }), explore);
259
- expect(result.miss).toStrictEqual({
260
- reason: PreAggregateMissReason.CUSTOM_SQL_METRIC,
261
- fieldId: 'orders_custom_metric',
262
- });
263
- });
264
- it('returns hit for decomposable average metrics in a covering pre-aggregate', () => {
265
- const explore = {
266
- ...baseExplore(),
267
- preAggregates: [
268
- {
269
- name: 'orders_summary',
270
- dimensions: ['status'],
271
- metrics: ['avg_order_amount'],
272
- },
273
- ],
274
- };
275
- const result = findMatch(makeMetricQuery({
276
- dimensions: ['orders_status'],
277
- metrics: ['orders_avg_order_amount'],
278
- }), explore);
279
- expect(result).toStrictEqual({
280
- hit: true,
281
- preAggregateName: 'orders_summary',
282
- miss: null,
283
- });
284
- });
285
- it('returns filter_dimension_not_in_pre_aggregate when dimension filter is missing', () => {
286
- const explore = {
287
- ...baseExplore(),
288
- preAggregates: [
289
- {
290
- name: 'orders_summary',
291
- dimensions: ['status'],
292
- metrics: ['order_count'],
293
- },
294
- ],
295
- };
296
- const result = findMatch(makeMetricQuery({
297
- dimensions: ['orders_status'],
298
- metrics: ['orders_order_count'],
299
- filters: {
300
- dimensions: {
301
- id: '1',
302
- and: [
303
- {
304
- id: '2',
305
- operator: FilterOperator.EQUALS,
306
- target: { fieldId: 'customers_first_name' },
307
- values: ['John'],
308
- },
309
- ],
310
- },
311
- },
312
- }), explore);
313
- expect(result.miss).toStrictEqual({
314
- reason: PreAggregateMissReason.FILTER_DIMENSION_NOT_IN_PRE_AGGREGATE,
315
- fieldId: 'customers_first_name',
316
- });
317
- });
318
- it('returns granularity_too_fine when query granularity is finer than rollup', () => {
319
- const explore = {
320
- ...baseExplore(),
321
- preAggregates: [
322
- {
323
- name: 'orders_monthly',
324
- dimensions: ['status', 'order_date'],
325
- metrics: ['order_count'],
326
- timeDimension: 'order_date',
327
- granularity: TimeFrames.MONTH,
328
- },
329
- ],
330
- };
331
- const result = findMatch(makeMetricQuery({
332
- dimensions: ['orders_order_date_day'],
333
- metrics: ['orders_order_count'],
334
- }), explore);
335
- expect(result.miss).toStrictEqual({
336
- reason: PreAggregateMissReason.GRANULARITY_TOO_FINE,
337
- fieldId: 'orders_order_date_day',
338
- queryGranularity: TimeFrames.DAY,
339
- preAggregateGranularity: TimeFrames.MONTH,
340
- preAggregateTimeDimension: 'order_date',
341
- });
342
- });
343
- it('accepts coarser query granularity than rollup', () => {
344
- const explore = {
345
- ...baseExplore(),
346
- preAggregates: [
347
- {
348
- name: 'orders_daily',
349
- dimensions: ['order_date'],
350
- metrics: ['order_count'],
351
- timeDimension: 'order_date',
352
- granularity: TimeFrames.DAY,
353
- },
354
- ],
355
- };
356
- const result = findMatch(makeMetricQuery({
357
- dimensions: ['orders_order_date_month'],
358
- metrics: ['orders_order_count'],
359
- }), explore);
360
- expect(result.hit).toBe(true);
361
- });
362
- it('returns custom_dimension_present when custom dimensions exist', () => {
363
- const explore = {
364
- ...baseExplore(),
365
- preAggregates: [
366
- {
367
- name: 'orders_summary',
368
- dimensions: ['status'],
369
- metrics: ['order_count'],
370
- },
371
- ],
372
- };
373
- const result = findMatch(makeMetricQuery({
374
- dimensions: ['orders_status'],
375
- metrics: ['orders_order_count'],
376
- customDimensions: [
377
- {
378
- id: 'custom_1',
379
- type: CustomDimensionType.SQL,
380
- name: 'Custom',
381
- table: 'orders',
382
- sql: '1',
383
- dimensionType: DimensionType.NUMBER,
384
- },
385
- ],
386
- }), explore);
387
- expect(result.miss).toStrictEqual({
388
- reason: PreAggregateMissReason.CUSTOM_DIMENSION_PRESENT,
389
- });
390
- });
391
- it('returns table_calculation_present when table calculations exist', () => {
392
- const explore = {
393
- ...baseExplore(),
394
- preAggregates: [
395
- {
396
- name: 'orders_summary',
397
- dimensions: ['status'],
398
- metrics: ['order_count'],
399
- },
400
- ],
401
- };
402
- const result = findMatch(makeMetricQuery({
403
- dimensions: ['orders_status'],
404
- metrics: ['orders_order_count'],
405
- tableCalculations: [
406
- {
407
- name: 'calc_1',
408
- displayName: 'Calc',
409
- sql: '1',
410
- },
411
- ],
412
- }), explore);
413
- expect(result.miss).toStrictEqual({
414
- reason: PreAggregateMissReason.TABLE_CALCULATION_PRESENT,
415
- });
416
- });
417
- it('returns custom_metric_present when additional metrics exist', () => {
418
- const explore = {
419
- ...baseExplore(),
420
- preAggregates: [
421
- {
422
- name: 'orders_summary',
423
- dimensions: ['status'],
424
- metrics: ['order_count'],
425
- },
426
- ],
427
- };
428
- const result = findMatch(makeMetricQuery({
429
- dimensions: ['orders_status'],
430
- metrics: ['orders_order_count'],
431
- additionalMetrics: [
432
- {
433
- name: 'custom',
434
- table: 'orders',
435
- type: MetricType.SUM,
436
- sql: '${TABLE}.amount',
437
- },
438
- ],
439
- }), explore);
440
- expect(result.miss).toStrictEqual({
441
- reason: PreAggregateMissReason.CUSTOM_METRIC_PRESENT,
442
- });
443
- });
444
- it('picks the smallest matching pre-aggregate', () => {
445
- const explore = {
446
- ...baseExplore(),
447
- preAggregates: [
448
- {
449
- name: 'orders_large',
450
- dimensions: ['status', 'order_date'],
451
- metrics: ['order_count'],
452
- },
453
- {
454
- name: 'orders_small',
455
- dimensions: ['status'],
456
- metrics: ['order_count'],
457
- },
458
- ],
459
- };
460
- const result = findMatch(makeMetricQuery({
461
- dimensions: ['orders_status'],
462
- metrics: ['orders_order_count'],
463
- }), explore);
464
- expect(result).toStrictEqual({
465
- hit: true,
466
- preAggregateName: 'orders_small',
467
- miss: null,
468
- });
469
- });
470
- it('uses metrics count as tie-breaker when dimensions count is equal', () => {
471
- const explore = {
472
- ...baseExplore(),
473
- preAggregates: [
474
- {
475
- name: 'orders_wider_metrics',
476
- dimensions: ['status'],
477
- metrics: ['order_count', 'total_order_amount'],
478
- },
479
- {
480
- name: 'orders_narrow_metrics',
481
- dimensions: ['status'],
482
- metrics: ['order_count'],
483
- },
484
- ],
485
- };
486
- const result = findMatch(makeMetricQuery({
487
- dimensions: ['orders_status'],
488
- metrics: ['orders_order_count'],
489
- }), explore);
490
- expect(result).toStrictEqual({
491
- hit: true,
492
- preAggregateName: 'orders_narrow_metrics',
493
- miss: null,
494
- });
495
- });
496
- it('matches joined dimension references in dot notation', () => {
497
- const explore = {
498
- ...baseExplore(),
499
- preAggregates: [
500
- {
501
- name: 'customer_rollup',
502
- dimensions: ['customers.first_name'],
503
- metrics: ['order_count'],
504
- },
505
- ],
506
- };
507
- const result = findMatch(makeMetricQuery({
508
- dimensions: ['customers_first_name'],
509
- metrics: ['orders_order_count'],
510
- }), explore);
511
- expect(result.hit).toBe(true);
512
- });
513
- it('extracts nested filter group dimensions', () => {
514
- const explore = {
515
- ...baseExplore(),
516
- preAggregates: [
517
- {
518
- name: 'customer_rollup',
519
- dimensions: ['status', 'customers.first_name'],
520
- metrics: ['order_count'],
521
- },
522
- ],
523
- };
524
- const result = findMatch(makeMetricQuery({
525
- dimensions: ['orders_status'],
526
- metrics: ['orders_order_count'],
527
- filters: {
528
- dimensions: {
529
- id: 'root',
530
- and: [
531
- {
532
- id: 'or1',
533
- or: [
534
- {
535
- id: 'f1',
536
- operator: FilterOperator.EQUALS,
537
- target: {
538
- fieldId: 'customers_first_name',
539
- },
540
- values: ['A'],
541
- },
542
- {
543
- id: 'f2',
544
- operator: FilterOperator.EQUALS,
545
- target: { fieldId: 'orders_status' },
546
- values: ['completed'],
547
- },
548
- ],
549
- },
550
- ],
551
- },
552
- },
553
- }), explore);
554
- expect(result.hit).toBe(true);
555
- });
556
- it('allows dimensions-only queries when dimensions match', () => {
557
- const explore = {
558
- ...baseExplore(),
559
- preAggregates: [
560
- {
561
- name: 'status_rollup',
562
- dimensions: ['status'],
563
- metrics: ['order_count'],
564
- },
565
- ],
566
- };
567
- const result = findMatch(makeMetricQuery({
568
- dimensions: ['orders_status'],
569
- metrics: [],
570
- }), explore);
571
- expect(result.hit).toBe(true);
572
- });
573
- it('allows metrics-only queries when metrics match', () => {
574
- const explore = {
575
- ...baseExplore(),
576
- preAggregates: [
577
- {
578
- name: 'metric_rollup',
579
- dimensions: ['status'],
580
- metrics: ['order_count'],
581
- },
582
- ],
583
- };
584
- const result = findMatch(makeMetricQuery({
585
- dimensions: [],
586
- metrics: ['orders_order_count'],
587
- }), explore);
588
- expect(result.hit).toBe(true);
589
- });
590
- });
591
- //# sourceMappingURL=matcher.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"matcher.test.js","sourceRoot":"","sources":["../../../src/preAggregates/matcher.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EACH,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,UAAU,GAGb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,CAAC,EACnB,IAAI,EACJ,KAAK,GAAG,QAAQ,EAChB,IAAI,GAAG,aAAa,CAAC,MAAM,EAC3B,YAAY,EACZ,6BAA6B,GAOhC,EAAqB,EAAE,CAAC,CAAC;IACtB,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,SAAS,CAAC,SAAS;IAC9B,IAAI;IACJ,IAAI;IACJ,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,YAAY;IACjB,KAAK;IACL,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,GAAG;IAChB,gBAAgB,EAAE,EAAE;IACpB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9E,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,EAChB,IAAI,EACJ,IAAI,EACJ,KAAK,GAAG,QAAQ,GAKnB,EAAkB,EAAE,CAAC,CAAC;IACnB,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,SAAS,CAAC,MAAM;IAC3B,IAAI;IACJ,IAAI;IACJ,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,YAAY;IACjB,KAAK;IACL,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,GAAG;IAChB,gBAAgB,EAAE,EAAE;CACvB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,GAAY,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,QAAQ;IACnB,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,mBAAmB,CAAC,QAAQ;IAC5C,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE;gBACR,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACzC,UAAU,EAAE,aAAa,CAAC;oBACtB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,aAAa,CAAC,IAAI;iBAC3B,CAAC;gBACF,cAAc,EAAE,aAAa,CAAC;oBAC1B,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,YAAY,EAAE,UAAU,CAAC,GAAG;oBAC5B,6BAA6B,EAAE,YAAY;iBAC9C,CAAC;gBACF,gBAAgB,EAAE,aAAa,CAAC;oBAC5B,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,YAAY,EAAE,UAAU,CAAC,KAAK;oBAC9B,6BAA6B,EAAE,YAAY;iBAC9C,CAAC;aACL;YACD,OAAO,EAAE;gBACL,kBAAkB,EAAE,UAAU,CAAC;oBAC3B,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,UAAU,CAAC,GAAG;iBACvB,CAAC;gBACF,WAAW,EAAE,UAAU,CAAC;oBACpB,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,UAAU,CAAC,KAAK;iBACzB,CAAC;gBACF,gBAAgB,EAAE,UAAU,CAAC;oBACzB,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,UAAU,CAAC,cAAc;iBAClC,CAAC;gBACF,aAAa,EAAE,UAAU,CAAC;oBACtB,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC;gBACF,gBAAgB,EAAE,UAAU,CAAC;oBACzB,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,UAAU,CAAC,OAAO;iBAC3B,CAAC;aACL;YACD,YAAY,EAAE,EAAE;SACnB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE;gBACR,UAAU,EAAE,aAAa,CAAC;oBACtB,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,WAAW;iBACrB,CAAC;aACL;YACD,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,EAAE;SACnB;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CACpB,OAA2E,EAChE,EAAE,CAAC,CAAC;IACf,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;IAC9B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;IAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG;IAC3B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;IAClD,GAAG,CAAC,OAAO,CAAC,iBAAiB;QACzB,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAClD,CAAC,CAAC,EAAE,CAAC;IACT,GAAG,CAAC,OAAO,CAAC,gBAAgB;QACxB,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE;QAChD,CAAC,CAAC,EAAE,CAAC;CACZ,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC5E,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,WAAW,EAAE,CAChB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,GAAG,EAAE,KAAK;YACV,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE;gBACF,MAAM,EAAE,sBAAsB,CAAC,yBAAyB;aAC3D;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;oBACpC,OAAO,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC;oBAC9C,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,UAAU,CAAC,GAAG;iBAC9B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;YACxD,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,GAAG,EAAE,IAAI;YACT,gBAAgB,EAAE,cAAc;YAChC,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QACzE,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,UAAU,CAAC,GAAG;iBAC9B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;YACxD,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,GAAG,EAAE,IAAI;YACT,gBAAgB,EAAE,cAAc;YAChC,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,YAAY,CAAC;oBAC1B,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,8BAA8B;YAC7D,OAAO,EAAE,eAAe;SAC3B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC1E,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,2BAA2B,CAAC;SACzC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,2BAA2B;YAC1D,OAAO,EAAE,2BAA2B;SACvC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QAClE,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAChC;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACvC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,mBAAmB;YAClD,OAAO,EAAE,yBAAyB;SACrC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,eAAe,CAAC;iBAC7B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,iBAAiB;YAChD,OAAO,EAAE,sBAAsB;SAClC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAChC;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACvC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,GAAG,EAAE,IAAI;YACT,gBAAgB,EAAE,gBAAgB;YAClC,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACtF,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;YAC/B,OAAO,EAAE;gBACL,UAAU,EAAE;oBACR,EAAE,EAAE,GAAG;oBACP,GAAG,EAAE;wBACD;4BACI,EAAE,EAAE,GAAG;4BACP,QAAQ,EAAE,cAAc,CAAC,MAAM;4BAC/B,MAAM,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE;4BAC3C,MAAM,EAAE,CAAC,MAAM,CAAC;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,qCAAqC;YACpE,OAAO,EAAE,sBAAsB;SAClC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;oBACpC,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,UAAU,CAAC,KAAK;iBAChC;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,uBAAuB,CAAC;YACrC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,oBAAoB;YACnD,OAAO,EAAE,uBAAuB;YAChC,gBAAgB,EAAE,UAAU,CAAC,GAAG;YAChC,uBAAuB,EAAE,UAAU,CAAC,KAAK;YACzC,yBAAyB,EAAE,YAAY;SAC1C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,CAAC,YAAY,CAAC;oBAC1B,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,UAAU,CAAC,GAAG;iBAC9B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,yBAAyB,CAAC;YACvC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;YAC/B,gBAAgB,EAAE;gBACd;oBACI,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,mBAAmB,CAAC,GAAG;oBAC7B,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,QAAQ;oBACf,GAAG,EAAE,GAAG;oBACR,aAAa,EAAE,aAAa,CAAC,MAAM;iBACtC;aACJ;SACJ,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,wBAAwB;SAC1D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACvE,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;YAC/B,iBAAiB,EAAE;gBACf;oBACI,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM;oBACnB,GAAG,EAAE,GAAG;iBACX;aACJ;SACJ,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,yBAAyB;SAC3D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACnE,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;YAC/B,iBAAiB,EAAE;gBACf;oBACI,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,UAAU,CAAC,GAAG;oBACpB,GAAG,EAAE,iBAAiB;iBACzB;aACJ;SACJ,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,sBAAsB,CAAC,qBAAqB;SACvD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;oBACpC,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;gBACD;oBACI,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,GAAG,EAAE,IAAI;YACT,gBAAgB,EAAE,cAAc;YAChC,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QACxE,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC;iBACjD;gBACD;oBACI,IAAI,EAAE,uBAAuB;oBAC7B,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,GAAG,EAAE,IAAI;YACT,gBAAgB,EAAE,uBAAuB;YACzC,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,iBAAiB;oBACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;oBACpC,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,iBAAiB;oBACvB,UAAU,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC;oBAC9C,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,CAAC,oBAAoB,CAAC;YAC/B,OAAO,EAAE;gBACL,UAAU,EAAE;oBACR,EAAE,EAAE,MAAM;oBACV,GAAG,EAAE;wBACD;4BACI,EAAE,EAAE,KAAK;4BACT,EAAE,EAAE;gCACA;oCACI,EAAE,EAAE,IAAI;oCACR,QAAQ,EAAE,cAAc,CAAC,MAAM;oCAC/B,MAAM,EAAE;wCACJ,OAAO,EAAE,sBAAsB;qCAClC;oCACD,MAAM,EAAE,CAAC,GAAG,CAAC;iCAChB;gCACD;oCACI,EAAE,EAAE,IAAI;oCACR,QAAQ,EAAE,cAAc,CAAC,MAAM;oCAC/B,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;oCACpC,MAAM,EAAE,CAAC,WAAW,CAAC;iCACxB;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;SACJ,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO,EAAE,EAAE;SACd,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG;YACZ,GAAG,WAAW,EAAE;YAChB,aAAa,EAAE;gBACX;oBACI,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,CAAC,QAAQ,CAAC;oBACtB,OAAO,EAAE,CAAC,aAAa,CAAC;iBAC3B;aACJ;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,SAAS,CACpB,eAAe,CAAC;YACZ,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC,EACF,OAAO,CACV,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,21 +0,0 @@
1
- import { MetricType } from '../types/field';
2
- export type SupportedPreAggregateMetricType = MetricType.SUM | MetricType.COUNT | MetricType.MIN | MetricType.MAX | MetricType.AVERAGE;
3
- export declare enum PreAggregateMetricRepresentationKind {
4
- DIRECT = "direct",
5
- DECOMPOSED = "decomposed",
6
- UNSUPPORTED = "unsupported"
7
- }
8
- export type PreAggregateMetricRepresentation = {
9
- kind: PreAggregateMetricRepresentationKind.DIRECT;
10
- metricType: MetricType.SUM | MetricType.MIN | MetricType.MAX;
11
- } | {
12
- kind: PreAggregateMetricRepresentationKind.DECOMPOSED;
13
- metricType: MetricType.AVERAGE;
14
- components: readonly ['sum', 'count'];
15
- } | {
16
- kind: PreAggregateMetricRepresentationKind.UNSUPPORTED;
17
- };
18
- export declare const supportedPreAggregateMetricTypes: SupportedPreAggregateMetricType[];
19
- export declare const getPreAggregateMetricRepresentation: (metricType: MetricType) => PreAggregateMetricRepresentation;
20
- export declare const isSupportedPreAggregateMetricType: (metricType: MetricType) => metricType is SupportedPreAggregateMetricType;
21
- //# sourceMappingURL=metricRepresentation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metricRepresentation.d.ts","sourceRoot":"","sources":["../../../src/preAggregates/metricRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,MAAM,MAAM,+BAA+B,GACrC,UAAU,CAAC,GAAG,GACd,UAAU,CAAC,KAAK,GAChB,UAAU,CAAC,GAAG,GACd,UAAU,CAAC,GAAG,GACd,UAAU,CAAC,OAAO,CAAC;AAEzB,oBAAY,oCAAoC;IAC5C,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC9B;AAED,MAAM,MAAM,gCAAgC,GACtC;IACI,IAAI,EAAE,oCAAoC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;CAChE,GACD;IACI,IAAI,EAAE,oCAAoC,CAAC,UAAU,CAAC;IACtD,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;IAC/B,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACzC,GACD;IACI,IAAI,EAAE,oCAAoC,CAAC,WAAW,CAAC;CAC1D,CAAC;AAER,eAAO,MAAM,gCAAgC,EAAE,+BAA+B,EAOzE,CAAC;AAEN,eAAO,MAAM,mCAAmC,GAC5C,YAAY,UAAU,KACvB,gCA2CF,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC1C,YAAY,UAAU,KACvB,UAAU,IAAI,+BAEmC,CAAC"}