@qrvey/formula-lang 2.0.2 → 3.0.1-rc.704
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/constants/index.d.ts +10 -2
- package/dist/cjs/constants/index.js +15 -1
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/interfaces.d.ts +20 -2
- package/dist/cjs/errors/analyzer/index.js +2 -0
- package/dist/cjs/errors/analyzer/index.js.map +1 -1
- package/dist/cjs/errors/analyzer/mssql.d.ts +8 -0
- package/dist/cjs/errors/analyzer/mssql.js +26 -0
- package/dist/cjs/errors/analyzer/mssql.js.map +1 -0
- package/dist/cjs/errors/definitions.d.ts +12 -0
- package/dist/cjs/errors/definitions.js +22 -1
- package/dist/cjs/errors/definitions.js.map +1 -1
- package/dist/cjs/errors/dictionary.d.ts +4 -1
- package/dist/cjs/errors/dictionary.js +15 -0
- package/dist/cjs/errors/dictionary.js.map +1 -1
- package/dist/cjs/errors/mismatch.js +2 -2
- package/dist/cjs/errors/mismatch.js.map +1 -1
- package/dist/cjs/functions/abs.js +6 -0
- package/dist/cjs/functions/abs.js.map +1 -1
- package/dist/cjs/functions/aggAvg.d.ts +5 -0
- package/dist/cjs/functions/aggAvg.js +53 -0
- package/dist/cjs/functions/aggAvg.js.map +1 -0
- package/dist/cjs/functions/aggCount.d.ts +5 -0
- package/dist/cjs/functions/aggCount.js +53 -0
- package/dist/cjs/functions/aggCount.js.map +1 -0
- package/dist/cjs/functions/aggDistcount.d.ts +5 -0
- package/dist/cjs/functions/aggDistcount.js +53 -0
- package/dist/cjs/functions/aggDistcount.js.map +1 -0
- package/dist/cjs/functions/aggMax.d.ts +5 -0
- package/dist/cjs/functions/aggMax.js +53 -0
- package/dist/cjs/functions/aggMax.js.map +1 -0
- package/dist/cjs/functions/aggMed.d.ts +5 -0
- package/dist/cjs/functions/aggMed.js +53 -0
- package/dist/cjs/functions/aggMed.js.map +1 -0
- package/dist/cjs/functions/aggMin.d.ts +5 -0
- package/dist/cjs/functions/aggMin.js +53 -0
- package/dist/cjs/functions/aggMin.js.map +1 -0
- package/dist/cjs/functions/aggSum.d.ts +5 -0
- package/dist/cjs/functions/aggSum.js +53 -0
- package/dist/cjs/functions/aggSum.js.map +1 -0
- package/dist/cjs/functions/and.js +6 -0
- package/dist/cjs/functions/and.js.map +1 -1
- package/dist/cjs/functions/concatenate.js +6 -0
- package/dist/cjs/functions/concatenate.js.map +1 -1
- package/dist/cjs/functions/dateadd.js +24 -0
- package/dist/cjs/functions/dateadd.js.map +1 -1
- package/dist/cjs/functions/datedif.js +11 -1
- package/dist/cjs/functions/datedif.js.map +1 -1
- package/dist/cjs/functions/datesubtract.js +24 -0
- package/dist/cjs/functions/datesubtract.js.map +1 -1
- package/dist/cjs/functions/day.js +6 -0
- package/dist/cjs/functions/day.js.map +1 -1
- package/dist/cjs/functions/dayofweek.js +15 -0
- package/dist/cjs/functions/dayofweek.js.map +1 -1
- package/dist/cjs/functions/even.js +6 -0
- package/dist/cjs/functions/even.js.map +1 -1
- package/dist/cjs/functions/exp.js +6 -0
- package/dist/cjs/functions/exp.js.map +1 -1
- package/dist/cjs/functions/hour.js +15 -0
- package/dist/cjs/functions/hour.js.map +1 -1
- package/dist/cjs/functions/if.js +14 -2
- package/dist/cjs/functions/if.js.map +1 -1
- package/dist/cjs/functions/ifs.js +14 -2
- package/dist/cjs/functions/ifs.js.map +1 -1
- package/dist/cjs/functions/include.js +6 -0
- package/dist/cjs/functions/include.js.map +1 -1
- package/dist/cjs/functions/index.d.ts +2 -0
- package/dist/cjs/functions/index.js +20 -1
- package/dist/cjs/functions/index.js.map +1 -1
- package/dist/cjs/functions/isNull.js +12 -2
- package/dist/cjs/functions/isNull.js.map +1 -1
- package/dist/cjs/functions/left.js +13 -0
- package/dist/cjs/functions/left.js.map +1 -1
- package/dist/cjs/functions/length.js +9 -0
- package/dist/cjs/functions/length.js.map +1 -1
- package/dist/cjs/functions/log.js +10 -1
- package/dist/cjs/functions/log.js.map +1 -1
- package/dist/cjs/functions/lower.js +6 -0
- package/dist/cjs/functions/lower.js.map +1 -1
- package/dist/cjs/functions/max.js +6 -0
- package/dist/cjs/functions/max.js.map +1 -1
- package/dist/cjs/functions/mid.js +20 -0
- package/dist/cjs/functions/mid.js.map +1 -1
- package/dist/cjs/functions/millisecond.js +10 -0
- package/dist/cjs/functions/millisecond.js.map +1 -1
- package/dist/cjs/functions/min.js +7 -0
- package/dist/cjs/functions/min.js.map +1 -1
- package/dist/cjs/functions/minute.js +6 -0
- package/dist/cjs/functions/minute.js.map +1 -1
- package/dist/cjs/functions/month.js +6 -0
- package/dist/cjs/functions/month.js.map +1 -1
- package/dist/cjs/functions/now.d.ts +5 -0
- package/dist/cjs/functions/now.js +44 -0
- package/dist/cjs/functions/now.js.map +1 -0
- package/dist/cjs/functions/odd.js +6 -0
- package/dist/cjs/functions/odd.js.map +1 -1
- package/dist/cjs/functions/or.js +6 -0
- package/dist/cjs/functions/or.js.map +1 -1
- package/dist/cjs/functions/power.js +6 -0
- package/dist/cjs/functions/power.js.map +1 -1
- package/dist/cjs/functions/proper.js +18 -0
- package/dist/cjs/functions/proper.js.map +1 -1
- package/dist/cjs/functions/random.js +6 -0
- package/dist/cjs/functions/random.js.map +1 -1
- package/dist/cjs/functions/replace.js +6 -0
- package/dist/cjs/functions/replace.js.map +1 -1
- package/dist/cjs/functions/right.js +12 -0
- package/dist/cjs/functions/right.js.map +1 -1
- package/dist/cjs/functions/round.js +13 -1
- package/dist/cjs/functions/round.js.map +1 -1
- package/dist/cjs/functions/rounddown.js +11 -0
- package/dist/cjs/functions/rounddown.js.map +1 -1
- package/dist/cjs/functions/roundup.js +11 -0
- package/dist/cjs/functions/roundup.js.map +1 -1
- package/dist/cjs/functions/second.js +6 -0
- package/dist/cjs/functions/second.js.map +1 -1
- package/dist/cjs/functions/sqrt.js +6 -0
- package/dist/cjs/functions/sqrt.js.map +1 -1
- package/dist/cjs/functions/text.js +6 -0
- package/dist/cjs/functions/text.js.map +1 -1
- package/dist/cjs/functions/trim.js +6 -0
- package/dist/cjs/functions/trim.js.map +1 -1
- package/dist/cjs/functions/upper.js +6 -0
- package/dist/cjs/functions/upper.js.map +1 -1
- package/dist/cjs/functions/year.js +6 -0
- package/dist/cjs/functions/year.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parser/formula-parser.js +19 -5
- package/dist/cjs/parser/formula-parser.js.map +1 -1
- package/dist/cjs/parser/json-parser.js +51 -1
- package/dist/cjs/parser/json-parser.js.map +1 -1
- package/dist/cjs/parser/syntax-errors.js +1 -0
- package/dist/cjs/parser/syntax-errors.js.map +1 -1
- package/dist/cjs/transpiler/columnTranspilation.js +11 -0
- package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
- package/dist/cjs/transpiler/formulaErrorList.js.map +1 -1
- package/dist/cjs/transpiler/index.d.ts +1 -0
- package/dist/cjs/transpiler/index.js +17 -3
- package/dist/cjs/transpiler/index.js.map +1 -1
- package/dist/cjs/transpiler/validateFuncStructure.d.ts +4 -2
- package/dist/cjs/transpiler/validateFuncStructure.js +2 -1
- package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
- package/dist/cjs/utils/addDecimalPointIfNeeded.js +1 -0
- package/dist/cjs/utils/addDecimalPointIfNeeded.js.map +1 -1
- package/dist/cjs/utils/aggregatedFunctions.d.ts +3 -0
- package/dist/cjs/utils/aggregatedFunctions.js +51 -0
- package/dist/cjs/utils/aggregatedFunctions.js.map +1 -0
- package/dist/cjs/utils/customFunctions.js +3 -0
- package/dist/cjs/utils/customFunctions.js.map +1 -1
- package/dist/cjs/utils/elasticsearch/index.js +2 -0
- package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
- package/dist/cjs/utils/elasticsearch/scripts.d.ts +1 -0
- package/dist/cjs/utils/elasticsearch/scripts.js +8 -1
- package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +3 -0
- package/dist/cjs/utils/index.js +7 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/isAColumn.d.ts +4 -1
- package/dist/cjs/utils/isAColumn.js +37 -1
- package/dist/cjs/utils/isAColumn.js.map +1 -1
- package/dist/cjs/utils/isAggregate.d.ts +4 -0
- package/dist/cjs/utils/isAggregate.js +21 -0
- package/dist/cjs/utils/isAggregate.js.map +1 -0
- package/dist/cjs/utils/mssql/index.d.ts +1 -0
- package/dist/cjs/utils/mssql/index.js +6 -0
- package/dist/cjs/utils/mssql/index.js.map +1 -0
- package/dist/cjs/utils/mssql/scripts.d.ts +2 -0
- package/dist/cjs/utils/mssql/scripts.js +20 -0
- package/dist/cjs/utils/mssql/scripts.js.map +1 -0
- package/dist/cjs/utils/sql/index.d.ts +1 -0
- package/dist/cjs/utils/sql/index.js +11 -1
- package/dist/cjs/utils/sql/index.js.map +1 -1
- package/dist/cjs/utils/sql/scripts.d.ts +1 -0
- package/dist/cjs/utils/sql/scripts.js +47 -2
- package/dist/cjs/utils/sql/scripts.js.map +1 -1
- package/dist/module/constants/index.d.ts +10 -2
- package/dist/module/constants/index.js +14 -0
- package/dist/module/constants/index.js.map +1 -1
- package/dist/module/constants/interfaces.d.ts +20 -2
- package/dist/module/errors/analyzer/index.js +2 -0
- package/dist/module/errors/analyzer/index.js.map +1 -1
- package/dist/module/errors/analyzer/mssql.d.ts +8 -0
- package/dist/module/errors/analyzer/mssql.js +22 -0
- package/dist/module/errors/analyzer/mssql.js.map +1 -0
- package/dist/module/errors/definitions.d.ts +12 -0
- package/dist/module/errors/definitions.js +18 -0
- package/dist/module/errors/definitions.js.map +1 -1
- package/dist/module/errors/dictionary.d.ts +4 -1
- package/dist/module/errors/dictionary.js +15 -0
- package/dist/module/errors/dictionary.js.map +1 -1
- package/dist/module/errors/mismatch.js +2 -2
- package/dist/module/errors/mismatch.js.map +1 -1
- package/dist/module/functions/abs.js +7 -1
- package/dist/module/functions/abs.js.map +1 -1
- package/dist/module/functions/aggAvg.d.ts +5 -0
- package/dist/module/functions/aggAvg.js +50 -0
- package/dist/module/functions/aggAvg.js.map +1 -0
- package/dist/module/functions/aggCount.d.ts +5 -0
- package/dist/module/functions/aggCount.js +50 -0
- package/dist/module/functions/aggCount.js.map +1 -0
- package/dist/module/functions/aggDistcount.d.ts +5 -0
- package/dist/module/functions/aggDistcount.js +50 -0
- package/dist/module/functions/aggDistcount.js.map +1 -0
- package/dist/module/functions/aggMax.d.ts +5 -0
- package/dist/module/functions/aggMax.js +50 -0
- package/dist/module/functions/aggMax.js.map +1 -0
- package/dist/module/functions/aggMed.d.ts +5 -0
- package/dist/module/functions/aggMed.js +50 -0
- package/dist/module/functions/aggMed.js.map +1 -0
- package/dist/module/functions/aggMin.d.ts +5 -0
- package/dist/module/functions/aggMin.js +50 -0
- package/dist/module/functions/aggMin.js.map +1 -0
- package/dist/module/functions/aggSum.d.ts +5 -0
- package/dist/module/functions/aggSum.js +50 -0
- package/dist/module/functions/aggSum.js.map +1 -0
- package/dist/module/functions/and.js +7 -1
- package/dist/module/functions/and.js.map +1 -1
- package/dist/module/functions/concatenate.js +7 -1
- package/dist/module/functions/concatenate.js.map +1 -1
- package/dist/module/functions/dateadd.js +25 -1
- package/dist/module/functions/dateadd.js.map +1 -1
- package/dist/module/functions/datedif.js +13 -3
- package/dist/module/functions/datedif.js.map +1 -1
- package/dist/module/functions/datesubtract.js +25 -1
- package/dist/module/functions/datesubtract.js.map +1 -1
- package/dist/module/functions/day.js +7 -1
- package/dist/module/functions/day.js.map +1 -1
- package/dist/module/functions/dayofweek.js +16 -1
- package/dist/module/functions/dayofweek.js.map +1 -1
- package/dist/module/functions/even.js +7 -1
- package/dist/module/functions/even.js.map +1 -1
- package/dist/module/functions/exp.js +7 -1
- package/dist/module/functions/exp.js.map +1 -1
- package/dist/module/functions/hour.js +16 -1
- package/dist/module/functions/hour.js.map +1 -1
- package/dist/module/functions/if.js +15 -3
- package/dist/module/functions/if.js.map +1 -1
- package/dist/module/functions/ifs.js +15 -3
- package/dist/module/functions/ifs.js.map +1 -1
- package/dist/module/functions/include.js +7 -1
- package/dist/module/functions/include.js.map +1 -1
- package/dist/module/functions/index.d.ts +2 -0
- package/dist/module/functions/index.js +19 -0
- package/dist/module/functions/index.js.map +1 -1
- package/dist/module/functions/isNull.js +13 -3
- package/dist/module/functions/isNull.js.map +1 -1
- package/dist/module/functions/left.js +14 -1
- package/dist/module/functions/left.js.map +1 -1
- package/dist/module/functions/length.js +10 -1
- package/dist/module/functions/length.js.map +1 -1
- package/dist/module/functions/log.js +11 -2
- package/dist/module/functions/log.js.map +1 -1
- package/dist/module/functions/lower.js +7 -1
- package/dist/module/functions/lower.js.map +1 -1
- package/dist/module/functions/max.js +7 -1
- package/dist/module/functions/max.js.map +1 -1
- package/dist/module/functions/mid.js +21 -1
- package/dist/module/functions/mid.js.map +1 -1
- package/dist/module/functions/millisecond.js +11 -1
- package/dist/module/functions/millisecond.js.map +1 -1
- package/dist/module/functions/min.js +8 -1
- package/dist/module/functions/min.js.map +1 -1
- package/dist/module/functions/minute.js +7 -1
- package/dist/module/functions/minute.js.map +1 -1
- package/dist/module/functions/month.js +7 -1
- package/dist/module/functions/month.js.map +1 -1
- package/dist/module/functions/now.d.ts +5 -0
- package/dist/module/functions/now.js +41 -0
- package/dist/module/functions/now.js.map +1 -0
- package/dist/module/functions/odd.js +7 -1
- package/dist/module/functions/odd.js.map +1 -1
- package/dist/module/functions/or.js +7 -1
- package/dist/module/functions/or.js.map +1 -1
- package/dist/module/functions/power.js +7 -1
- package/dist/module/functions/power.js.map +1 -1
- package/dist/module/functions/proper.js +19 -1
- package/dist/module/functions/proper.js.map +1 -1
- package/dist/module/functions/random.js +7 -1
- package/dist/module/functions/random.js.map +1 -1
- package/dist/module/functions/replace.js +7 -1
- package/dist/module/functions/replace.js.map +1 -1
- package/dist/module/functions/right.js +13 -1
- package/dist/module/functions/right.js.map +1 -1
- package/dist/module/functions/round.js +14 -2
- package/dist/module/functions/round.js.map +1 -1
- package/dist/module/functions/rounddown.js +12 -1
- package/dist/module/functions/rounddown.js.map +1 -1
- package/dist/module/functions/roundup.js +12 -1
- package/dist/module/functions/roundup.js.map +1 -1
- package/dist/module/functions/second.js +7 -1
- package/dist/module/functions/second.js.map +1 -1
- package/dist/module/functions/sqrt.js +7 -1
- package/dist/module/functions/sqrt.js.map +1 -1
- package/dist/module/functions/text.js +7 -1
- package/dist/module/functions/text.js.map +1 -1
- package/dist/module/functions/trim.js +7 -1
- package/dist/module/functions/trim.js.map +1 -1
- package/dist/module/functions/upper.js +7 -1
- package/dist/module/functions/upper.js.map +1 -1
- package/dist/module/functions/year.js +7 -1
- package/dist/module/functions/year.js.map +1 -1
- package/dist/module/index.d.ts +2 -2
- package/dist/module/index.js +2 -2
- package/dist/module/index.js.map +1 -1
- package/dist/module/parser/formula-parser.js +20 -6
- package/dist/module/parser/formula-parser.js.map +1 -1
- package/dist/module/parser/json-parser.js +53 -3
- package/dist/module/parser/json-parser.js.map +1 -1
- package/dist/module/parser/syntax-errors.js +1 -0
- package/dist/module/parser/syntax-errors.js.map +1 -1
- package/dist/module/transpiler/columnTranspilation.js +11 -0
- package/dist/module/transpiler/columnTranspilation.js.map +1 -1
- package/dist/module/transpiler/formulaErrorList.js.map +1 -1
- package/dist/module/transpiler/index.d.ts +1 -0
- package/dist/module/transpiler/index.js +19 -5
- package/dist/module/transpiler/index.js.map +1 -1
- package/dist/module/transpiler/validateFuncStructure.d.ts +4 -2
- package/dist/module/transpiler/validateFuncStructure.js +2 -1
- package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
- package/dist/module/utils/addDecimalPointIfNeeded.js +1 -0
- package/dist/module/utils/addDecimalPointIfNeeded.js.map +1 -1
- package/dist/module/utils/aggregatedFunctions.d.ts +3 -0
- package/dist/module/utils/aggregatedFunctions.js +47 -0
- package/dist/module/utils/aggregatedFunctions.js.map +1 -0
- package/dist/module/utils/customFunctions.js +3 -0
- package/dist/module/utils/customFunctions.js.map +1 -1
- package/dist/module/utils/elasticsearch/index.js +3 -1
- package/dist/module/utils/elasticsearch/index.js.map +1 -1
- package/dist/module/utils/elasticsearch/scripts.d.ts +1 -0
- package/dist/module/utils/elasticsearch/scripts.js +7 -0
- package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
- package/dist/module/utils/index.d.ts +3 -0
- package/dist/module/utils/index.js +3 -0
- package/dist/module/utils/index.js.map +1 -1
- package/dist/module/utils/isAColumn.d.ts +4 -1
- package/dist/module/utils/isAColumn.js +35 -1
- package/dist/module/utils/isAColumn.js.map +1 -1
- package/dist/module/utils/isAggregate.d.ts +4 -0
- package/dist/module/utils/isAggregate.js +15 -0
- package/dist/module/utils/isAggregate.js.map +1 -0
- package/dist/module/utils/mssql/index.d.ts +1 -0
- package/dist/module/utils/mssql/index.js +2 -0
- package/dist/module/utils/mssql/index.js.map +1 -0
- package/dist/module/utils/mssql/scripts.d.ts +2 -0
- package/dist/module/utils/mssql/scripts.js +15 -0
- package/dist/module/utils/mssql/scripts.js.map +1 -0
- package/dist/module/utils/sql/index.d.ts +1 -0
- package/dist/module/utils/sql/index.js +9 -0
- package/dist/module/utils/sql/index.js.map +1 -1
- package/dist/module/utils/sql/scripts.d.ts +1 -0
- package/dist/module/utils/sql/scripts.js +45 -1
- package/dist/module/utils/sql/scripts.js.map +1 -1
- package/package.json +5 -3
|
@@ -10,6 +10,8 @@ const isAnAllowedValue_1 = require("../utils/isAnAllowedValue");
|
|
|
10
10
|
*/
|
|
11
11
|
exports.HOUR = {
|
|
12
12
|
identifier: 'HOUR',
|
|
13
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
14
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
13
15
|
parameters: [
|
|
14
16
|
{
|
|
15
17
|
identifier: 'DATE',
|
|
@@ -30,6 +32,7 @@ exports.HOUR = {
|
|
|
30
32
|
redshift,
|
|
31
33
|
postgresql,
|
|
32
34
|
databricks,
|
|
35
|
+
mssql,
|
|
33
36
|
},
|
|
34
37
|
primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
|
|
35
38
|
};
|
|
@@ -61,4 +64,16 @@ function postgresql(value, timeFormat) {
|
|
|
61
64
|
function databricks(value, timeFormat) {
|
|
62
65
|
return SQL(value, timeFormat);
|
|
63
66
|
}
|
|
67
|
+
function mssql(value, timeFormat) {
|
|
68
|
+
const format = (0, utils_1.removeQuotes)(timeFormat !== null && timeFormat !== void 0 ? timeFormat : '');
|
|
69
|
+
if (format === '12h') {
|
|
70
|
+
return `(CASE
|
|
71
|
+
WHEN DATEPART(HOUR, ${value}) % 12 = 0 THEN 12
|
|
72
|
+
ELSE DATEPART(HOUR, ${value}) % 12
|
|
73
|
+
END)`;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return `DATEPART(HOUR, ${value})`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
64
79
|
//# sourceMappingURL=hour.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hour.js","sourceRoot":"","sources":["../../../src/functions/hour.ts"],"names":[],"mappings":";;;AACA,4DAA4D;AAC5D,oCAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"hour.js","sourceRoot":"","sources":["../../../src/functions/hour.ts"],"names":[],"mappings":";;;AACA,4DAA4D;AAC5D,oCAAoE;AACpE,4CAA+D;AAC/D,gEAA6D;AAE7D;;GAEG;AACU,QAAA,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,EAAE,IAAA,mCAAgB,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SAC/D;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,UAAmB;IACrD,OAAO,IAAA,oBAAU,EAAC,KAAK,EAAE,IAAA,oBAAY,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,UAAmB;IAC3C,IAAI,IAAA,oBAAY,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,KAAK,KAAK,EAAE;QAC1C,OAAO;qCACsB,KAAK;;;oCAGN,KAAK;eAC1B,CAAC;KACX;SAAM;QACH,OAAO,qBAAqB,KAAK,GAAG,CAAC;KACxC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,UAAmB;IACjD,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,UAAmB;IAChD,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,UAAmB;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,UAAmB;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,UAAmB;IAC7C,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,KAAK,EAAE;QAClB,OAAO;kCACmB,KAAK;kCACL,KAAK;aAC1B,CAAC;KACT;SAAM;QACH,OAAO,kBAAkB,KAAK,GAAG,CAAC;KACrC;AACL,CAAC"}
|
package/dist/cjs/functions/if.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.IF = void 0;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
const dictionary_1 = require("../errors/dictionary");
|
|
6
|
+
const isAggregate_1 = require("../utils/isAggregate");
|
|
6
7
|
const isBooleanExpression_1 = require("../utils/isBooleanExpression");
|
|
7
8
|
const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
8
9
|
/**
|
|
@@ -10,6 +11,8 @@ const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
|
10
11
|
*/
|
|
11
12
|
exports.IF = {
|
|
12
13
|
identifier: 'IF',
|
|
14
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
15
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW, constants_1.OPERATION_SCOPE.AGGREGATE],
|
|
13
16
|
parameters: [
|
|
14
17
|
{
|
|
15
18
|
identifier: 'LOGICAL_EXPRESSION',
|
|
@@ -36,6 +39,7 @@ exports.IF = {
|
|
|
36
39
|
redshift,
|
|
37
40
|
postgresql,
|
|
38
41
|
databricks,
|
|
42
|
+
mssql,
|
|
39
43
|
},
|
|
40
44
|
primitiveResult(args) {
|
|
41
45
|
var _a, _b, _c, _d;
|
|
@@ -57,10 +61,15 @@ function samePrimitiveType(_param, _dataType, context) {
|
|
|
57
61
|
? sPrimitive
|
|
58
62
|
: constants_1.AST_PRIMITIVES.UNKNOWN;
|
|
59
63
|
const ifPrimitive = calculateIfPrimitive(firstPrimitive, secondPrimitive);
|
|
60
|
-
const
|
|
64
|
+
const isAggregate = (0, isAggregate_1.isAggregateScope)(context.globalContext);
|
|
65
|
+
const valid = isAggregate
|
|
66
|
+
? constants_1.EXPECTED_AGGREGATE_RESULT.includes(firstPrimitive)
|
|
67
|
+
: firstPrimitive === secondPrimitive;
|
|
61
68
|
if (!valid)
|
|
62
69
|
return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.inferredPrimitive]), { mismatchData: {
|
|
63
|
-
primitive:
|
|
70
|
+
primitive: isAggregate
|
|
71
|
+
? constants_1.EXPECTED_AGGREGATE_RESULT[0]
|
|
72
|
+
: ifPrimitive,
|
|
64
73
|
} });
|
|
65
74
|
return { valid };
|
|
66
75
|
}
|
|
@@ -91,4 +100,7 @@ function postgresql(logicalExpression, valueIfTrue, valueIfFalse) {
|
|
|
91
100
|
function databricks(logicalExpression, valueIfTrue, valueIfFalse) {
|
|
92
101
|
return sql(logicalExpression, valueIfTrue, valueIfFalse);
|
|
93
102
|
}
|
|
103
|
+
function mssql(logicalExpression, valueIfTrue, valueIfFalse) {
|
|
104
|
+
return sql(logicalExpression, valueIfTrue, valueIfFalse);
|
|
105
|
+
}
|
|
94
106
|
//# sourceMappingURL=if.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":";;;AAAA,4CAKsB;AAOtB,qDAAoE;AACpE,sDAAwD;AACxD,sEAAmE;AACnE,oEAAgF;AAChF;;GAEG;AACU,QAAA,EAAE,GAAuB;IAClC,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,EAAE,2BAAe,CAAC,SAAS,CAAC;IAC/D,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,OAAO;YACzC,SAAS,EAAE,CAAC,yCAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;SACjC;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;SACjC;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,CAAC,IAAiB;;QAC7B,MAAM,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,SAAS,mCAAI,0BAAc,CAAC,OAAO,CAAC;QACnE,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QAClD,IAAI,CAAC,cAAc;YAAE,OAAO,aAAa,CAAC;QAC1C,OAAO,IAAA,mCAAc,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC;CACJ,CAAC;AAEF,SAAS,iBAAiB,CACtB,MAAW,EACX,SAAgC,EAChC,OAAkC;;IAElC,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;IAC1D,MAAM,cAAc,GAChB,UAAU,IAAI,IAAA,sCAAiB,EAAC,UAAU,CAAC;QACvC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,0BAAc,CAAC,OAAO,CAAC;IACjC,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;IAC1D,MAAM,eAAe,GACjB,UAAU,IAAI,IAAA,sCAAiB,EAAC,UAAU,CAAC;QACvC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,0BAAc,CAAC,OAAO,CAAC;IAEjC,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAE1E,MAAM,WAAW,GAAG,IAAA,8BAAgB,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAG,WAAW;QACrB,CAAC,CAAC,qCAAyB,CAAC,QAAQ,CAAC,cAAc,CAAC;QACpD,CAAC,CAAC,cAAc,KAAK,eAAe,CAAC;IAEzC,IAAI,CAAC,KAAK;QACN,qCACI,KAAK,IACF,6BAAgB,CAAC,uBAAU,CAAC,iBAAiB,CAAC,KACjD,YAAY,EAAE;gBACV,SAAS,EAAE,WAAW;oBAClB,CAAC,CAAC,qCAAyB,CAAC,CAAC,CAAC;oBAC9B,CAAC,CAAC,WAAW;aACpB,IACH;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,oBAAoB,CACzB,cAA8B,EAC9B,eAA+B;IAE/B,IAAI,cAAc,KAAK,0BAAc,CAAC,OAAO;QAAE,OAAO,cAAc,CAAC;IACrE,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAClB,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,IAAI,iBAAiB,MAAM,WAAW,MAAM,YAAY,GAAG,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CACd,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAAK,YAAY,GAAG,CAAC;AACxE,CAAC;AAED,SAAS,GAAG,CACR,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO;;WAEA,iBAAiB,SAAS,WAAW;WACrC,YAAY;KAClB,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CACb,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,KAAK,CACV,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.IFS = void 0;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
const dictionary_1 = require("../errors/dictionary");
|
|
6
|
+
const isAggregate_1 = require("../utils/isAggregate");
|
|
6
7
|
const isBooleanExpression_1 = require("../utils/isBooleanExpression");
|
|
7
8
|
const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
8
9
|
/**
|
|
@@ -12,6 +13,8 @@ const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
|
12
13
|
*/
|
|
13
14
|
exports.IFS = {
|
|
14
15
|
identifier: 'IFS',
|
|
16
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
17
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW, constants_1.OPERATION_SCOPE.AGGREGATE],
|
|
15
18
|
recursiveStartIn: 0,
|
|
16
19
|
parameters: [
|
|
17
20
|
{
|
|
@@ -33,6 +36,7 @@ exports.IFS = {
|
|
|
33
36
|
redshift,
|
|
34
37
|
postgresql,
|
|
35
38
|
databricks,
|
|
39
|
+
mssql,
|
|
36
40
|
},
|
|
37
41
|
primitiveResult(args) {
|
|
38
42
|
return calculateIfsPrimitive(args);
|
|
@@ -42,10 +46,15 @@ function sameRecursivePrimitiveType(_param, _dataType, context) {
|
|
|
42
46
|
const args = context.fnNode.arguments;
|
|
43
47
|
const firstArgsPrimitive = calculateFirstIFSPrimitive(args);
|
|
44
48
|
const ifsPrimitive = calculateIfsPrimitive(args);
|
|
45
|
-
const
|
|
49
|
+
const isAggregate = (0, isAggregate_1.isAggregateScope)(context.globalContext);
|
|
50
|
+
const valid = isAggregate
|
|
51
|
+
? constants_1.EXPECTED_AGGREGATE_RESULT.includes(firstArgsPrimitive)
|
|
52
|
+
: (0, primitiveFunctions_1.isSinglePrimitive)(ifsPrimitive);
|
|
46
53
|
if (!valid)
|
|
47
54
|
return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.inferredPrimitive]), { mismatchData: {
|
|
48
|
-
primitive:
|
|
55
|
+
primitive: isAggregate
|
|
56
|
+
? constants_1.EXPECTED_AGGREGATE_RESULT[0]
|
|
57
|
+
: firstArgsPrimitive,
|
|
49
58
|
} });
|
|
50
59
|
return {
|
|
51
60
|
valid,
|
|
@@ -119,4 +128,7 @@ function postgresql(...args) {
|
|
|
119
128
|
function databricks(...args) {
|
|
120
129
|
return sql(...args);
|
|
121
130
|
}
|
|
131
|
+
function mssql(...args) {
|
|
132
|
+
return sql(...args);
|
|
133
|
+
}
|
|
122
134
|
//# sourceMappingURL=ifs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ const utils_1 = require("../utils");
|
|
|
8
8
|
*/
|
|
9
9
|
exports.INCLUDE = {
|
|
10
10
|
identifier: 'INCLUDE',
|
|
11
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
12
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
11
13
|
parameters: [
|
|
12
14
|
{
|
|
13
15
|
identifier: 'STRING',
|
|
@@ -28,6 +30,7 @@ exports.INCLUDE = {
|
|
|
28
30
|
redshift,
|
|
29
31
|
postgresql,
|
|
30
32
|
databricks,
|
|
33
|
+
mssql,
|
|
31
34
|
},
|
|
32
35
|
primitiveResult: constants_1.AST_PRIMITIVES.BOOLEAN,
|
|
33
36
|
};
|
|
@@ -49,4 +52,7 @@ function postgresql(str, targetSearch) {
|
|
|
49
52
|
function databricks(str, targetSearch) {
|
|
50
53
|
return SQL(str, targetSearch);
|
|
51
54
|
}
|
|
55
|
+
function mssql(str, targetSearch) {
|
|
56
|
+
return `(${str} LIKE ('%' + ${targetSearch} + '%'))`;
|
|
57
|
+
}
|
|
52
58
|
//# sourceMappingURL=include.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"include.js","sourceRoot":"","sources":["../../../src/functions/include.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"include.js","sourceRoot":"","sources":["../../../src/functions/include.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAE/D,oCAAyC;AAEzC;;GAEG;AACU,QAAA,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,OAAO;CAC1C,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW,EAAE,YAAoB;IACpD,OAAO,WAAW,GAAG,KAAK,YAAY,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,YAAoB;IAC1C,OAAO,IAAI,GAAG,iBAAiB,YAAY,WAAW,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,YAAoB;IAChD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,YAAoB;IAC/C,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,YAAoB;IACjD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,YAAoB;IACjD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,YAAoB;IAC5C,OAAO,IAAI,GAAG,gBAAgB,YAAY,UAAU,CAAC;AACzD,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { FunctionDefinition, FunctionList } from '../constants/interfaces';
|
|
2
2
|
export declare const functionList: FunctionList;
|
|
3
3
|
export declare const FUNCTION_LIST: string[];
|
|
4
|
+
export declare const ROW_FUNCTION_LIST: string[];
|
|
5
|
+
export declare const AGGREGATE_FUNCTION_LIST: string[];
|
|
4
6
|
export declare function getFunctionDetail(functionName: string): FunctionDefinition | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFunctionDetail = exports.FUNCTION_LIST = exports.functionList = void 0;
|
|
3
|
+
exports.getFunctionDetail = exports.AGGREGATE_FUNCTION_LIST = exports.ROW_FUNCTION_LIST = exports.FUNCTION_LIST = exports.functionList = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
4
5
|
const mid_1 = require("./mid");
|
|
5
6
|
const abs_1 = require("./abs");
|
|
6
7
|
const datedif_1 = require("./datedif");
|
|
@@ -42,6 +43,14 @@ const rounddown_1 = require("./rounddown");
|
|
|
42
43
|
const roundup_1 = require("./roundup");
|
|
43
44
|
const millisecond_1 = require("./millisecond");
|
|
44
45
|
const text_1 = require("./text");
|
|
46
|
+
const aggSum_1 = require("./aggSum");
|
|
47
|
+
const aggMin_1 = require("./aggMin");
|
|
48
|
+
const aggMax_1 = require("./aggMax");
|
|
49
|
+
const aggAvg_1 = require("./aggAvg");
|
|
50
|
+
const aggMed_1 = require("./aggMed");
|
|
51
|
+
const aggCount_1 = require("./aggCount");
|
|
52
|
+
const aggDistcount_1 = require("./aggDistcount");
|
|
53
|
+
const now_1 = require("./now");
|
|
45
54
|
exports.functionList = {
|
|
46
55
|
MID: mid_1.MID,
|
|
47
56
|
ABS: abs_1.ABS,
|
|
@@ -84,8 +93,18 @@ exports.functionList = {
|
|
|
84
93
|
ROUNDUP: roundup_1.ROUNDUP,
|
|
85
94
|
MILLISECOND: millisecond_1.MILLISECOND,
|
|
86
95
|
TEXT: text_1.TEXT,
|
|
96
|
+
SUM: aggSum_1.SUM,
|
|
97
|
+
MINVAL: aggMin_1.MINVAL,
|
|
98
|
+
MAXVAL: aggMax_1.MAXVAL,
|
|
99
|
+
AVG: aggAvg_1.AVG,
|
|
100
|
+
MED: aggMed_1.MED,
|
|
101
|
+
COUNT: aggCount_1.COUNT,
|
|
102
|
+
DISTCOUNT: aggDistcount_1.DISTCOUNT,
|
|
103
|
+
NOW: now_1.NOW,
|
|
87
104
|
};
|
|
88
105
|
exports.FUNCTION_LIST = Object.keys(exports.functionList);
|
|
106
|
+
exports.ROW_FUNCTION_LIST = Object.keys(exports.functionList).filter((key) => exports.functionList[key].functionScope.includes(constants_1.OPERATION_SCOPE.RAW));
|
|
107
|
+
exports.AGGREGATE_FUNCTION_LIST = Object.keys(exports.functionList).filter((key) => exports.functionList[key].functionScope.includes(constants_1.OPERATION_SCOPE.AGGREGATE));
|
|
89
108
|
function getFunctionDetail(functionName) {
|
|
90
109
|
return exports.functionList[functionName];
|
|
91
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,15 @@ const constants_1 = require("../constants");
|
|
|
5
5
|
const dictionary_1 = require("../errors/dictionary");
|
|
6
6
|
const isAColumn_1 = require("../utils/isAColumn");
|
|
7
7
|
const isALiteral_1 = require("../utils/isALiteral");
|
|
8
|
+
const isAggregate_1 = require("../utils/isAggregate");
|
|
8
9
|
const primitiveFunctions_1 = require("../utils/primitiveFunctions");
|
|
9
10
|
/**
|
|
10
11
|
* `ISNULL` Returns the replacement if the value is a null
|
|
11
12
|
*/
|
|
12
13
|
exports.ISNULL = {
|
|
13
14
|
identifier: 'ISNULL',
|
|
15
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
16
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW, constants_1.OPERATION_SCOPE.AGGREGATE],
|
|
14
17
|
parameters: [
|
|
15
18
|
{
|
|
16
19
|
identifier: 'VALUE',
|
|
@@ -30,18 +33,22 @@ exports.ISNULL = {
|
|
|
30
33
|
redshift,
|
|
31
34
|
postgresql,
|
|
32
35
|
databricks,
|
|
36
|
+
mssql,
|
|
33
37
|
},
|
|
34
38
|
primitiveResult(args) {
|
|
35
39
|
return (0, primitiveFunctions_1.inferPrimitive)(...args.map((arg) => arg.primitive));
|
|
36
40
|
},
|
|
37
41
|
};
|
|
38
42
|
function samePrimitiveTypeCol(param, dataType, context) {
|
|
43
|
+
const isAggregate = (0, isAggregate_1.isAggregateScope)(context.globalContext);
|
|
44
|
+
const isAggFunction = isAggregate && (0, isAggregate_1.isAggregateFunction)(context.argument.node);
|
|
39
45
|
const isColumn = (0, isAColumn_1.isAColumn)(context);
|
|
40
46
|
const baseResult = samePrimitiveType(param, dataType, context);
|
|
41
|
-
const
|
|
47
|
+
const isFunctionOrColumn = isAggregate ? isAggFunction : isColumn;
|
|
48
|
+
const valid = isFunctionOrColumn && baseResult.valid;
|
|
42
49
|
const primitive = baseResult.mismatchData.primitive;
|
|
43
50
|
return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
|
|
44
|
-
type: constants_1.AST_TYPES.column,
|
|
51
|
+
type: isAggregate ? constants_1.AST_TYPES.functionCall : constants_1.AST_TYPES.column,
|
|
45
52
|
primitive,
|
|
46
53
|
} }), (!isColumn && Object.assign({}, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingColumnExpression]))), { valid });
|
|
47
54
|
}
|
|
@@ -100,4 +107,7 @@ function postgresql(value, replacement) {
|
|
|
100
107
|
function databricks(value, replacement) {
|
|
101
108
|
return sql(value, replacement);
|
|
102
109
|
}
|
|
110
|
+
function mssql(value, replacement) {
|
|
111
|
+
return sql(value, replacement);
|
|
112
|
+
}
|
|
103
113
|
//# sourceMappingURL=isNull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ const isInteger_1 = require("../utils/isInteger");
|
|
|
10
10
|
*/
|
|
11
11
|
exports.LEFT = {
|
|
12
12
|
identifier: 'LEFT',
|
|
13
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
14
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
13
15
|
parameters: [
|
|
14
16
|
{
|
|
15
17
|
identifier: 'CURRENT',
|
|
@@ -34,6 +36,7 @@ exports.LEFT = {
|
|
|
34
36
|
redshift,
|
|
35
37
|
postgresql,
|
|
36
38
|
databricks,
|
|
39
|
+
mssql,
|
|
37
40
|
},
|
|
38
41
|
primitiveResult: constants_1.AST_PRIMITIVES.STRING,
|
|
39
42
|
};
|
|
@@ -63,4 +66,14 @@ function postgresql(current, length) {
|
|
|
63
66
|
function databricks(current, length) {
|
|
64
67
|
return SQL(current, length);
|
|
65
68
|
}
|
|
69
|
+
function mssql(current, length) {
|
|
70
|
+
const rawLen = length !== null && length !== void 0 ? length : '1';
|
|
71
|
+
const safeLen = `CAST(FLOOR(${rawLen}) AS INT)`;
|
|
72
|
+
return `(case
|
|
73
|
+
when ${rawLen} IS NULL then NULL
|
|
74
|
+
when (${safeLen} < 0) then ''
|
|
75
|
+
else
|
|
76
|
+
LEFT(${current}, ${safeLen})
|
|
77
|
+
end)`;
|
|
78
|
+
}
|
|
66
79
|
//# sourceMappingURL=left.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":";;;AAAA,4CAIsB;AAEtB,oCAAwD;AACxD,0FAAuF;AACvF,kDAA+C;AAE/C;;GAEG;AACU,QAAA,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE;gBACP,qBAAa;gBACb,IAAA,6DAA6B,EAAC,CAAC,CAAC;gBAChC,qBAAS;aACZ;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,MAAc;IAClD,OAAO,GAAG,sCAA0B,CAAC,SAAS,IAAI,OAAO,QACrD,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CACd,GAAG,CAAC;AACR,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,QAAQ,OAAO,WAAW,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,aAAa,CAAC;AAC9D,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,MAAc;IACxC,MAAM,OAAO,GAAG,SAAS,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,YAAY,CAAC;IACjD,OAAO;;eAEI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC;UAChB,OAAO;;eAEF,OAAO,KAAK,OAAO;;MAE5B,CAAC,IAAI,EAAE,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAc;IAC7C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,KAAK,CAAC,OAAe,EAAE,MAAc;IAC1C,MAAM,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,GAAG,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,MAAM,WAAW,CAAC;IAEhD,OAAO;WACA,MAAM;YACL,OAAO;;aAEN,OAAO,KAAK,OAAO;OACzB,CAAC;AACR,CAAC"}
|
|
@@ -8,6 +8,8 @@ const utils_1 = require("../utils");
|
|
|
8
8
|
*/
|
|
9
9
|
exports.LENGTH = {
|
|
10
10
|
identifier: 'LENGTH',
|
|
11
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
12
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
11
13
|
parameters: [
|
|
12
14
|
{
|
|
13
15
|
identifier: 'STRING',
|
|
@@ -22,6 +24,7 @@ exports.LENGTH = {
|
|
|
22
24
|
redshift,
|
|
23
25
|
postgresql,
|
|
24
26
|
databricks,
|
|
27
|
+
mssql,
|
|
25
28
|
},
|
|
26
29
|
primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
|
|
27
30
|
};
|
|
@@ -46,4 +49,10 @@ function postgresql(current) {
|
|
|
46
49
|
function databricks(current) {
|
|
47
50
|
return SQL(current);
|
|
48
51
|
}
|
|
52
|
+
function mssql(current) {
|
|
53
|
+
return `(CASE
|
|
54
|
+
WHEN ${current} IS NULL THEN 0
|
|
55
|
+
ELSE LEN(${current} + 'x') - 1
|
|
56
|
+
END)`;
|
|
57
|
+
}
|
|
49
58
|
//# sourceMappingURL=length.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/functions/length.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/functions/length.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAE/D,oCAAyC;AAEzC;;GAEG;AACU,QAAA,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,UAAU,OAAO,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO;gBACK,OAAO;sBACD,OAAO;SACpB,CAAC;AACV,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC1B,OAAO;eACI,OAAO;mBACH,OAAO;SACjB,CAAC;AACV,CAAC"}
|
|
@@ -4,11 +4,14 @@ exports.LOG = void 0;
|
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
6
|
const greaterThanReference_1 = require("../utils/greaterThanReference");
|
|
7
|
+
const sql_1 = require("../utils/sql");
|
|
7
8
|
/**
|
|
8
9
|
* `LOG` Returns a number rounded to the next greatest even integer.
|
|
9
10
|
*/
|
|
10
11
|
exports.LOG = {
|
|
11
12
|
identifier: 'LOG',
|
|
13
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
14
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW, constants_1.OPERATION_SCOPE.AGGREGATE],
|
|
12
15
|
parameters: [
|
|
13
16
|
{
|
|
14
17
|
identifier: 'NUM_1',
|
|
@@ -29,6 +32,7 @@ exports.LOG = {
|
|
|
29
32
|
redshift,
|
|
30
33
|
postgresql,
|
|
31
34
|
databricks,
|
|
35
|
+
mssql,
|
|
32
36
|
},
|
|
33
37
|
primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
|
|
34
38
|
};
|
|
@@ -55,9 +59,14 @@ function redshift(value, base) {
|
|
|
55
59
|
END)`.trim();
|
|
56
60
|
}
|
|
57
61
|
function postgresql(value, base) {
|
|
58
|
-
|
|
62
|
+
if (typeof base === 'string')
|
|
63
|
+
base = (0, sql_1.fromFloatToNumeric)(base);
|
|
64
|
+
return SQL((0, sql_1.fromFloatToNumeric)(value), base);
|
|
59
65
|
}
|
|
60
66
|
function databricks(value, base) {
|
|
61
67
|
return SQL(value, base);
|
|
62
68
|
}
|
|
69
|
+
function mssql(value, base) {
|
|
70
|
+
return SQL(value, base);
|
|
71
|
+
}
|
|
63
72
|
//# sourceMappingURL=log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/functions/log.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/functions/log.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAE/D,oCAAyC;AACzC,wEAAqE;AACrE,sCAAkD;AAElD;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,EAAE,2BAAe,CAAC,SAAS,CAAC;IAC/D,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,EAAE,IAAA,2CAAoB,EAAC,CAAC,CAAC,CAAC;SACtD;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,EAAE,IAAA,2CAAoB,EAAC,CAAC,CAAC,CAAC;SACtD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAC9C,OAAO,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IAC3B,OAAO;;gBAEK,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,KAAK;mBAC7D,KAAK,KAAK,KAAK;SACzB,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,IAAY;IAC1C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IAC3B,OAAO;;gBAEK,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,KAAK;mBAC7D,KAAK,UAAU,KAAK;SAC9B,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,IAAI,GAAG,IAAA,wBAAkB,EAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC,IAAA,wBAAkB,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACtC,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -8,6 +8,8 @@ const utils_1 = require("../utils");
|
|
|
8
8
|
*/
|
|
9
9
|
exports.LOWER = {
|
|
10
10
|
identifier: 'LOWER',
|
|
11
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
12
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
11
13
|
parameters: [
|
|
12
14
|
{
|
|
13
15
|
identifier: 'STRING',
|
|
@@ -22,6 +24,7 @@ exports.LOWER = {
|
|
|
22
24
|
redshift,
|
|
23
25
|
postgresql,
|
|
24
26
|
databricks,
|
|
27
|
+
mssql,
|
|
25
28
|
},
|
|
26
29
|
primitiveResult: constants_1.AST_PRIMITIVES.STRING,
|
|
27
30
|
};
|
|
@@ -43,4 +46,7 @@ function postgresql(current) {
|
|
|
43
46
|
function databricks(current) {
|
|
44
47
|
return SQL(current);
|
|
45
48
|
}
|
|
49
|
+
function mssql(current) {
|
|
50
|
+
return SQL(current);
|
|
51
|
+
}
|
|
46
52
|
//# sourceMappingURL=lower.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAE/D,oCAAyC;AAEzC;;GAEG;AACU,QAAA,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,GAAG,OAAO,gBAAgB,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO,SAAS,OAAO,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -9,6 +9,8 @@ const isSameAndValidRecursiveDataType_1 = require("../utils/isSameAndValidRecurs
|
|
|
9
9
|
*/
|
|
10
10
|
exports.MAX = {
|
|
11
11
|
identifier: 'MAX',
|
|
12
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
13
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW, constants_1.OPERATION_SCOPE.AGGREGATE],
|
|
12
14
|
recursiveStartIn: 1,
|
|
13
15
|
parameters: [
|
|
14
16
|
{
|
|
@@ -32,6 +34,7 @@ exports.MAX = {
|
|
|
32
34
|
redshift,
|
|
33
35
|
postgresql,
|
|
34
36
|
databricks,
|
|
37
|
+
mssql,
|
|
35
38
|
},
|
|
36
39
|
primitiveResult(args) {
|
|
37
40
|
return (0, getValidDataTypeParam_1.getValidDataTypeParam)(args, constants_1.DATE_AND_NUMBERS_DATA_TYPES);
|
|
@@ -61,4 +64,7 @@ function postgresql(...args) {
|
|
|
61
64
|
function databricks(...args) {
|
|
62
65
|
return sql(...args);
|
|
63
66
|
}
|
|
67
|
+
function mssql(...args) {
|
|
68
|
+
return sql(...args);
|
|
69
|
+
}
|
|
64
70
|
//# sourceMappingURL=max.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/functions/max.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/functions/max.ts"],"names":[],"mappings":";;;AAAA,4CAA4E;AAE5E,0EAAuE;AACvE,8FAA2F;AAE3F;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,EAAE,2BAAe,CAAC,SAAS,CAAC;IAC/D,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,IAAA,iEAA+B,EAAC,uCAA2B,CAAC;aAC/D;SACJ;QACD;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,IAAA,iEAA+B,EAAC,uCAA2B,CAAC;aAC/D;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,CAAC,IAAiB;QAC7B,OAAO,IAAA,6CAAqB,EAAC,IAAI,EAAE,uCAA2B,CAAC,CAAC;IACpE,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAG,IAAW;IACjC,OAAO,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IACvB,OAAO,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,IAAW;IAC7B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,IAAW,EAAE,KAAa;IAC3C,OAAO;gBACK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;eACnD,KAAK;SACX,CAAC;AACV,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC5B,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,GAAG,IAAW;IACzB,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -10,6 +10,8 @@ const isInteger_1 = require("../utils/isInteger");
|
|
|
10
10
|
*/
|
|
11
11
|
exports.MID = {
|
|
12
12
|
identifier: 'MID',
|
|
13
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
14
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
13
15
|
parameters: [
|
|
14
16
|
{
|
|
15
17
|
identifier: 'CURRENT',
|
|
@@ -40,6 +42,7 @@ exports.MID = {
|
|
|
40
42
|
redshift,
|
|
41
43
|
postgresql,
|
|
42
44
|
databricks,
|
|
45
|
+
mssql,
|
|
43
46
|
},
|
|
44
47
|
primitiveResult: constants_1.AST_PRIMITIVES.STRING,
|
|
45
48
|
};
|
|
@@ -77,4 +80,21 @@ function postgresql(current, start, length) {
|
|
|
77
80
|
function databricks(current, start, length) {
|
|
78
81
|
return `SUBSTRING(${current}, ${sqlRound(start)} , ${sqlRound(length)})`;
|
|
79
82
|
}
|
|
83
|
+
function mssql(current, start, length) {
|
|
84
|
+
const safeLen = `(CASE WHEN ${current} IS NULL THEN 0 ELSE LEN(${current} + 'x') - 1 END)`;
|
|
85
|
+
return `
|
|
86
|
+
(case
|
|
87
|
+
when ${current} IS NULL OR ${start} IS NULL OR ${length} IS NULL then NULL
|
|
88
|
+
when (${sqlRound(length)} < 0) OR (${sqlRound(start)} * -1) > ${safeLen} then ''
|
|
89
|
+
else
|
|
90
|
+
SUBSTRING(${current},
|
|
91
|
+
(case
|
|
92
|
+
when ${sqlRound(start)} < 0 then (${safeLen} + ${sqlRound(start)} + 1)
|
|
93
|
+
when ${sqlRound(start)} = 0 then 1
|
|
94
|
+
else ${sqlRound(start)}
|
|
95
|
+
end),
|
|
96
|
+
${sqlRound(length)})
|
|
97
|
+
end
|
|
98
|
+
)`.trim();
|
|
99
|
+
}
|
|
80
100
|
//# sourceMappingURL=mid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ const constants_1 = require("../constants");
|
|
|
9
9
|
*/
|
|
10
10
|
exports.MILLISECOND = {
|
|
11
11
|
identifier: 'MILLISECOND',
|
|
12
|
+
operationScope: constants_1.OPERATION_SCOPE.RAW,
|
|
13
|
+
functionScope: [constants_1.OPERATION_SCOPE.RAW],
|
|
12
14
|
parameters: [
|
|
13
15
|
{
|
|
14
16
|
identifier: 'DATE',
|
|
@@ -23,6 +25,7 @@ exports.MILLISECOND = {
|
|
|
23
25
|
redshift,
|
|
24
26
|
postgresql,
|
|
25
27
|
databricks,
|
|
28
|
+
mssql,
|
|
26
29
|
},
|
|
27
30
|
primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
|
|
28
31
|
};
|
|
@@ -60,4 +63,11 @@ function databricks(value) {
|
|
|
60
63
|
*/
|
|
61
64
|
return `CAST(DATE_FORMAT(${value}, 'SSS') AS INT)`;
|
|
62
65
|
}
|
|
66
|
+
function mssql(value) {
|
|
67
|
+
/*
|
|
68
|
+
In MSSQL, the DATEPART function extracts the milliseconds from the datetime value.
|
|
69
|
+
For example, '2025-01-03 07:37:56.642' will return 642 as the milliseconds.
|
|
70
|
+
*/
|
|
71
|
+
return `DATEPART(MILLISECOND, ${value})`;
|
|
72
|
+
}
|
|
63
73
|
//# sourceMappingURL=millisecond.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"millisecond.js","sourceRoot":"","sources":["../../../src/functions/millisecond.ts"],"names":[],"mappings":";;;AACA,4DAAmE;AACnE,oCAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"millisecond.js","sourceRoot":"","sources":["../../../src/functions/millisecond.ts"],"names":[],"mappings":";;;AACA,4DAAmE;AACnE,oCAAuC;AACvC,4CAA+D;AAE/D;;GAEG;AACU,QAAA,WAAW,GAAuB;IAC3C,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,2BAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,2BAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,0BAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,IAAA,2BAAiB,EAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B;;OAEG;IACH,OAAO,4BAA4B,KAAK,cAAc,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B;;;;;MAKE;IACF,OAAO,4BAA4B,KAAK,iCAAiC,KAAK,aAAa,CAAC;AAChG,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B;;;;;MAKE;IACF,OAAO,8BAA8B,KAAK,mCAAmC,KAAK,aAAa,CAAC;AACpG,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B;;;MAGE;IACF,OAAO,oBAAoB,KAAK,kBAAkB,CAAC;AACvD,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IACxB;;;MAGE;IACF,OAAO,yBAAyB,KAAK,GAAG,CAAC;AAC7C,CAAC"}
|