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