@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
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE, EXPECTED_AGGREGATE_RESULT, } from '../constants';
|
|
2
2
|
import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
|
|
3
|
+
import { isAggregateScope } from '../utils/isAggregate';
|
|
3
4
|
import { isBooleanExpression } from '../utils/isBooleanExpression';
|
|
4
5
|
import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
|
|
5
6
|
/**
|
|
@@ -7,6 +8,8 @@ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
|
|
|
7
8
|
*/
|
|
8
9
|
export const IF = {
|
|
9
10
|
identifier: 'IF',
|
|
11
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
12
|
+
functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
|
|
10
13
|
parameters: [
|
|
11
14
|
{
|
|
12
15
|
identifier: 'LOGICAL_EXPRESSION',
|
|
@@ -33,6 +36,7 @@ export const IF = {
|
|
|
33
36
|
redshift,
|
|
34
37
|
postgresql,
|
|
35
38
|
databricks,
|
|
39
|
+
mssql,
|
|
36
40
|
},
|
|
37
41
|
primitiveResult(args) {
|
|
38
42
|
var _a, _b, _c, _d;
|
|
@@ -54,10 +58,15 @@ function samePrimitiveType(_param, _dataType, context) {
|
|
|
54
58
|
? sPrimitive
|
|
55
59
|
: AST_PRIMITIVES.UNKNOWN;
|
|
56
60
|
const ifPrimitive = calculateIfPrimitive(firstPrimitive, secondPrimitive);
|
|
57
|
-
const
|
|
61
|
+
const isAggregate = isAggregateScope(context.globalContext);
|
|
62
|
+
const valid = isAggregate
|
|
63
|
+
? EXPECTED_AGGREGATE_RESULT.includes(firstPrimitive)
|
|
64
|
+
: firstPrimitive === secondPrimitive;
|
|
58
65
|
if (!valid)
|
|
59
66
|
return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
|
|
60
|
-
primitive:
|
|
67
|
+
primitive: isAggregate
|
|
68
|
+
? EXPECTED_AGGREGATE_RESULT[0]
|
|
69
|
+
: ifPrimitive,
|
|
61
70
|
} });
|
|
62
71
|
return { valid };
|
|
63
72
|
}
|
|
@@ -88,4 +97,7 @@ function postgresql(logicalExpression, valueIfTrue, valueIfFalse) {
|
|
|
88
97
|
function databricks(logicalExpression, valueIfTrue, valueIfFalse) {
|
|
89
98
|
return sql(logicalExpression, valueIfTrue, valueIfFalse);
|
|
90
99
|
}
|
|
100
|
+
function mssql(logicalExpression, valueIfTrue, valueIfFalse) {
|
|
101
|
+
return sql(logicalExpression, valueIfTrue, valueIfFalse);
|
|
102
|
+
}
|
|
91
103
|
//# sourceMappingURL=if.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE, EXPECTED_AGGREGATE_RESULT, } from '../constants';
|
|
2
2
|
import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
|
|
3
|
+
import { isAggregateScope } from '../utils/isAggregate';
|
|
3
4
|
import { isBooleanExpression } from '../utils/isBooleanExpression';
|
|
4
5
|
import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
|
|
5
6
|
/**
|
|
@@ -9,6 +10,8 @@ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
|
|
|
9
10
|
*/
|
|
10
11
|
export const IFS = {
|
|
11
12
|
identifier: 'IFS',
|
|
13
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
14
|
+
functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
|
|
12
15
|
recursiveStartIn: 0,
|
|
13
16
|
parameters: [
|
|
14
17
|
{
|
|
@@ -30,6 +33,7 @@ export const IFS = {
|
|
|
30
33
|
redshift,
|
|
31
34
|
postgresql,
|
|
32
35
|
databricks,
|
|
36
|
+
mssql,
|
|
33
37
|
},
|
|
34
38
|
primitiveResult(args) {
|
|
35
39
|
return calculateIfsPrimitive(args);
|
|
@@ -39,10 +43,15 @@ function sameRecursivePrimitiveType(_param, _dataType, context) {
|
|
|
39
43
|
const args = context.fnNode.arguments;
|
|
40
44
|
const firstArgsPrimitive = calculateFirstIFSPrimitive(args);
|
|
41
45
|
const ifsPrimitive = calculateIfsPrimitive(args);
|
|
42
|
-
const
|
|
46
|
+
const isAggregate = isAggregateScope(context.globalContext);
|
|
47
|
+
const valid = isAggregate
|
|
48
|
+
? EXPECTED_AGGREGATE_RESULT.includes(firstArgsPrimitive)
|
|
49
|
+
: isSinglePrimitive(ifsPrimitive);
|
|
43
50
|
if (!valid)
|
|
44
51
|
return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
|
|
45
|
-
primitive:
|
|
52
|
+
primitive: isAggregate
|
|
53
|
+
? EXPECTED_AGGREGATE_RESULT[0]
|
|
54
|
+
: firstArgsPrimitive,
|
|
46
55
|
} });
|
|
47
56
|
return {
|
|
48
57
|
valid,
|
|
@@ -116,4 +125,7 @@ function postgresql(...args) {
|
|
|
116
125
|
function databricks(...args) {
|
|
117
126
|
return sql(...args);
|
|
118
127
|
}
|
|
128
|
+
function mssql(...args) {
|
|
129
|
+
return sql(...args);
|
|
130
|
+
}
|
|
119
131
|
//# sourceMappingURL=ifs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
|
|
2
2
|
import { isStringParam } from '../utils';
|
|
3
3
|
/**
|
|
4
4
|
* `INCLUDE` Returns true if a string contains a specified sequence of characters.
|
|
5
5
|
*/
|
|
6
6
|
export const INCLUDE = {
|
|
7
7
|
identifier: 'INCLUDE',
|
|
8
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
9
|
+
functionScope: [OPERATION_SCOPE.RAW],
|
|
8
10
|
parameters: [
|
|
9
11
|
{
|
|
10
12
|
identifier: 'STRING',
|
|
@@ -25,6 +27,7 @@ export const INCLUDE = {
|
|
|
25
27
|
redshift,
|
|
26
28
|
postgresql,
|
|
27
29
|
databricks,
|
|
30
|
+
mssql,
|
|
28
31
|
},
|
|
29
32
|
primitiveResult: AST_PRIMITIVES.BOOLEAN,
|
|
30
33
|
};
|
|
@@ -46,4 +49,7 @@ function postgresql(str, targetSearch) {
|
|
|
46
49
|
function databricks(str, targetSearch) {
|
|
47
50
|
return SQL(str, targetSearch);
|
|
48
51
|
}
|
|
52
|
+
function mssql(str, targetSearch) {
|
|
53
|
+
return `(${str} LIKE ('%' + ${targetSearch} + '%'))`;
|
|
54
|
+
}
|
|
49
55
|
//# sourceMappingURL=include.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"include.js","sourceRoot":"","sources":["../../../src/functions/include.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"include.js","sourceRoot":"","sources":["../../../src/functions/include.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,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,3 +1,4 @@
|
|
|
1
|
+
import { OPERATION_SCOPE } from '../constants';
|
|
1
2
|
import { MID } from './mid';
|
|
2
3
|
import { ABS } from './abs';
|
|
3
4
|
import { DATEDIF } from './datedif';
|
|
@@ -39,6 +40,14 @@ import { ROUNDDOWN } from './rounddown';
|
|
|
39
40
|
import { ROUNDUP } from './roundup';
|
|
40
41
|
import { MILLISECOND } from './millisecond';
|
|
41
42
|
import { TEXT } from './text';
|
|
43
|
+
import { SUM } from './aggSum';
|
|
44
|
+
import { MINVAL } from './aggMin';
|
|
45
|
+
import { MAXVAL } from './aggMax';
|
|
46
|
+
import { AVG } from './aggAvg';
|
|
47
|
+
import { MED } from './aggMed';
|
|
48
|
+
import { COUNT } from './aggCount';
|
|
49
|
+
import { DISTCOUNT } from './aggDistcount';
|
|
50
|
+
import { NOW } from './now';
|
|
42
51
|
export const functionList = {
|
|
43
52
|
MID,
|
|
44
53
|
ABS,
|
|
@@ -81,8 +90,18 @@ export const functionList = {
|
|
|
81
90
|
ROUNDUP,
|
|
82
91
|
MILLISECOND,
|
|
83
92
|
TEXT,
|
|
93
|
+
SUM,
|
|
94
|
+
MINVAL,
|
|
95
|
+
MAXVAL,
|
|
96
|
+
AVG,
|
|
97
|
+
MED,
|
|
98
|
+
COUNT,
|
|
99
|
+
DISTCOUNT,
|
|
100
|
+
NOW,
|
|
84
101
|
};
|
|
85
102
|
export const FUNCTION_LIST = Object.keys(functionList);
|
|
103
|
+
export const ROW_FUNCTION_LIST = Object.keys(functionList).filter((key) => functionList[key].functionScope.includes(OPERATION_SCOPE.RAW));
|
|
104
|
+
export const AGGREGATE_FUNCTION_LIST = Object.keys(functionList).filter((key) => functionList[key].functionScope.includes(OPERATION_SCOPE.AGGREGATE));
|
|
86
105
|
export function getFunctionDetail(functionName) {
|
|
87
106
|
return functionList[functionName];
|
|
88
107
|
}
|
|
@@ -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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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { AST_PRIMITIVES, AST_TYPES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, AST_TYPES, OPERATION_SCOPE, } from '../constants';
|
|
2
2
|
import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
|
|
3
3
|
import { isAColumn } from '../utils/isAColumn';
|
|
4
4
|
import { isALiteral } from '../utils/isALiteral';
|
|
5
|
+
import { isAggregateScope, isAggregateFunction } from '../utils/isAggregate';
|
|
5
6
|
import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
|
|
6
7
|
/**
|
|
7
8
|
* `ISNULL` Returns the replacement if the value is a null
|
|
8
9
|
*/
|
|
9
10
|
export const ISNULL = {
|
|
10
11
|
identifier: 'ISNULL',
|
|
12
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
13
|
+
functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
|
|
11
14
|
parameters: [
|
|
12
15
|
{
|
|
13
16
|
identifier: 'VALUE',
|
|
@@ -27,18 +30,22 @@ export const ISNULL = {
|
|
|
27
30
|
redshift,
|
|
28
31
|
postgresql,
|
|
29
32
|
databricks,
|
|
33
|
+
mssql,
|
|
30
34
|
},
|
|
31
35
|
primitiveResult(args) {
|
|
32
36
|
return inferPrimitive(...args.map((arg) => arg.primitive));
|
|
33
37
|
},
|
|
34
38
|
};
|
|
35
39
|
function samePrimitiveTypeCol(param, dataType, context) {
|
|
40
|
+
const isAggregate = isAggregateScope(context.globalContext);
|
|
41
|
+
const isAggFunction = isAggregate && isAggregateFunction(context.argument.node);
|
|
36
42
|
const isColumn = isAColumn(context);
|
|
37
43
|
const baseResult = samePrimitiveType(param, dataType, context);
|
|
38
|
-
const
|
|
44
|
+
const isFunctionOrColumn = isAggregate ? isAggFunction : isColumn;
|
|
45
|
+
const valid = isFunctionOrColumn && baseResult.valid;
|
|
39
46
|
const primitive = baseResult.mismatchData.primitive;
|
|
40
47
|
return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
|
|
41
|
-
type: AST_TYPES.column,
|
|
48
|
+
type: isAggregate ? AST_TYPES.functionCall : AST_TYPES.column,
|
|
42
49
|
primitive,
|
|
43
50
|
} }), (!isColumn && Object.assign({}, ERROR_DICTIONARY[ERROR_LIST.missingColumnExpression]))), { valid });
|
|
44
51
|
}
|
|
@@ -97,4 +104,7 @@ function postgresql(value, replacement) {
|
|
|
97
104
|
function databricks(value, replacement) {
|
|
98
105
|
return sql(value, replacement);
|
|
99
106
|
}
|
|
107
|
+
function mssql(value, replacement) {
|
|
108
|
+
return sql(value, replacement);
|
|
109
|
+
}
|
|
100
110
|
//# sourceMappingURL=isNull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES, OPERATION_SCOPE, } from '../constants';
|
|
2
2
|
import { isNumberParam, isStringParam } from '../utils';
|
|
3
3
|
import { greaterThanOrEqualToReference } from '../utils/greaterThanOrEqualToReference';
|
|
4
4
|
import { isInteger } from '../utils/isInteger';
|
|
@@ -7,6 +7,8 @@ import { isInteger } from '../utils/isInteger';
|
|
|
7
7
|
*/
|
|
8
8
|
export const LEFT = {
|
|
9
9
|
identifier: 'LEFT',
|
|
10
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
11
|
+
functionScope: [OPERATION_SCOPE.RAW],
|
|
10
12
|
parameters: [
|
|
11
13
|
{
|
|
12
14
|
identifier: 'CURRENT',
|
|
@@ -31,6 +33,7 @@ export const LEFT = {
|
|
|
31
33
|
redshift,
|
|
32
34
|
postgresql,
|
|
33
35
|
databricks,
|
|
36
|
+
mssql,
|
|
34
37
|
},
|
|
35
38
|
primitiveResult: AST_PRIMITIVES.STRING,
|
|
36
39
|
};
|
|
@@ -60,4 +63,14 @@ function postgresql(current, length) {
|
|
|
60
63
|
function databricks(current, length) {
|
|
61
64
|
return SQL(current, length);
|
|
62
65
|
}
|
|
66
|
+
function mssql(current, length) {
|
|
67
|
+
const rawLen = length !== null && length !== void 0 ? length : '1';
|
|
68
|
+
const safeLen = `CAST(FLOOR(${rawLen}) AS INT)`;
|
|
69
|
+
return `(case
|
|
70
|
+
when ${rawLen} IS NULL then NULL
|
|
71
|
+
when (${safeLen} < 0) then ''
|
|
72
|
+
else
|
|
73
|
+
LEFT(${current}, ${safeLen})
|
|
74
|
+
end)`;
|
|
75
|
+
}
|
|
63
76
|
//# sourceMappingURL=left.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,0BAA0B,EAC1B,eAAe,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE;gBACP,aAAa;gBACb,6BAA6B,CAAC,CAAC,CAAC;gBAChC,SAAS;aACZ;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,MAAc;IAClD,OAAO,GAAG,0BAA0B,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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
|
|
2
2
|
import { isStringParam } from '../utils';
|
|
3
3
|
/**
|
|
4
4
|
* `LENGTH` Returns the number characters of a string.
|
|
5
5
|
*/
|
|
6
6
|
export const LENGTH = {
|
|
7
7
|
identifier: 'LENGTH',
|
|
8
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
9
|
+
functionScope: [OPERATION_SCOPE.RAW],
|
|
8
10
|
parameters: [
|
|
9
11
|
{
|
|
10
12
|
identifier: 'STRING',
|
|
@@ -19,6 +21,7 @@ export const LENGTH = {
|
|
|
19
21
|
redshift,
|
|
20
22
|
postgresql,
|
|
21
23
|
databricks,
|
|
24
|
+
mssql,
|
|
22
25
|
},
|
|
23
26
|
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
24
27
|
};
|
|
@@ -43,4 +46,10 @@ function postgresql(current) {
|
|
|
43
46
|
function databricks(current) {
|
|
44
47
|
return SQL(current);
|
|
45
48
|
}
|
|
49
|
+
function mssql(current) {
|
|
50
|
+
return `(CASE
|
|
51
|
+
WHEN ${current} IS NULL THEN 0
|
|
52
|
+
ELSE LEN(${current} + 'x') - 1
|
|
53
|
+
END)`;
|
|
54
|
+
}
|
|
46
55
|
//# sourceMappingURL=length.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/functions/length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/functions/length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
|
|
2
2
|
import { isNumberParam } from '../utils';
|
|
3
3
|
import { greaterThanReference } from '../utils/greaterThanReference';
|
|
4
|
+
import { fromFloatToNumeric } from '../utils/sql';
|
|
4
5
|
/**
|
|
5
6
|
* `LOG` Returns a number rounded to the next greatest even integer.
|
|
6
7
|
*/
|
|
7
8
|
export const LOG = {
|
|
8
9
|
identifier: 'LOG',
|
|
10
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
11
|
+
functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
|
|
9
12
|
parameters: [
|
|
10
13
|
{
|
|
11
14
|
identifier: 'NUM_1',
|
|
@@ -26,6 +29,7 @@ export const LOG = {
|
|
|
26
29
|
redshift,
|
|
27
30
|
postgresql,
|
|
28
31
|
databricks,
|
|
32
|
+
mssql,
|
|
29
33
|
},
|
|
30
34
|
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
31
35
|
};
|
|
@@ -52,9 +56,14 @@ function redshift(value, base) {
|
|
|
52
56
|
END)`.trim();
|
|
53
57
|
}
|
|
54
58
|
function postgresql(value, base) {
|
|
55
|
-
|
|
59
|
+
if (typeof base === 'string')
|
|
60
|
+
base = fromFloatToNumeric(base);
|
|
61
|
+
return SQL(fromFloatToNumeric(value), base);
|
|
56
62
|
}
|
|
57
63
|
function databricks(value, base) {
|
|
58
64
|
return SQL(value, base);
|
|
59
65
|
}
|
|
66
|
+
function mssql(value, base) {
|
|
67
|
+
return SQL(value, base);
|
|
68
|
+
}
|
|
60
69
|
//# sourceMappingURL=log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/functions/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/functions/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,SAAS,CAAC;IAC/D,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtD;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,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,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC,kBAAkB,CAAC,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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
|
|
2
2
|
import { isStringParam } from '../utils';
|
|
3
3
|
/**
|
|
4
4
|
* `LOWER` Returns the string give it in lower case.
|
|
5
5
|
*/
|
|
6
6
|
export const LOWER = {
|
|
7
7
|
identifier: 'LOWER',
|
|
8
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
9
|
+
functionScope: [OPERATION_SCOPE.RAW],
|
|
8
10
|
parameters: [
|
|
9
11
|
{
|
|
10
12
|
identifier: 'STRING',
|
|
@@ -19,6 +21,7 @@ export const LOWER = {
|
|
|
19
21
|
redshift,
|
|
20
22
|
postgresql,
|
|
21
23
|
databricks,
|
|
24
|
+
mssql,
|
|
22
25
|
},
|
|
23
26
|
primitiveResult: AST_PRIMITIVES.STRING,
|
|
24
27
|
};
|
|
@@ -40,4 +43,7 @@ function postgresql(current) {
|
|
|
40
43
|
function databricks(current) {
|
|
41
44
|
return SQL(current);
|
|
42
45
|
}
|
|
46
|
+
function mssql(current) {
|
|
47
|
+
return SQL(current);
|
|
48
|
+
}
|
|
43
49
|
//# sourceMappingURL=lower.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DATE_AND_NUMBERS_DATA_TYPES } from '../constants';
|
|
1
|
+
import { DATE_AND_NUMBERS_DATA_TYPES, OPERATION_SCOPE } from '../constants';
|
|
2
2
|
import { getValidDataTypeParam } from '../utils/getValidDataTypeParam';
|
|
3
3
|
import { isSameAndValidRecursiveDataType } from '../utils/isSameAndValidRecursiveDataType';
|
|
4
4
|
/**
|
|
@@ -6,6 +6,8 @@ import { isSameAndValidRecursiveDataType } from '../utils/isSameAndValidRecursiv
|
|
|
6
6
|
*/
|
|
7
7
|
export const MAX = {
|
|
8
8
|
identifier: 'MAX',
|
|
9
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
10
|
+
functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
|
|
9
11
|
recursiveStartIn: 1,
|
|
10
12
|
parameters: [
|
|
11
13
|
{
|
|
@@ -29,6 +31,7 @@ export const MAX = {
|
|
|
29
31
|
redshift,
|
|
30
32
|
postgresql,
|
|
31
33
|
databricks,
|
|
34
|
+
mssql,
|
|
32
35
|
},
|
|
33
36
|
primitiveResult(args) {
|
|
34
37
|
return getValidDataTypeParam(args, DATE_AND_NUMBERS_DATA_TYPES);
|
|
@@ -58,4 +61,7 @@ function postgresql(...args) {
|
|
|
58
61
|
function databricks(...args) {
|
|
59
62
|
return sql(...args);
|
|
60
63
|
}
|
|
64
|
+
function mssql(...args) {
|
|
65
|
+
return sql(...args);
|
|
66
|
+
}
|
|
61
67
|
//# sourceMappingURL=max.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/functions/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/functions/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,SAAS,CAAC;IAC/D,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,+BAA+B,CAAC,2BAA2B,CAAC;aAC/D;SACJ;QACD;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,+BAA+B,CAAC,2BAA2B,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,qBAAqB,CAAC,IAAI,EAAE,2BAA2B,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
|
|
1
|
+
import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES, OPERATION_SCOPE, } from '../constants';
|
|
2
2
|
import { isNumberParam, isStringParam } from '../utils';
|
|
3
3
|
import { greaterThanOrEqualToReference } from '../utils/greaterThanOrEqualToReference';
|
|
4
4
|
import { isInteger } from '../utils/isInteger';
|
|
@@ -7,6 +7,8 @@ import { isInteger } from '../utils/isInteger';
|
|
|
7
7
|
*/
|
|
8
8
|
export const MID = {
|
|
9
9
|
identifier: 'MID',
|
|
10
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
11
|
+
functionScope: [OPERATION_SCOPE.RAW],
|
|
10
12
|
parameters: [
|
|
11
13
|
{
|
|
12
14
|
identifier: 'CURRENT',
|
|
@@ -37,6 +39,7 @@ export const MID = {
|
|
|
37
39
|
redshift,
|
|
38
40
|
postgresql,
|
|
39
41
|
databricks,
|
|
42
|
+
mssql,
|
|
40
43
|
},
|
|
41
44
|
primitiveResult: AST_PRIMITIVES.STRING,
|
|
42
45
|
};
|
|
@@ -74,4 +77,21 @@ function postgresql(current, start, length) {
|
|
|
74
77
|
function databricks(current, start, length) {
|
|
75
78
|
return `SUBSTRING(${current}, ${sqlRound(start)} , ${sqlRound(length)})`;
|
|
76
79
|
}
|
|
80
|
+
function mssql(current, start, length) {
|
|
81
|
+
const safeLen = `(CASE WHEN ${current} IS NULL THEN 0 ELSE LEN(${current} + 'x') - 1 END)`;
|
|
82
|
+
return `
|
|
83
|
+
(case
|
|
84
|
+
when ${current} IS NULL OR ${start} IS NULL OR ${length} IS NULL then NULL
|
|
85
|
+
when (${sqlRound(length)} < 0) OR (${sqlRound(start)} * -1) > ${safeLen} then ''
|
|
86
|
+
else
|
|
87
|
+
SUBSTRING(${current},
|
|
88
|
+
(case
|
|
89
|
+
when ${sqlRound(start)} < 0 then (${safeLen} + ${sqlRound(start)} + 1)
|
|
90
|
+
when ${sqlRound(start)} = 0 then 1
|
|
91
|
+
else ${sqlRound(start)}
|
|
92
|
+
end),
|
|
93
|
+
${sqlRound(length)})
|
|
94
|
+
end
|
|
95
|
+
)`.trim();
|
|
96
|
+
}
|
|
77
97
|
//# sourceMappingURL=mid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { millisecondScript } from '../utils/elasticsearch/scripts';
|
|
2
2
|
import { isDateParam } from '../utils';
|
|
3
|
-
import { AST_PRIMITIVES } from '../constants';
|
|
3
|
+
import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
|
|
4
4
|
/**
|
|
5
5
|
* Returns the millisecond of a datetime value. The millisecond is given as an integer ranging from 0 to 999
|
|
6
6
|
*/
|
|
7
7
|
export const MILLISECOND = {
|
|
8
8
|
identifier: 'MILLISECOND',
|
|
9
|
+
operationScope: OPERATION_SCOPE.RAW,
|
|
10
|
+
functionScope: [OPERATION_SCOPE.RAW],
|
|
9
11
|
parameters: [
|
|
10
12
|
{
|
|
11
13
|
identifier: 'DATE',
|
|
@@ -20,6 +22,7 @@ export const MILLISECOND = {
|
|
|
20
22
|
redshift,
|
|
21
23
|
postgresql,
|
|
22
24
|
databricks,
|
|
25
|
+
mssql,
|
|
23
26
|
},
|
|
24
27
|
primitiveResult: AST_PRIMITIVES.NUMBER,
|
|
25
28
|
};
|
|
@@ -57,4 +60,11 @@ function databricks(value) {
|
|
|
57
60
|
*/
|
|
58
61
|
return `CAST(DATE_FORMAT(${value}, 'SSS') AS INT)`;
|
|
59
62
|
}
|
|
63
|
+
function mssql(value) {
|
|
64
|
+
/*
|
|
65
|
+
In MSSQL, the DATEPART function extracts the milliseconds from the datetime value.
|
|
66
|
+
For example, '2025-01-03 07:37:56.642' will return 642 as the milliseconds.
|
|
67
|
+
*/
|
|
68
|
+
return `DATEPART(MILLISECOND, ${value})`;
|
|
69
|
+
}
|
|
60
70
|
//# sourceMappingURL=millisecond.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"millisecond.js","sourceRoot":"","sources":["../../../src/functions/millisecond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"millisecond.js","sourceRoot":"","sources":["../../../src/functions/millisecond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC3C,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,iBAAiB,CAAC,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"}
|