@lightdash/common 0.2439.2 → 0.2440.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.
@@ -169,6 +169,15 @@ export declare class TableCalculationFunctionCompiler {
169
169
  * @returns SQL with window function to retrieve value from specified column
170
170
  */
171
171
  private compilePivotIndex;
172
+ /**
173
+ * Compiles a pivot_where function call to return a value from the first pivot column matching a condition.
174
+ * Evaluates the select expression for each pivot column and returns the value expression
175
+ * from the first column where the condition is true.
176
+ * @param selectExpression - Boolean expression to evaluate for each pivot column
177
+ * @param valueExpression - Expression to return when condition matches
178
+ * @returns SQL with conditional aggregation to find first matching pivot column
179
+ */
180
+ private compilePivotWhere;
172
181
  }
173
182
  export {};
174
183
  //# sourceMappingURL=tableCalculationFunctions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalculationFunctions.d.ts","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableCalculationFunctions.d.ts","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,44 @@ export function parseTableCalculationFunctions(sql) {
93
93
  });
94
94
  match = pivotIndexRegex.exec(sql);
95
95
  }
96
+ // Parse pivot_where function calls using a simpler approach
97
+ // We'll find the function start, then carefully parse the two arguments
98
+ const pivotWhereRegex = /pivot_where\s*\(/gi;
99
+ let pivotMatch = pivotWhereRegex.exec(sql);
100
+ while (pivotMatch !== null) {
101
+ const startIdx = pivotMatch.index + pivotMatch[0].length;
102
+ let parenCount = 1;
103
+ let commaIdx = -1;
104
+ let endIdx = -1;
105
+ // Find the comma separating the two arguments and the closing parenthesis
106
+ for (let i = startIdx; i < sql.length; i += 1) {
107
+ if (sql[i] === '(') {
108
+ parenCount += 1;
109
+ }
110
+ else if (sql[i] === ')') {
111
+ parenCount -= 1;
112
+ if (parenCount === 0) {
113
+ endIdx = i;
114
+ break;
115
+ }
116
+ }
117
+ else if (sql[i] === ',' && parenCount === 1 && commaIdx === -1) {
118
+ commaIdx = i;
119
+ }
120
+ }
121
+ if (commaIdx !== -1 && endIdx !== -1) {
122
+ const selectExpression = sql.slice(startIdx, commaIdx).trim();
123
+ const valueExpression = sql.slice(commaIdx + 1, endIdx).trim();
124
+ const rawSql = sql.slice(pivotMatch.index, endIdx + 1);
125
+ functions.push({
126
+ type: TableCalculationFunctionType.PIVOT_WHERE,
127
+ selectExpression,
128
+ valueExpression,
129
+ rawSql,
130
+ });
131
+ }
132
+ pivotMatch = pivotWhereRegex.exec(sql);
133
+ }
96
134
  // Parse row function calls
97
135
  const rowRegex = /row\s*\(\s*\)/gi;
98
136
  match = rowRegex.exec(sql);
@@ -218,6 +256,12 @@ export class TableCalculationFunctionCompiler {
218
256
  processedSql = processedSql.replace(func.rawSql, compiled);
219
257
  break;
220
258
  }
259
+ case TableCalculationFunctionType.PIVOT_WHERE: {
260
+ const pivotWhereFunc = func;
261
+ const compiled = this.compilePivotWhere(pivotWhereFunc.selectExpression, pivotWhereFunc.valueExpression);
262
+ processedSql = processedSql.replace(func.rawSql, compiled);
263
+ break;
264
+ }
221
265
  default:
222
266
  // Not implemented yet
223
267
  break;
@@ -274,5 +318,19 @@ export class TableCalculationFunctionCompiler {
274
318
  // The window partitions by row_index to group all columns of the same row
275
319
  return `MAX(CASE WHEN ${q}column_index${q} = ${pivotIndex} THEN ${expression} ELSE NULL END) OVER (PARTITION BY ${q}row_index${q})`;
276
320
  }
321
+ /**
322
+ * Compiles a pivot_where function call to return a value from the first pivot column matching a condition.
323
+ * Evaluates the select expression for each pivot column and returns the value expression
324
+ * from the first column where the condition is true.
325
+ * @param selectExpression - Boolean expression to evaluate for each pivot column
326
+ * @param valueExpression - Expression to return when condition matches
327
+ * @returns SQL with conditional aggregation to find first matching pivot column
328
+ */
329
+ compilePivotWhere(selectExpression, valueExpression) {
330
+ const q = this.warehouseSqlBuilder.getFieldQuoteChar();
331
+ // Use MIN with column_index to get the first matching column
332
+ // Then use that column_index to get the value
333
+ return `MAX(CASE WHEN ${q}column_index${q} = (SELECT MIN(${q}column_index${q}) FROM (SELECT ${q}column_index${q}, ${selectExpression} AS condition FROM DUAL) WHERE condition = TRUE) THEN ${valueExpression} ELSE NULL END) OVER (PARTITION BY ${q}row_index${q})`;
334
+ }
277
335
  }
278
336
  //# sourceMappingURL=tableCalculationFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalculationFunctions.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableCalculationFunctions.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { parseTableCalculationFunctions, PIVOT_FUNCTIONS, ROW_FUNCTIONS, TableCalculationFunctionType, } from './tableCalculationFunctions';
1
+ import { parseTableCalculationFunctions, PIVOT_FUNCTIONS, ROW_FUNCTIONS, TableCalculationFunctionCompiler, TableCalculationFunctionType, } from './tableCalculationFunctions';
2
2
  describe('tableCalculationFunctions', () => {
3
3
  describe('parseTableCalculationFunctions', () => {
4
4
  describe('pivot_offset parsing', () => {
@@ -207,6 +207,194 @@ describe('tableCalculationFunctions', () => {
207
207
  expect(result[0].type).toBe(TableCalculationFunctionType.OFFSET);
208
208
  });
209
209
  });
210
+ describe('pivot_where parsing', () => {
211
+ it('should parse simple pivot_where', () => {
212
+ const sql = 'pivot_where(status = "completed", revenue)';
213
+ const result = parseTableCalculationFunctions(sql);
214
+ expect(result).toHaveLength(1);
215
+ expect(result[0].type).toBe(TableCalculationFunctionType.PIVOT_WHERE);
216
+ if (result[0].type === TableCalculationFunctionType.PIVOT_WHERE) {
217
+ expect(result[0].selectExpression).toBe('status = "completed"');
218
+ expect(result[0].valueExpression).toBe('revenue');
219
+ expect(result[0].rawSql).toBe('pivot_where(status = "completed", revenue)');
220
+ }
221
+ });
222
+ it('should parse pivot_where with complex condition', () => {
223
+ const sql = 'pivot_where(revenue > 1000 AND orders > 10, status)';
224
+ const result = parseTableCalculationFunctions(sql);
225
+ expect(result).toHaveLength(1);
226
+ expect(result[0].type).toBe(TableCalculationFunctionType.PIVOT_WHERE);
227
+ if (result[0].type === TableCalculationFunctionType.PIVOT_WHERE) {
228
+ expect(result[0].selectExpression).toBe('revenue > 1000 AND orders > 10');
229
+ expect(result[0].valueExpression).toBe('status');
230
+ }
231
+ });
232
+ it('should parse pivot_where with nested function calls', () => {
233
+ const sql = 'pivot_where(LOWER(status) = "active", ROUND(revenue, 2))';
234
+ const result = parseTableCalculationFunctions(sql);
235
+ expect(result).toHaveLength(1);
236
+ expect(result[0].type).toBe(TableCalculationFunctionType.PIVOT_WHERE);
237
+ if (result[0].type === TableCalculationFunctionType.PIVOT_WHERE) {
238
+ expect(result[0].selectExpression).toBe('LOWER(status) = "active"');
239
+ expect(result[0].valueExpression).toBe('ROUND(revenue, 2)');
240
+ }
241
+ });
242
+ it('should parse multiple pivot_where calls', () => {
243
+ const sql = 'pivot_where(status = "active", revenue) + pivot_where(status = "pending", revenue)';
244
+ const result = parseTableCalculationFunctions(sql);
245
+ expect(result).toHaveLength(2);
246
+ expect(result[0].type).toBe(TableCalculationFunctionType.PIVOT_WHERE);
247
+ expect(result[1].type).toBe(TableCalculationFunctionType.PIVOT_WHERE);
248
+ });
249
+ it('should handle whitespace in pivot_where', () => {
250
+ const sql = 'pivot_where( status = "active" , revenue )';
251
+ const result = parseTableCalculationFunctions(sql);
252
+ expect(result).toHaveLength(1);
253
+ expect(result[0].type).toBe(TableCalculationFunctionType.PIVOT_WHERE);
254
+ if (result[0].type === TableCalculationFunctionType.PIVOT_WHERE) {
255
+ expect(result[0].selectExpression).toBe('status = "active"');
256
+ expect(result[0].valueExpression).toBe('revenue');
257
+ }
258
+ });
259
+ });
260
+ });
261
+ describe('TableCalculationFunctionCompiler', () => {
262
+ describe('compileFunctions', () => {
263
+ let compiler;
264
+ let mockWarehouseSqlBuilder;
265
+ beforeEach(() => {
266
+ mockWarehouseSqlBuilder = {
267
+ getFieldQuoteChar: jest.fn().mockReturnValue('"'),
268
+ };
269
+ compiler = new TableCalculationFunctionCompiler(mockWarehouseSqlBuilder);
270
+ });
271
+ describe('pivot_offset compilation', () => {
272
+ it('should compile pivot_offset with positive offset', () => {
273
+ const sql = 'pivot_offset(revenue, 1)';
274
+ const functions = parseTableCalculationFunctions(sql);
275
+ const compiled = compiler.compileFunctions(sql, functions);
276
+ const expectedSql = 'CASE WHEN LEAD("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (1) THEN LEAD(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END';
277
+ expect(compiled).toBe(expectedSql);
278
+ });
279
+ it('should compile pivot_offset with negative offset', () => {
280
+ const sql = 'pivot_offset(revenue, -1)';
281
+ const functions = parseTableCalculationFunctions(sql);
282
+ const compiled = compiler.compileFunctions(sql, functions);
283
+ const expectedSql = 'CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END';
284
+ expect(compiled).toBe(expectedSql);
285
+ });
286
+ it('should compile pivot_offset with zero offset', () => {
287
+ const sql = 'pivot_offset(revenue, 0)';
288
+ const functions = parseTableCalculationFunctions(sql);
289
+ const compiled = compiler.compileFunctions(sql, functions);
290
+ const expectedSql = 'revenue';
291
+ expect(compiled).toBe(expectedSql);
292
+ });
293
+ it('should compile expression with pivot_offset', () => {
294
+ const sql = 'revenue - pivot_offset(revenue, -1)';
295
+ const functions = parseTableCalculationFunctions(sql);
296
+ const compiled = compiler.compileFunctions(sql, functions);
297
+ const expectedSql = 'revenue - CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END';
298
+ expect(compiled).toBe(expectedSql);
299
+ });
300
+ });
301
+ describe('pivot_column compilation', () => {
302
+ it('should compile pivot_column to column_index', () => {
303
+ const sql = 'pivot_column()';
304
+ const functions = parseTableCalculationFunctions(sql);
305
+ const compiled = compiler.compileFunctions(sql, functions);
306
+ const expectedSql = '"column_index"';
307
+ expect(compiled).toBe(expectedSql);
308
+ });
309
+ it('should compile expression with pivot_column', () => {
310
+ const sql = 'pivot_column() + 1';
311
+ const functions = parseTableCalculationFunctions(sql);
312
+ const compiled = compiler.compileFunctions(sql, functions);
313
+ const expectedSql = '"column_index" + 1';
314
+ expect(compiled).toBe(expectedSql);
315
+ });
316
+ });
317
+ describe('pivot_index compilation', () => {
318
+ it('should compile pivot_index to get value from specific column', () => {
319
+ const sql = 'pivot_index(revenue, 0)';
320
+ const functions = parseTableCalculationFunctions(sql);
321
+ const compiled = compiler.compileFunctions(sql, functions);
322
+ const expectedSql = 'MAX(CASE WHEN "column_index" = 0 THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
323
+ expect(compiled).toBe(expectedSql);
324
+ });
325
+ it('should compile expression with pivot_index', () => {
326
+ const sql = 'revenue / pivot_index(revenue, 0)';
327
+ const functions = parseTableCalculationFunctions(sql);
328
+ const compiled = compiler.compileFunctions(sql, functions);
329
+ const expectedSql = 'revenue / MAX(CASE WHEN "column_index" = 0 THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
330
+ expect(compiled).toBe(expectedSql);
331
+ });
332
+ });
333
+ describe('pivot_offset_list compilation', () => {
334
+ it('should pass through pivot_offset_list as-is (not yet implemented)', () => {
335
+ const sql = 'pivot_offset_list(revenue, -2, 3)';
336
+ const functions = parseTableCalculationFunctions(sql);
337
+ const compiled = compiler.compileFunctions(sql, functions);
338
+ // pivot_offset_list is not yet parsed/compiled, so the SQL is returned unchanged
339
+ expect(compiled).toBe(sql);
340
+ });
341
+ });
342
+ describe('pivot_row compilation', () => {
343
+ it('should pass through pivot_row as-is (not yet implemented)', () => {
344
+ const sql = 'pivot_row(revenue)';
345
+ const functions = parseTableCalculationFunctions(sql);
346
+ const compiled = compiler.compileFunctions(sql, functions);
347
+ // pivot_row is not yet parsed/compiled, so the SQL is returned unchanged
348
+ expect(compiled).toBe(sql);
349
+ });
350
+ });
351
+ describe('pivot_where compilation', () => {
352
+ it('should compile simple pivot_where to SQL', () => {
353
+ const sql = 'pivot_where(status = "active", revenue)';
354
+ const functions = parseTableCalculationFunctions(sql);
355
+ const compiled = compiler.compileFunctions(sql, functions);
356
+ const expectedSql = 'MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "active" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
357
+ expect(compiled).toBe(expectedSql);
358
+ });
359
+ it('should replace pivot_where with compiled SQL', () => {
360
+ const sql = 'pivot_where(status = "completed", revenue) + 100';
361
+ const functions = parseTableCalculationFunctions(sql);
362
+ const compiled = compiler.compileFunctions(sql, functions);
363
+ const expectedSql = 'MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "completed" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index") + 100';
364
+ expect(compiled).toBe(expectedSql);
365
+ });
366
+ it('should compile multiple pivot_where calls', () => {
367
+ const sql = 'pivot_where(status = "active", revenue) + pivot_where(status = "pending", orders)';
368
+ const functions = parseTableCalculationFunctions(sql);
369
+ const compiled = compiler.compileFunctions(sql, functions);
370
+ const expectedSql = 'MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "active" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index") + MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "pending" AS condition FROM DUAL) WHERE condition = TRUE) THEN orders ELSE NULL END) OVER (PARTITION BY "row_index")';
371
+ expect(compiled).toBe(expectedSql);
372
+ });
373
+ it('should handle pivot_where with complex expressions', () => {
374
+ const sql = 'COALESCE(pivot_where(revenue > 1000, status), "none")';
375
+ const functions = parseTableCalculationFunctions(sql);
376
+ const compiled = compiler.compileFunctions(sql, functions);
377
+ const expectedSql = 'COALESCE(MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", revenue > 1000 AS condition FROM DUAL) WHERE condition = TRUE) THEN status ELSE NULL END) OVER (PARTITION BY "row_index"), "none")';
378
+ expect(compiled).toBe(expectedSql);
379
+ });
380
+ });
381
+ describe('mixed function compilation', () => {
382
+ it('should compile multiple different pivot functions together', () => {
383
+ const sql = 'pivot_column() * pivot_offset(revenue, -1) + pivot_index(revenue, 0)';
384
+ const functions = parseTableCalculationFunctions(sql);
385
+ const compiled = compiler.compileFunctions(sql, functions);
386
+ const expectedSql = '"column_index" * CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END + MAX(CASE WHEN "column_index" = 0 THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
387
+ expect(compiled).toBe(expectedSql);
388
+ });
389
+ it('should handle complex nested expressions', () => {
390
+ const sql = 'CASE WHEN pivot_column() = 0 THEN pivot_where(status = "active", revenue) ELSE pivot_offset(revenue, -1) END';
391
+ const functions = parseTableCalculationFunctions(sql);
392
+ const compiled = compiler.compileFunctions(sql, functions);
393
+ const expectedSql = 'CASE WHEN "column_index" = 0 THEN MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "active" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index") ELSE CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END END';
394
+ expect(compiled).toBe(expectedSql);
395
+ });
396
+ });
397
+ });
210
398
  });
211
399
  describe('ROW_FUNCTIONS constant', () => {
212
400
  it('should contain all row function types', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalculationFunctions.test.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableCalculationFunctions.test.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.test.ts"],"names":[],"mappings":"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"}