prostgles-server 4.2.544 → 4.2.546
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/DboBuilder/DboBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions/Functions.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions/Functions.js +19 -376
- package/dist/DboBuilder/QueryBuilder/Functions/Functions.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions/HASHING_FUNCTIONS.d.ts +3 -0
- package/dist/DboBuilder/QueryBuilder/Functions/HASHING_FUNCTIONS.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/HASHING_FUNCTIONS.js +107 -0
- package/dist/DboBuilder/QueryBuilder/Functions/HASHING_FUNCTIONS.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/TEXT_FUNCTIONS.d.ts +3 -0
- package/dist/DboBuilder/QueryBuilder/Functions/TEXT_FUNCTIONS.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/TEXT_FUNCTIONS.js +276 -0
- package/dist/DboBuilder/QueryBuilder/Functions/TEXT_FUNCTIONS.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/utils.d.ts +3 -0
- package/dist/DboBuilder/QueryBuilder/Functions/utils.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/Functions/utils.js +6 -0
- package/dist/DboBuilder/QueryBuilder/Functions/utils.js.map +1 -0
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js +5 -5
- package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
- package/dist/DboBuilder/runSql/runSQL.js +1 -1
- package/dist/DboBuilder/runSql/runSQL.js.map +1 -1
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/Logging.d.ts +1 -1
- package/dist/Logging.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +0 -1
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.d.ts +7 -2
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.d.ts.map +1 -1
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.js +21 -16
- package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.js.map +1 -1
- package/dist/PubSubManager/SyncReplication/syncData.d.ts.map +1 -1
- package/dist/PubSubManager/SyncReplication/syncData.js +16 -14
- package/dist/PubSubManager/SyncReplication/syncData.js.map +1 -1
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/runClientRequest.js +1 -1
- package/dist/runClientRequest.js.map +1 -1
- package/lib/DboBuilder/DboBuilder.ts +1 -1
- package/lib/DboBuilder/QueryBuilder/Functions/Functions.ts +142 -557
- package/lib/DboBuilder/QueryBuilder/Functions/HASHING_FUNCTIONS.ts +120 -0
- package/lib/DboBuilder/QueryBuilder/Functions/TEXT_FUNCTIONS.ts +302 -0
- package/lib/DboBuilder/QueryBuilder/Functions/utils.ts +3 -0
- package/lib/DboBuilder/TableHandler/update.ts +1 -1
- package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +4 -4
- package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +1 -1
- package/lib/DboBuilder/runSql/runSQL.ts +1 -1
- package/lib/FileManager/FileManager.ts +1 -1
- package/lib/Logging.ts +1 -1
- package/lib/PubSubManager/PubSubManager.ts +0 -1
- package/lib/PubSubManager/SyncReplication/getSyncUtilFunctions.ts +28 -19
- package/lib/PubSubManager/SyncReplication/syncData.ts +16 -14
- package/lib/TableConfig/TableConfig.ts +1 -1
- package/lib/runClientRequest.ts +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DboBuilder.js","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DboBuilder.js","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Functions.d.ts","sourceRoot":"","sources":["../../../../lib/DboBuilder/QueryBuilder/Functions/Functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Functions.d.ts","sourceRoot":"","sources":["../../../../lib/DboBuilder/QueryBuilder/Functions/Functions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQ3E,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IAGH;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;IAC9C;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,MAAM,EAAE,CAAC;IAC3C;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC;IAE3C,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC,CAAC;AAiaF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,YAAY,EAwTnC,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FUNCTIONS = void 0;
|
|
4
|
-
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
-
const parseFieldFilter_1 = require("../../ViewHandler/parseFieldFilter");
|
|
6
4
|
const pgPromise = require("pg-promise");
|
|
5
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
7
6
|
const asNameAlias_1 = require("../../../utils/asNameAlias");
|
|
7
|
+
const HASHING_FUNCTIONS_1 = require("./HASHING_FUNCTIONS");
|
|
8
|
+
const TEXT_FUNCTIONS_1 = require("./TEXT_FUNCTIONS");
|
|
9
|
+
const utils_1 = require("./utils");
|
|
8
10
|
const pgp = pgPromise();
|
|
9
|
-
const MAX_COL_NUM = 1600;
|
|
10
11
|
const asValue = (v, castAs = "") => pgp.as.format("$1" + castAs, [v]);
|
|
11
12
|
const parseUnix = (colName, tableAlias, allColumns, opts) => {
|
|
12
13
|
let tz = "";
|
|
@@ -363,175 +364,11 @@ PostGIS_Funcs = PostGIS_Funcs.concat(["ST_Length", "ST_X", "ST_Y", "ST_Z"].map((
|
|
|
363
364
|
* Each function expects a column at the very least
|
|
364
365
|
*/
|
|
365
366
|
exports.FUNCTIONS = [
|
|
366
|
-
|
|
367
|
-
{
|
|
368
|
-
name: "$md5_multi",
|
|
369
|
-
description: ` :[...column_names] -> md5 hash of the column content`,
|
|
370
|
-
type: "function",
|
|
371
|
-
singleColArg: false,
|
|
372
|
-
numArgs: MAX_COL_NUM,
|
|
373
|
-
getFields: (args) => args,
|
|
374
|
-
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
375
|
-
const q = pgp.as.format("md5(" +
|
|
376
|
-
args
|
|
377
|
-
.map((fname) => "COALESCE( " + (0, asNameAlias_1.asNameAlias)(fname, tableAlias) + "::text, '' )")
|
|
378
|
-
.join(" || ") +
|
|
379
|
-
")");
|
|
380
|
-
return q;
|
|
381
|
-
},
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
name: "$md5_multi_agg",
|
|
385
|
-
description: ` :[...column_names] -> md5 hash of the string aggregation of column content`,
|
|
386
|
-
type: "aggregation",
|
|
387
|
-
singleColArg: false,
|
|
388
|
-
numArgs: MAX_COL_NUM,
|
|
389
|
-
getFields: (args) => args,
|
|
390
|
-
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
391
|
-
const q = pgp.as.format("md5(string_agg(" +
|
|
392
|
-
args
|
|
393
|
-
.map((fname) => "COALESCE( " + (0, asNameAlias_1.asNameAlias)(fname, tableAlias) + "::text, '' )")
|
|
394
|
-
.join(" || ") +
|
|
395
|
-
", ','))");
|
|
396
|
-
return q;
|
|
397
|
-
},
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
name: "$sha256_multi",
|
|
401
|
-
description: ` :[...column_names] -> sha256 hash of the of column content`,
|
|
402
|
-
type: "function",
|
|
403
|
-
singleColArg: false,
|
|
404
|
-
numArgs: MAX_COL_NUM,
|
|
405
|
-
getFields: (args) => args,
|
|
406
|
-
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
407
|
-
const q = pgp.as.format("encode(sha256((" +
|
|
408
|
-
args
|
|
409
|
-
.map((fname) => "COALESCE( " + (0, asNameAlias_1.asNameAlias)(fname, tableAlias) + ", '' )")
|
|
410
|
-
.join(" || ") +
|
|
411
|
-
")::text::bytea), 'hex')");
|
|
412
|
-
return q;
|
|
413
|
-
},
|
|
414
|
-
},
|
|
415
|
-
{
|
|
416
|
-
name: "$sha256_multi_agg",
|
|
417
|
-
description: ` :[...column_names] -> sha256 hash of the string aggregation of column content`,
|
|
418
|
-
type: "aggregation",
|
|
419
|
-
singleColArg: false,
|
|
420
|
-
numArgs: MAX_COL_NUM,
|
|
421
|
-
getFields: (args) => args,
|
|
422
|
-
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
423
|
-
const q = pgp.as.format("encode(sha256(string_agg(" +
|
|
424
|
-
args
|
|
425
|
-
.map((fname) => "COALESCE( " + (0, asNameAlias_1.asNameAlias)(fname, tableAlias) + ", '' )")
|
|
426
|
-
.join(" || ") +
|
|
427
|
-
", ',')::text::bytea), 'hex')");
|
|
428
|
-
return q;
|
|
429
|
-
},
|
|
430
|
-
},
|
|
431
|
-
{
|
|
432
|
-
name: "$sha512_multi",
|
|
433
|
-
description: ` :[...column_names] -> sha512 hash of the of column content`,
|
|
434
|
-
type: "function",
|
|
435
|
-
singleColArg: false,
|
|
436
|
-
numArgs: MAX_COL_NUM,
|
|
437
|
-
getFields: (args) => args,
|
|
438
|
-
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
439
|
-
const q = pgp.as.format("encode(sha512((" +
|
|
440
|
-
args
|
|
441
|
-
.map((fname) => "COALESCE( " + (0, asNameAlias_1.asNameAlias)(fname, tableAlias) + ", '' )")
|
|
442
|
-
.join(" || ") +
|
|
443
|
-
")::text::bytea), 'hex')");
|
|
444
|
-
return q;
|
|
445
|
-
},
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
name: "$sha512_multi_agg",
|
|
449
|
-
description: ` :[...column_names] -> sha512 hash of the string aggregation of column content`,
|
|
450
|
-
type: "aggregation",
|
|
451
|
-
singleColArg: false,
|
|
452
|
-
numArgs: MAX_COL_NUM,
|
|
453
|
-
getFields: (args) => args,
|
|
454
|
-
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
455
|
-
const q = pgp.as.format("encode(sha512(string_agg(" +
|
|
456
|
-
args
|
|
457
|
-
.map((fname) => "COALESCE( " + (0, asNameAlias_1.asNameAlias)(fname, tableAlias) + ", '' )")
|
|
458
|
-
.join(" || ") +
|
|
459
|
-
", ',')::text::bytea), 'hex')");
|
|
460
|
-
return q;
|
|
461
|
-
},
|
|
462
|
-
},
|
|
367
|
+
...HASHING_FUNCTIONS_1.HASHING_FUNCTIONS,
|
|
463
368
|
...FTS_Funcs,
|
|
464
369
|
...JSON_Funcs,
|
|
465
370
|
...PostGIS_Funcs,
|
|
466
|
-
|
|
467
|
-
name: "$left",
|
|
468
|
-
description: ` :[column_name, number] -> substring`,
|
|
469
|
-
type: "function",
|
|
470
|
-
numArgs: 2,
|
|
471
|
-
singleColArg: false,
|
|
472
|
-
getFields: (args) => [args[0]],
|
|
473
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
474
|
-
return pgp.as.format("LEFT(" + (0, asNameAlias_1.asNameAlias)(args[0], tableAlias) + ", $1)", [args[1]]);
|
|
475
|
-
},
|
|
476
|
-
},
|
|
477
|
-
{
|
|
478
|
-
name: "$column",
|
|
479
|
-
description: ` :[column_name] -> Returns the column value as is`,
|
|
480
|
-
type: "function",
|
|
481
|
-
numArgs: 1,
|
|
482
|
-
singleColArg: false,
|
|
483
|
-
getFields: (args) => [args[0]],
|
|
484
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
485
|
-
const aliasedColumnName = args[0];
|
|
486
|
-
if (!aliasedColumnName) {
|
|
487
|
-
throw `$column: column_name is required`;
|
|
488
|
-
}
|
|
489
|
-
return pgp.as.format((0, asNameAlias_1.asNameAlias)(aliasedColumnName, tableAlias));
|
|
490
|
-
},
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
name: "$unnest_words",
|
|
494
|
-
description: ` :[column_name] -> Splits string at spaces`,
|
|
495
|
-
type: "function",
|
|
496
|
-
numArgs: 1,
|
|
497
|
-
singleColArg: true,
|
|
498
|
-
getFields: (args) => [args[0]],
|
|
499
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
500
|
-
return pgp.as.format("unnest(string_to_array(" + (0, asNameAlias_1.asNameAlias)(args[0], tableAlias) + "::TEXT , ' '))"); //, [args[1]]
|
|
501
|
-
},
|
|
502
|
-
},
|
|
503
|
-
{
|
|
504
|
-
name: "$right",
|
|
505
|
-
description: ` :[column_name, number] -> substring`,
|
|
506
|
-
type: "function",
|
|
507
|
-
numArgs: 2,
|
|
508
|
-
singleColArg: false,
|
|
509
|
-
getFields: (args) => [args[0]],
|
|
510
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
511
|
-
return pgp.as.format("RIGHT(" + (0, asNameAlias_1.asNameAlias)(args[0], tableAlias) + ", $1)", [args[1]]);
|
|
512
|
-
},
|
|
513
|
-
},
|
|
514
|
-
{
|
|
515
|
-
name: "$to_char",
|
|
516
|
-
type: "function",
|
|
517
|
-
description: ` :[column_name, format<string>] -> format dates and strings. Eg: [current_timestamp, 'HH12:MI:SS']`,
|
|
518
|
-
singleColArg: false,
|
|
519
|
-
numArgs: 2,
|
|
520
|
-
getFields: (args) => [args[0]],
|
|
521
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
522
|
-
if (args.length === 3) {
|
|
523
|
-
return pgp.as.format("to_char(" + (0, asNameAlias_1.asNameAlias)(args[0], tableAlias) + ", $2, $3)", [
|
|
524
|
-
args[0],
|
|
525
|
-
args[1],
|
|
526
|
-
args[2],
|
|
527
|
-
]);
|
|
528
|
-
}
|
|
529
|
-
return pgp.as.format("to_char(" + (0, asNameAlias_1.asNameAlias)(args[0], tableAlias) + ", $2)", [
|
|
530
|
-
args[0],
|
|
531
|
-
args[1],
|
|
532
|
-
]);
|
|
533
|
-
},
|
|
534
|
-
},
|
|
371
|
+
...TEXT_FUNCTIONS_1.TEXT_FUNCTIONS,
|
|
535
372
|
/**
|
|
536
373
|
* Date trunc utils
|
|
537
374
|
*/
|
|
@@ -583,7 +420,7 @@ exports.FUNCTIONS = [
|
|
|
583
420
|
{ val: 5, unit: "millisecond" },
|
|
584
421
|
{ val: 2, unit: "millisecond" },
|
|
585
422
|
])
|
|
586
|
-
.map(({ val, unit }) => ({
|
|
423
|
+
.map(({ val, unit }) => (0, utils_1.asFunction)({
|
|
587
424
|
name: "$date_trunc_" + (val || "") + unit,
|
|
588
425
|
type: "function",
|
|
589
426
|
description: ` :[column_name, opts?: { timeZone: true | 'TZ Name' }] -> round down timestamp to closest ${val || ""} ${unit} `,
|
|
@@ -618,7 +455,7 @@ exports.FUNCTIONS = [
|
|
|
618
455
|
},
|
|
619
456
|
})),
|
|
620
457
|
/* Date funcs date_part */
|
|
621
|
-
...["date_trunc", "date_part"].map((funcName) => ({
|
|
458
|
+
...["date_trunc", "date_part"].map((funcName) => (0, utils_1.asFunction)({
|
|
622
459
|
name: "$" + funcName,
|
|
623
460
|
type: "function",
|
|
624
461
|
numArgs: 3,
|
|
@@ -662,7 +499,7 @@ exports.FUNCTIONS = [
|
|
|
662
499
|
["yyyy", "yyyy"],
|
|
663
500
|
["yy", "yy"],
|
|
664
501
|
["yr", "yy"],
|
|
665
|
-
].map(([funcName, txt]) => ({
|
|
502
|
+
].map(([funcName, txt]) => (0, utils_1.asFunction)({
|
|
666
503
|
name: "$" + funcName,
|
|
667
504
|
type: "function",
|
|
668
505
|
description: ` :[column_name, opts?: { timeZone: true | string }] -> get timestamp formated as ` + txt,
|
|
@@ -683,7 +520,7 @@ exports.FUNCTIONS = [
|
|
|
683
520
|
cast,
|
|
684
521
|
funcName,
|
|
685
522
|
}))),
|
|
686
|
-
].map(({ funcName, cast }) => ({
|
|
523
|
+
].map(({ funcName, cast }) => (0, utils_1.asFunction)({
|
|
687
524
|
name: "$" + funcName,
|
|
688
525
|
type: "function",
|
|
689
526
|
numArgs: 1,
|
|
@@ -697,7 +534,7 @@ exports.FUNCTIONS = [
|
|
|
697
534
|
* Interval funcs
|
|
698
535
|
* (col1, col2?, trunc )
|
|
699
536
|
* */
|
|
700
|
-
...["age", "ageNow", "difference"].map((funcName) => ({
|
|
537
|
+
...["age", "ageNow", "difference"].map((funcName) => (0, utils_1.asFunction)({
|
|
701
538
|
name: "$" + funcName,
|
|
702
539
|
type: "function",
|
|
703
540
|
numArgs: 2,
|
|
@@ -734,7 +571,7 @@ exports.FUNCTIONS = [
|
|
|
734
571
|
},
|
|
735
572
|
})),
|
|
736
573
|
/* pgcrypto funcs */
|
|
737
|
-
...["crypt"].map((funcName) => ({
|
|
574
|
+
...["crypt"].map((funcName) => (0, utils_1.asFunction)({
|
|
738
575
|
name: "$" + funcName,
|
|
739
576
|
type: "function",
|
|
740
577
|
numArgs: 1,
|
|
@@ -745,202 +582,8 @@ exports.FUNCTIONS = [
|
|
|
745
582
|
return `crypt(${value}, ${seedColumnName}::text)`;
|
|
746
583
|
},
|
|
747
584
|
})),
|
|
748
|
-
/* Text col and value funcs */
|
|
749
|
-
...["position", "position_lower"].map((funcName) => ({
|
|
750
|
-
name: "$" + funcName,
|
|
751
|
-
type: "function",
|
|
752
|
-
numArgs: 1,
|
|
753
|
-
singleColArg: false,
|
|
754
|
-
getFields: (args) => [args[1]],
|
|
755
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
756
|
-
let a1 = asValue(args[0]), a2 = (0, asNameAlias_1.asNameAlias)(args[1], tableAlias);
|
|
757
|
-
if (funcName === "position_lower") {
|
|
758
|
-
a1 = `LOWER(${a1}::text)`;
|
|
759
|
-
a2 = `LOWER(${a2}::text)`;
|
|
760
|
-
}
|
|
761
|
-
return `position( ${a1} IN ${a2} )`;
|
|
762
|
-
},
|
|
763
|
-
})),
|
|
764
|
-
...["template_string"].map((funcName) => ({
|
|
765
|
-
name: "$" + funcName,
|
|
766
|
-
type: "function",
|
|
767
|
-
numArgs: 1,
|
|
768
|
-
minCols: 0,
|
|
769
|
-
singleColArg: false,
|
|
770
|
-
getFields: (args) => [], // Fields not validated because we'll use the allowed ones anyway
|
|
771
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
772
|
-
if (typeof args[0] !== "string")
|
|
773
|
-
throw "First argument must be a string. E.g.: '{col1} ..text {col2} ...' ";
|
|
774
|
-
const rawValue = args[0];
|
|
775
|
-
let finalValue = rawValue;
|
|
776
|
-
const usedColumns = allowedFields.filter((fName) => rawValue.includes(`{${fName}}`));
|
|
777
|
-
usedColumns.forEach((colName, idx) => {
|
|
778
|
-
finalValue = finalValue.split(`{${colName}}`).join(`%${idx + 1}$s`);
|
|
779
|
-
});
|
|
780
|
-
finalValue = asValue(finalValue);
|
|
781
|
-
if (usedColumns.length) {
|
|
782
|
-
return `format(${finalValue}, ${usedColumns.map((c) => `${(0, asNameAlias_1.asNameAlias)(c, tableAlias)}::TEXT`).join(", ")})`;
|
|
783
|
-
}
|
|
784
|
-
return `format(${finalValue})`;
|
|
785
|
-
},
|
|
786
|
-
})),
|
|
787
|
-
/** Custom highlight -> myterm => ['some text and', ['myterm'], ' and some other text']
|
|
788
|
-
* (fields: "*" | string[], term: string, { edgeTruncate: number = -1; noFields: boolean = false }) => string | (string | [string])[]
|
|
789
|
-
* edgeTruncate = maximum extra characters left and right of matches
|
|
790
|
-
* noFields = exclude field names in search
|
|
791
|
-
* */
|
|
792
|
-
{
|
|
793
|
-
name: "$term_highlight" /* */,
|
|
794
|
-
description: ` :[column_names<string[] | "*">, search_term<string>, opts?<{ returnIndex?: number; edgeTruncate?: number; noFields?: boolean }>] -> get case-insensitive text match highlight`,
|
|
795
|
-
type: "function",
|
|
796
|
-
numArgs: 1,
|
|
797
|
-
singleColArg: true,
|
|
798
|
-
canBeUsedForFilter: true,
|
|
799
|
-
getFields: (args) => args[0],
|
|
800
|
-
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias, allColumns }) => {
|
|
801
|
-
const cols = (0, parseFieldFilter_1.parseFieldFilter)(args[0], false, allowedFields);
|
|
802
|
-
let term = args[1];
|
|
803
|
-
const rawTerm = args[1];
|
|
804
|
-
const { edgeTruncate, noFields = false, returnType, matchCase = false } = args[2] || {};
|
|
805
|
-
if (!(0, prostgles_types_1.isEmpty)(args[2])) {
|
|
806
|
-
const keys = Object.keys(args[2]);
|
|
807
|
-
const validKeys = ["edgeTruncate", "noFields", "returnType", "matchCase"];
|
|
808
|
-
const bad_keys = keys.filter((k) => !validKeys.includes(k));
|
|
809
|
-
if (bad_keys.length)
|
|
810
|
-
throw ("Invalid options provided for $term_highlight. Expecting one of: " +
|
|
811
|
-
validKeys.join(", "));
|
|
812
|
-
}
|
|
813
|
-
if (!cols.length)
|
|
814
|
-
throw "Cols are empty/invalid";
|
|
815
|
-
if (typeof term !== "string")
|
|
816
|
-
throw "Non string term provided: " + term;
|
|
817
|
-
if (edgeTruncate !== undefined && (!Number.isInteger(edgeTruncate) || edgeTruncate < -1))
|
|
818
|
-
throw "Invalid edgeTruncate. expecting a positive integer";
|
|
819
|
-
if (typeof noFields !== "boolean")
|
|
820
|
-
throw "Invalid noFields. expecting boolean";
|
|
821
|
-
const RETURN_TYPES = ["index", "boolean", "object"];
|
|
822
|
-
if (returnType && !RETURN_TYPES.includes(returnType)) {
|
|
823
|
-
throw `returnType can only be one of: ${RETURN_TYPES}`;
|
|
824
|
-
}
|
|
825
|
-
const makeTextMatcherArray = (rawText, _term) => {
|
|
826
|
-
let matchText = rawText, term = _term;
|
|
827
|
-
if (!matchCase) {
|
|
828
|
-
matchText = `LOWER(${rawText})`;
|
|
829
|
-
term = `LOWER(${term})`;
|
|
830
|
-
}
|
|
831
|
-
let leftStr = `substr(${rawText}, 1, position(${term} IN ${matchText}) - 1 )`, rightStr = `substr(${rawText}, position(${term} IN ${matchText}) + length(${term}) )`;
|
|
832
|
-
if (edgeTruncate) {
|
|
833
|
-
leftStr = `RIGHT(${leftStr}, ${asValue(edgeTruncate)})`;
|
|
834
|
-
rightStr = `LEFT(${rightStr}, ${asValue(edgeTruncate)})`;
|
|
835
|
-
}
|
|
836
|
-
return `
|
|
837
|
-
CASE WHEN position(${term} IN ${matchText}) > 0 AND ${term} <> ''
|
|
838
|
-
THEN array_to_json(ARRAY[
|
|
839
|
-
to_json( ${leftStr}::TEXT ),
|
|
840
|
-
array_to_json(
|
|
841
|
-
ARRAY[substr(${rawText}, position(${term} IN ${matchText}), length(${term}) )::TEXT ]
|
|
842
|
-
),
|
|
843
|
-
to_json(${rightStr}::TEXT )
|
|
844
|
-
])
|
|
845
|
-
ELSE
|
|
846
|
-
array_to_json(ARRAY[(${rawText})::TEXT])
|
|
847
|
-
END
|
|
848
|
-
`;
|
|
849
|
-
};
|
|
850
|
-
const colRaw = "( " +
|
|
851
|
-
cols
|
|
852
|
-
.map((c) => `${noFields ? "" : asValue(c + ": ") + " || "} COALESCE(${(0, asNameAlias_1.asNameAlias)(c, tableAlias)}::TEXT, '')`)
|
|
853
|
-
.join(" || ', ' || ") +
|
|
854
|
-
" )";
|
|
855
|
-
let col = colRaw;
|
|
856
|
-
term = asValue(term);
|
|
857
|
-
if (!matchCase) {
|
|
858
|
-
col = "LOWER" + col;
|
|
859
|
-
term = `LOWER(${term})`;
|
|
860
|
-
}
|
|
861
|
-
let leftStr = `substr(${colRaw}, 1, position(${term} IN ${col}) - 1 )`, rightStr = `substr(${colRaw}, position(${term} IN ${col}) + length(${term}) )`;
|
|
862
|
-
if (edgeTruncate) {
|
|
863
|
-
leftStr = `RIGHT(${leftStr}, ${asValue(edgeTruncate)})`;
|
|
864
|
-
rightStr = `LEFT(${rightStr}, ${asValue(edgeTruncate)})`;
|
|
865
|
-
}
|
|
866
|
-
// console.log(col);
|
|
867
|
-
let res = "";
|
|
868
|
-
if (returnType === "index") {
|
|
869
|
-
res = `CASE WHEN position(${term} IN ${col}) > 0 THEN position(${term} IN ${col}) - 1 ELSE -1 END`;
|
|
870
|
-
// } else if(returnType === "boolean"){
|
|
871
|
-
// res = `CASE WHEN position(${term} IN ${col}) > 0 THEN TRUE ELSE FALSE END`;
|
|
872
|
-
}
|
|
873
|
-
else if (returnType === "object" || returnType === "boolean") {
|
|
874
|
-
const hasChars = Boolean(rawTerm && /[a-z]/i.test(rawTerm));
|
|
875
|
-
const validCols = cols
|
|
876
|
-
.map((c) => {
|
|
877
|
-
const colInfo = allColumns.find((ac) => ac.name === c);
|
|
878
|
-
return {
|
|
879
|
-
key: c,
|
|
880
|
-
colInfo,
|
|
881
|
-
};
|
|
882
|
-
})
|
|
883
|
-
.filter((c) => c.colInfo && c.colInfo.udt_name !== "bytea");
|
|
884
|
-
const _cols = validCols.filter((c) =>
|
|
885
|
-
/** Exclude numeric columns when the search tern contains a character */
|
|
886
|
-
!hasChars || (0, prostgles_types_1.postgresToTsType)(c.colInfo.udt_name) !== "number");
|
|
887
|
-
/** This will break GROUP BY (non-integer constant in GROUP BY) */
|
|
888
|
-
if (!_cols.length) {
|
|
889
|
-
if (validCols.length && hasChars)
|
|
890
|
-
throw `You're searching the impossible: characters in numeric fields. Use this to prevent making such a request in future: /[a-z]/i.test(your_term) `;
|
|
891
|
-
return returnType === "boolean" ? "FALSE" : "NULL";
|
|
892
|
-
}
|
|
893
|
-
res = `CASE
|
|
894
|
-
${_cols
|
|
895
|
-
.map((c) => {
|
|
896
|
-
const colNameEscaped = (0, asNameAlias_1.asNameAlias)(c.key, tableAlias);
|
|
897
|
-
let colSelect = `${colNameEscaped}::TEXT`;
|
|
898
|
-
const isTstamp = c.colInfo?.udt_name.startsWith("timestamp");
|
|
899
|
-
if (isTstamp || c.colInfo?.udt_name === "date") {
|
|
900
|
-
colSelect = `( CASE WHEN ${colNameEscaped} IS NULL THEN ''
|
|
901
|
-
ELSE concat_ws(' ',
|
|
902
|
-
trim(to_char(${colNameEscaped}, 'YYYY-MM-DD HH24:MI:SS')),
|
|
903
|
-
trim(to_char(${colNameEscaped}, 'Day Month')),
|
|
904
|
-
'Q' || trim(to_char(${colNameEscaped}, 'Q')),
|
|
905
|
-
'WK' || trim(to_char(${colNameEscaped}, 'WW'))
|
|
906
|
-
) END)`;
|
|
907
|
-
}
|
|
908
|
-
const colTxt = `COALESCE(${colSelect}, '')`; // position(${term} IN ${colTxt}) > 0
|
|
909
|
-
if (returnType === "boolean") {
|
|
910
|
-
return `
|
|
911
|
-
WHEN ${colTxt} ${matchCase ? "LIKE" : "ILIKE"} ${asValue("%" + rawTerm + "%")}
|
|
912
|
-
THEN TRUE
|
|
913
|
-
`;
|
|
914
|
-
}
|
|
915
|
-
return `
|
|
916
|
-
WHEN ${colTxt} ${matchCase ? "LIKE" : "ILIKE"} ${asValue("%" + rawTerm + "%")}
|
|
917
|
-
THEN json_build_object(
|
|
918
|
-
${asValue(c.key)},
|
|
919
|
-
${makeTextMatcherArray(colTxt, term)}
|
|
920
|
-
)::jsonb
|
|
921
|
-
`;
|
|
922
|
-
})
|
|
923
|
-
.join(" ")}
|
|
924
|
-
ELSE ${returnType === "boolean" ? "FALSE" : "NULL"}
|
|
925
|
-
|
|
926
|
-
END`;
|
|
927
|
-
// console.log(res)
|
|
928
|
-
}
|
|
929
|
-
else {
|
|
930
|
-
/* If no match or empty search THEN return full row as string within first array element */
|
|
931
|
-
res = `CASE WHEN position(${term} IN ${col}) > 0 AND ${term} <> '' THEN array_to_json(ARRAY[
|
|
932
|
-
to_json( ${leftStr}::TEXT ),
|
|
933
|
-
array_to_json(
|
|
934
|
-
ARRAY[substr(${colRaw}, position(${term} IN ${col}), length(${term}) )::TEXT ]
|
|
935
|
-
),
|
|
936
|
-
to_json(${rightStr}::TEXT )
|
|
937
|
-
]) ELSE array_to_json(ARRAY[(${colRaw})::TEXT]) END`;
|
|
938
|
-
}
|
|
939
|
-
return res;
|
|
940
|
-
},
|
|
941
|
-
},
|
|
942
585
|
/* Aggs */
|
|
943
|
-
...["max", "min", "count", "avg", "json_agg", "jsonb_agg", "string_agg", "array_agg", "sum"].map((aggName) => ({
|
|
586
|
+
...["max", "min", "count", "avg", "json_agg", "jsonb_agg", "string_agg", "array_agg", "sum"].map((aggName) => (0, utils_1.asFunction)({
|
|
944
587
|
name: "$" + aggName,
|
|
945
588
|
type: "aggregation",
|
|
946
589
|
numArgs: 1,
|
|
@@ -954,7 +597,7 @@ exports.FUNCTIONS = [
|
|
|
954
597
|
return aggName + "(" + (0, asNameAlias_1.asNameAlias)(args[0], tableAlias) + `${extraArgs})`;
|
|
955
598
|
},
|
|
956
599
|
})),
|
|
957
|
-
{
|
|
600
|
+
(0, utils_1.asFunction)({
|
|
958
601
|
name: "$jsonb_build_object",
|
|
959
602
|
type: "function",
|
|
960
603
|
numArgs: 22,
|
|
@@ -964,9 +607,9 @@ exports.FUNCTIONS = [
|
|
|
964
607
|
getQuery: ({ args, tableAliasRaw: tableAlias }) => {
|
|
965
608
|
return `jsonb_build_object(${args.flatMap((arg) => [asValue(arg), (0, asNameAlias_1.asNameAlias)(arg, tableAlias)]).join(", ")})`;
|
|
966
609
|
},
|
|
967
|
-
},
|
|
610
|
+
}),
|
|
968
611
|
/* More aggs */
|
|
969
|
-
{
|
|
612
|
+
(0, utils_1.asFunction)({
|
|
970
613
|
name: "$countAll",
|
|
971
614
|
type: "aggregation",
|
|
972
615
|
description: `agg :[] COUNT of all rows `,
|
|
@@ -976,8 +619,8 @@ exports.FUNCTIONS = [
|
|
|
976
619
|
getQuery: ({ allowedFields, args, tableAliasRaw: tableAlias }) => {
|
|
977
620
|
return "COUNT(*)";
|
|
978
621
|
},
|
|
979
|
-
},
|
|
980
|
-
{
|
|
622
|
+
}),
|
|
623
|
+
(0, utils_1.asFunction)({
|
|
981
624
|
name: "$diff_perc",
|
|
982
625
|
type: "aggregation",
|
|
983
626
|
numArgs: 1,
|
|
@@ -987,7 +630,7 @@ exports.FUNCTIONS = [
|
|
|
987
630
|
const col = (0, asNameAlias_1.asNameAlias)(args[0], tableAlias);
|
|
988
631
|
return `round( ( ( MAX(${col}) - MIN(${col}) )::float/MIN(${col}) ) * 100, 2)`;
|
|
989
632
|
},
|
|
990
|
-
},
|
|
633
|
+
}),
|
|
991
634
|
];
|
|
992
635
|
/*
|
|
993
636
|
|