@malloydata/malloy-tests 0.0.119-dev240118211537 → 0.0.119-dev240118215411
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.
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
const runtimes_1 = require("../../runtimes");
|
|
27
27
|
require("../../util/db-jest-matchers");
|
|
28
28
|
const util_1 = require("../../util");
|
|
29
|
+
const assert_1 = require("assert");
|
|
29
30
|
const runtimes = new runtimes_1.RuntimeList((0, util_1.databasesFromEnvironmentOr)(runtimes_1.allDatabases));
|
|
30
31
|
function modelText(databaseName) {
|
|
31
32
|
return `
|
|
@@ -310,6 +311,154 @@ describe.each(runtimes.runtimeList)('%s', (databaseName, runtime) => {
|
|
|
310
311
|
avg_a_year_built2: 1969,
|
|
311
312
|
});
|
|
312
313
|
});
|
|
314
|
+
describe('sql expr functions', () => {
|
|
315
|
+
it('sql_string', async () => {
|
|
316
|
+
await expect(`
|
|
317
|
+
##! experimental { sql_functions }
|
|
318
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
319
|
+
|
|
320
|
+
run: a -> {
|
|
321
|
+
group_by: string_1 is sql_string("UPPER(\${manufacturer})")
|
|
322
|
+
}
|
|
323
|
+
`).malloyResultMatches(expressionModel, {
|
|
324
|
+
string_1: 'AHRENS AIRCRAFT CORP.',
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
it('sql_number', async () => {
|
|
328
|
+
await expect(`
|
|
329
|
+
##! experimental { sql_functions }
|
|
330
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
331
|
+
|
|
332
|
+
run: a -> {
|
|
333
|
+
group_by: seats
|
|
334
|
+
group_by: number_1 is sql_number("\${seats} * 2")
|
|
335
|
+
}
|
|
336
|
+
`).malloyResultMatches(expressionModel, {
|
|
337
|
+
seats: 29,
|
|
338
|
+
number_1: 58,
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
it('sql_boolean', async () => {
|
|
342
|
+
await expect(`
|
|
343
|
+
##! experimental { sql_functions }
|
|
344
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
345
|
+
|
|
346
|
+
run: a -> {
|
|
347
|
+
group_by: boolean_1 is sql_boolean("\${seats} > 20")
|
|
348
|
+
group_by: boolean_2 is sql_boolean("\${engines} = 2")
|
|
349
|
+
}
|
|
350
|
+
`).malloyResultMatches(expressionModel, {
|
|
351
|
+
boolean_1: true,
|
|
352
|
+
boolean_2: false,
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
it('sql_date', async () => {
|
|
356
|
+
await expect(`
|
|
357
|
+
##! experimental { sql_functions }
|
|
358
|
+
source: a is ${databaseName}.table('malloytest.aircraft') extend { where: tail_num ? 'N110WL' }
|
|
359
|
+
|
|
360
|
+
run: a -> {
|
|
361
|
+
group_by: date_1 is sql_date("\${last_action_date}")
|
|
362
|
+
}
|
|
363
|
+
`).malloyResultMatches(expressionModel, {
|
|
364
|
+
date_1: new Date('2000-01-04T00:00:00.000Z'),
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
it('sql_timestamp', async () => {
|
|
368
|
+
await expect(`
|
|
369
|
+
##! experimental { sql_functions }
|
|
370
|
+
source: a is ${databaseName}.table('malloytest.aircraft') extend { where: tail_num ? 'N110WL' }
|
|
371
|
+
|
|
372
|
+
run: a -> {
|
|
373
|
+
group_by: timestamp_1 is sql_timestamp("\${last_action_date}")
|
|
374
|
+
}
|
|
375
|
+
`).malloyResultMatches(expressionModel, {
|
|
376
|
+
timestamp_1: new Date('2000-01-04T00:00:00.000Z'),
|
|
377
|
+
});
|
|
378
|
+
});
|
|
379
|
+
it('with ${TABLE}.field', async () => {
|
|
380
|
+
await expect(`
|
|
381
|
+
##! experimental { sql_functions }
|
|
382
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
383
|
+
|
|
384
|
+
run: a -> {
|
|
385
|
+
group_by: string_1 is sql_string("UPPER(\${TABLE}.manufacturer)")
|
|
386
|
+
}
|
|
387
|
+
`).malloyResultMatches(expressionModel, {
|
|
388
|
+
string_1: 'AHRENS AIRCRAFT CORP.',
|
|
389
|
+
});
|
|
390
|
+
});
|
|
391
|
+
it('with ${field}', async () => {
|
|
392
|
+
await expect(`
|
|
393
|
+
##! experimental { sql_functions }
|
|
394
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
395
|
+
|
|
396
|
+
run: a -> {
|
|
397
|
+
group_by: string_1 is sql_string("UPPER(\${manufacturer})")
|
|
398
|
+
}
|
|
399
|
+
`).malloyResultMatches(expressionModel, {
|
|
400
|
+
string_1: 'AHRENS AIRCRAFT CORP.',
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
it('sql_functions - experimental feature is ignored', async () => {
|
|
404
|
+
const query = await expressionModel.loadQuery(`
|
|
405
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
406
|
+
|
|
407
|
+
run: a -> {
|
|
408
|
+
group_by: manufacturer
|
|
409
|
+
group_by: string_1 is sql_string("UPPER(\${manufacturer})")
|
|
410
|
+
}
|
|
411
|
+
`);
|
|
412
|
+
const runResult = await query.run();
|
|
413
|
+
const dataResult = runResult.data.toObject();
|
|
414
|
+
expect(dataResult.length).toEqual(1);
|
|
415
|
+
const firstRow = dataResult.at(0);
|
|
416
|
+
if (firstRow !== undefined) {
|
|
417
|
+
expect(firstRow['manufacturer']).toEqual('AHRENS AIRCRAFT CORP.');
|
|
418
|
+
expect('string_1' in firstRow).toBeFalsy();
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
(0, assert_1.fail)('exepected a single row, but found none');
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
describe('[not yet supported]', () => {
|
|
425
|
+
// See ${...} documentation for lookml here for guidance on remaining work:
|
|
426
|
+
// https://cloud.google.com/looker/docs/reference/param-field-sql#sql_for_dimensions
|
|
427
|
+
it('${view_name.dimension_name} - one path', async () => {
|
|
428
|
+
const query = await expressionModel.loadQuery(`
|
|
429
|
+
##! experimental { sql_functions }
|
|
430
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
431
|
+
|
|
432
|
+
run: a -> {
|
|
433
|
+
group_by: string_1 is sql_string("UPPER(\${a.manufacturer})")
|
|
434
|
+
}
|
|
435
|
+
`);
|
|
436
|
+
await expect(query.run()).rejects.toThrow("'.' paths are not yet supported in sql interpolations, found ${a.manufacturer}");
|
|
437
|
+
});
|
|
438
|
+
it('${view_name.dimension_name} - multiple paths', async () => {
|
|
439
|
+
const query = await expressionModel.loadQuery(`
|
|
440
|
+
##! experimental { sql_functions }
|
|
441
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
442
|
+
|
|
443
|
+
run: a -> {
|
|
444
|
+
group_by: number_1 is sql_number("\${a.seats} * \${a.seats} + \${a.total_seats}")
|
|
445
|
+
}
|
|
446
|
+
`);
|
|
447
|
+
await expect(query.run()).rejects.toThrow("'.' paths are not yet supported in sql interpolations, found [${a.seats}, ${a.seats}, ${a.total_seats}]");
|
|
448
|
+
});
|
|
449
|
+
it('${view_name.SQL_TABLE_NAME}', async () => {
|
|
450
|
+
const query = await expressionModel.loadQuery(`
|
|
451
|
+
##! experimental { sql_functions }
|
|
452
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
453
|
+
|
|
454
|
+
run: a -> {
|
|
455
|
+
group_by: number_1 is sql_number("\${a.SQL_TABLE_NAME}.seats")
|
|
456
|
+
}
|
|
457
|
+
`);
|
|
458
|
+
await expect(query.run()).rejects.toThrow("'.' paths are not yet supported in sql interpolations, found ${a.SQL_TABLE_NAME}");
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
});
|
|
313
462
|
(0, util_1.testIf)(runtime.supportsNesting)('query with aliasname used twice', async () => {
|
|
314
463
|
await expect(`
|
|
315
464
|
run: aircraft->{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.spec.js","sourceRoot":"","sources":["../../../src/databases/all/expr.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expr.spec.js","sourceRoot":"","sources":["../../../src/databases/all/expr.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@jest/globals": "^29.4.3",
|
|
21
|
-
"@malloydata/db-bigquery": "^0.0.119-
|
|
22
|
-
"@malloydata/db-duckdb": "^0.0.119-
|
|
23
|
-
"@malloydata/db-postgres": "^0.0.119-
|
|
24
|
-
"@malloydata/malloy": "^0.0.119-
|
|
25
|
-
"@malloydata/render": "^0.0.119-
|
|
21
|
+
"@malloydata/db-bigquery": "^0.0.119-dev240118215411",
|
|
22
|
+
"@malloydata/db-duckdb": "^0.0.119-dev240118215411",
|
|
23
|
+
"@malloydata/db-postgres": "^0.0.119-dev240118215411",
|
|
24
|
+
"@malloydata/malloy": "^0.0.119-dev240118215411",
|
|
25
|
+
"@malloydata/render": "^0.0.119-dev240118215411",
|
|
26
26
|
"jsdom": "^22.1.0",
|
|
27
27
|
"luxon": "^2.4.0",
|
|
28
28
|
"madge": "^6.0.0"
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"@types/jsdom": "^21.1.1",
|
|
32
32
|
"@types/luxon": "^2.4.0"
|
|
33
33
|
},
|
|
34
|
-
"version": "0.0.119-
|
|
34
|
+
"version": "0.0.119-dev240118215411"
|
|
35
35
|
}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import {RuntimeList, allDatabases} from '../../runtimes';
|
|
26
26
|
import '../../util/db-jest-matchers';
|
|
27
27
|
import {databasesFromEnvironmentOr, mkSqlEqWith, testIf} from '../../util';
|
|
28
|
+
import {fail} from 'assert';
|
|
28
29
|
|
|
29
30
|
const runtimes = new RuntimeList(databasesFromEnvironmentOr(allDatabases));
|
|
30
31
|
|
|
@@ -340,6 +341,179 @@ describe.each(runtimes.runtimeList)('%s', (databaseName, runtime) => {
|
|
|
340
341
|
});
|
|
341
342
|
});
|
|
342
343
|
|
|
344
|
+
describe('sql expr functions', () => {
|
|
345
|
+
it('sql_string', async () => {
|
|
346
|
+
await expect(`
|
|
347
|
+
##! experimental { sql_functions }
|
|
348
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
349
|
+
|
|
350
|
+
run: a -> {
|
|
351
|
+
group_by: string_1 is sql_string("UPPER(\${manufacturer})")
|
|
352
|
+
}
|
|
353
|
+
`).malloyResultMatches(expressionModel, {
|
|
354
|
+
string_1: 'AHRENS AIRCRAFT CORP.',
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
it('sql_number', async () => {
|
|
359
|
+
await expect(`
|
|
360
|
+
##! experimental { sql_functions }
|
|
361
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
362
|
+
|
|
363
|
+
run: a -> {
|
|
364
|
+
group_by: seats
|
|
365
|
+
group_by: number_1 is sql_number("\${seats} * 2")
|
|
366
|
+
}
|
|
367
|
+
`).malloyResultMatches(expressionModel, {
|
|
368
|
+
seats: 29,
|
|
369
|
+
number_1: 58,
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
it('sql_boolean', async () => {
|
|
374
|
+
await expect(`
|
|
375
|
+
##! experimental { sql_functions }
|
|
376
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
377
|
+
|
|
378
|
+
run: a -> {
|
|
379
|
+
group_by: boolean_1 is sql_boolean("\${seats} > 20")
|
|
380
|
+
group_by: boolean_2 is sql_boolean("\${engines} = 2")
|
|
381
|
+
}
|
|
382
|
+
`).malloyResultMatches(expressionModel, {
|
|
383
|
+
boolean_1: true,
|
|
384
|
+
boolean_2: false,
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
it('sql_date', async () => {
|
|
389
|
+
await expect(`
|
|
390
|
+
##! experimental { sql_functions }
|
|
391
|
+
source: a is ${databaseName}.table('malloytest.aircraft') extend { where: tail_num ? 'N110WL' }
|
|
392
|
+
|
|
393
|
+
run: a -> {
|
|
394
|
+
group_by: date_1 is sql_date("\${last_action_date}")
|
|
395
|
+
}
|
|
396
|
+
`).malloyResultMatches(expressionModel, {
|
|
397
|
+
date_1: new Date('2000-01-04T00:00:00.000Z'),
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
it('sql_timestamp', async () => {
|
|
402
|
+
await expect(`
|
|
403
|
+
##! experimental { sql_functions }
|
|
404
|
+
source: a is ${databaseName}.table('malloytest.aircraft') extend { where: tail_num ? 'N110WL' }
|
|
405
|
+
|
|
406
|
+
run: a -> {
|
|
407
|
+
group_by: timestamp_1 is sql_timestamp("\${last_action_date}")
|
|
408
|
+
}
|
|
409
|
+
`).malloyResultMatches(expressionModel, {
|
|
410
|
+
timestamp_1: new Date('2000-01-04T00:00:00.000Z'),
|
|
411
|
+
});
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
it('with ${TABLE}.field', async () => {
|
|
415
|
+
await expect(`
|
|
416
|
+
##! experimental { sql_functions }
|
|
417
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
418
|
+
|
|
419
|
+
run: a -> {
|
|
420
|
+
group_by: string_1 is sql_string("UPPER(\${TABLE}.manufacturer)")
|
|
421
|
+
}
|
|
422
|
+
`).malloyResultMatches(expressionModel, {
|
|
423
|
+
string_1: 'AHRENS AIRCRAFT CORP.',
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
it('with ${field}', async () => {
|
|
428
|
+
await expect(`
|
|
429
|
+
##! experimental { sql_functions }
|
|
430
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
431
|
+
|
|
432
|
+
run: a -> {
|
|
433
|
+
group_by: string_1 is sql_string("UPPER(\${manufacturer})")
|
|
434
|
+
}
|
|
435
|
+
`).malloyResultMatches(expressionModel, {
|
|
436
|
+
string_1: 'AHRENS AIRCRAFT CORP.',
|
|
437
|
+
});
|
|
438
|
+
});
|
|
439
|
+
|
|
440
|
+
it('sql_functions - experimental feature is ignored', async () => {
|
|
441
|
+
const query = await expressionModel.loadQuery(
|
|
442
|
+
`
|
|
443
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
444
|
+
|
|
445
|
+
run: a -> {
|
|
446
|
+
group_by: manufacturer
|
|
447
|
+
group_by: string_1 is sql_string("UPPER(\${manufacturer})")
|
|
448
|
+
}
|
|
449
|
+
`
|
|
450
|
+
);
|
|
451
|
+
|
|
452
|
+
const runResult = await query.run();
|
|
453
|
+
const dataResult = runResult.data.toObject();
|
|
454
|
+
expect(dataResult.length).toEqual(1);
|
|
455
|
+
const firstRow = dataResult.at(0);
|
|
456
|
+
if (firstRow !== undefined) {
|
|
457
|
+
expect(firstRow['manufacturer']).toEqual('AHRENS AIRCRAFT CORP.');
|
|
458
|
+
expect('string_1' in firstRow).toBeFalsy();
|
|
459
|
+
} else {
|
|
460
|
+
fail('exepected a single row, but found none');
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
describe('[not yet supported]', () => {
|
|
465
|
+
// See ${...} documentation for lookml here for guidance on remaining work:
|
|
466
|
+
// https://cloud.google.com/looker/docs/reference/param-field-sql#sql_for_dimensions
|
|
467
|
+
it('${view_name.dimension_name} - one path', async () => {
|
|
468
|
+
const query = await expressionModel.loadQuery(
|
|
469
|
+
`
|
|
470
|
+
##! experimental { sql_functions }
|
|
471
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
472
|
+
|
|
473
|
+
run: a -> {
|
|
474
|
+
group_by: string_1 is sql_string("UPPER(\${a.manufacturer})")
|
|
475
|
+
}
|
|
476
|
+
`
|
|
477
|
+
);
|
|
478
|
+
await expect(query.run()).rejects.toThrow(
|
|
479
|
+
"'.' paths are not yet supported in sql interpolations, found ${a.manufacturer}"
|
|
480
|
+
);
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
it('${view_name.dimension_name} - multiple paths', async () => {
|
|
484
|
+
const query = await expressionModel.loadQuery(
|
|
485
|
+
`
|
|
486
|
+
##! experimental { sql_functions }
|
|
487
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
488
|
+
|
|
489
|
+
run: a -> {
|
|
490
|
+
group_by: number_1 is sql_number("\${a.seats} * \${a.seats} + \${a.total_seats}")
|
|
491
|
+
}
|
|
492
|
+
`
|
|
493
|
+
);
|
|
494
|
+
await expect(query.run()).rejects.toThrow(
|
|
495
|
+
"'.' paths are not yet supported in sql interpolations, found [${a.seats}, ${a.seats}, ${a.total_seats}]"
|
|
496
|
+
);
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
it('${view_name.SQL_TABLE_NAME}', async () => {
|
|
500
|
+
const query = await expressionModel.loadQuery(
|
|
501
|
+
`
|
|
502
|
+
##! experimental { sql_functions }
|
|
503
|
+
source: a is ${databaseName}.table('malloytest.aircraft_models') extend { where: aircraft_model_code ? '0270202' }
|
|
504
|
+
|
|
505
|
+
run: a -> {
|
|
506
|
+
group_by: number_1 is sql_number("\${a.SQL_TABLE_NAME}.seats")
|
|
507
|
+
}
|
|
508
|
+
`
|
|
509
|
+
);
|
|
510
|
+
await expect(query.run()).rejects.toThrow(
|
|
511
|
+
"'.' paths are not yet supported in sql interpolations, found ${a.SQL_TABLE_NAME}"
|
|
512
|
+
);
|
|
513
|
+
});
|
|
514
|
+
});
|
|
515
|
+
});
|
|
516
|
+
|
|
343
517
|
testIf(runtime.supportsNesting)(
|
|
344
518
|
'query with aliasname used twice',
|
|
345
519
|
async () => {
|