@qrvey/formula-lang 0.9.4-001-internal → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/constants/index.d.ts +4 -2
  3. package/dist/cjs/constants/index.js +2 -0
  4. package/dist/cjs/constants/index.js.map +1 -1
  5. package/dist/cjs/constants/interfaces.d.ts +11 -6
  6. package/dist/cjs/errors/analyzer/index.js +3 -1
  7. package/dist/cjs/errors/analyzer/index.js.map +1 -1
  8. package/dist/cjs/errors/analyzer/postgresql.d.ts +8 -0
  9. package/dist/cjs/errors/analyzer/postgresql.js +26 -0
  10. package/dist/cjs/errors/analyzer/postgresql.js.map +1 -0
  11. package/dist/cjs/errors/definitions.js +1 -1
  12. package/dist/cjs/errors/definitions.js.map +1 -1
  13. package/dist/cjs/errors/dictionary.d.ts +2 -1
  14. package/dist/cjs/errors/dictionary.js +5 -0
  15. package/dist/cjs/errors/dictionary.js.map +1 -1
  16. package/dist/cjs/errors/index.d.ts +1 -0
  17. package/dist/cjs/errors/index.js +1 -0
  18. package/dist/cjs/errors/index.js.map +1 -1
  19. package/dist/cjs/errors/mismatch.d.ts +33 -0
  20. package/dist/cjs/errors/mismatch.js +67 -0
  21. package/dist/cjs/errors/mismatch.js.map +1 -0
  22. package/dist/cjs/functions/abs.js +4 -2
  23. package/dist/cjs/functions/abs.js.map +1 -1
  24. package/dist/cjs/functions/datedif.js +12 -7
  25. package/dist/cjs/functions/datedif.js.map +1 -1
  26. package/dist/cjs/functions/day.js +4 -2
  27. package/dist/cjs/functions/day.js.map +1 -1
  28. package/dist/cjs/functions/hour.js +4 -2
  29. package/dist/cjs/functions/hour.js.map +1 -1
  30. package/dist/cjs/functions/if.js +12 -10
  31. package/dist/cjs/functions/if.js.map +1 -1
  32. package/dist/cjs/functions/ifs.js +12 -10
  33. package/dist/cjs/functions/ifs.js.map +1 -1
  34. package/dist/cjs/functions/isNull.js +7 -10
  35. package/dist/cjs/functions/isNull.js.map +1 -1
  36. package/dist/cjs/functions/mid.js +4 -4
  37. package/dist/cjs/functions/mid.js.map +1 -1
  38. package/dist/cjs/functions/minute.js +4 -2
  39. package/dist/cjs/functions/minute.js.map +1 -1
  40. package/dist/cjs/functions/month.js +4 -2
  41. package/dist/cjs/functions/month.js.map +1 -1
  42. package/dist/cjs/functions/second.js +4 -2
  43. package/dist/cjs/functions/second.js.map +1 -1
  44. package/dist/cjs/functions/year.js +4 -2
  45. package/dist/cjs/functions/year.js.map +1 -1
  46. package/dist/cjs/grammar/generated/qformula.lang.js +30 -8
  47. package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
  48. package/dist/cjs/grammar/generated/qformula.lang.terms.d.ts +4 -3
  49. package/dist/cjs/grammar/generated/qformula.lang.terms.js +2 -2
  50. package/dist/cjs/grammar/generated/qformula.lang.terms.js.map +1 -1
  51. package/dist/cjs/grammar/tokens.d.ts +2 -0
  52. package/dist/cjs/grammar/tokens.js +26 -0
  53. package/dist/cjs/grammar/tokens.js.map +1 -0
  54. package/dist/cjs/main.js +6 -9
  55. package/dist/cjs/main.js.map +1 -1
  56. package/dist/cjs/parser/formula-parser.js +3 -10
  57. package/dist/cjs/parser/formula-parser.js.map +1 -1
  58. package/dist/cjs/parser/json-parser.js +9 -3
  59. package/dist/cjs/parser/json-parser.js.map +1 -1
  60. package/dist/cjs/transpiler/columnTranspilation.d.ts +1 -1
  61. package/dist/cjs/transpiler/columnTranspilation.js +15 -3
  62. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  63. package/dist/cjs/transpiler/index.js +57 -13
  64. package/dist/cjs/transpiler/index.js.map +1 -1
  65. package/dist/cjs/transpiler/validateFuncStructure.d.ts +1 -1
  66. package/dist/cjs/transpiler/validateFuncStructure.js +60 -8
  67. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  68. package/dist/cjs/utils/customFunctions.js +1 -0
  69. package/dist/cjs/utils/customFunctions.js.map +1 -1
  70. package/dist/cjs/utils/sql/scripts.d.ts +1 -0
  71. package/dist/cjs/utils/sql/scripts.js +18 -6
  72. package/dist/cjs/utils/sql/scripts.js.map +1 -1
  73. package/dist/module/constants/index.d.ts +4 -2
  74. package/dist/module/constants/index.js +2 -0
  75. package/dist/module/constants/index.js.map +1 -1
  76. package/dist/module/constants/interfaces.d.ts +11 -6
  77. package/dist/module/errors/analyzer/index.js +3 -1
  78. package/dist/module/errors/analyzer/index.js.map +1 -1
  79. package/dist/module/errors/analyzer/postgresql.d.ts +8 -0
  80. package/dist/module/errors/analyzer/postgresql.js +22 -0
  81. package/dist/module/errors/analyzer/postgresql.js.map +1 -0
  82. package/dist/module/errors/definitions.js +1 -1
  83. package/dist/module/errors/definitions.js.map +1 -1
  84. package/dist/module/errors/dictionary.d.ts +2 -1
  85. package/dist/module/errors/dictionary.js +5 -0
  86. package/dist/module/errors/dictionary.js.map +1 -1
  87. package/dist/module/errors/index.d.ts +1 -0
  88. package/dist/module/errors/index.js +1 -0
  89. package/dist/module/errors/index.js.map +1 -1
  90. package/dist/module/errors/mismatch.d.ts +33 -0
  91. package/dist/module/errors/mismatch.js +62 -0
  92. package/dist/module/errors/mismatch.js.map +1 -0
  93. package/dist/module/functions/abs.js +4 -2
  94. package/dist/module/functions/abs.js.map +1 -1
  95. package/dist/module/functions/datedif.js +13 -8
  96. package/dist/module/functions/datedif.js.map +1 -1
  97. package/dist/module/functions/day.js +4 -2
  98. package/dist/module/functions/day.js.map +1 -1
  99. package/dist/module/functions/hour.js +4 -2
  100. package/dist/module/functions/hour.js.map +1 -1
  101. package/dist/module/functions/if.js +12 -10
  102. package/dist/module/functions/if.js.map +1 -1
  103. package/dist/module/functions/ifs.js +12 -10
  104. package/dist/module/functions/ifs.js.map +1 -1
  105. package/dist/module/functions/isNull.js +7 -10
  106. package/dist/module/functions/isNull.js.map +1 -1
  107. package/dist/module/functions/mid.js +4 -4
  108. package/dist/module/functions/mid.js.map +1 -1
  109. package/dist/module/functions/minute.js +4 -2
  110. package/dist/module/functions/minute.js.map +1 -1
  111. package/dist/module/functions/month.js +4 -2
  112. package/dist/module/functions/month.js.map +1 -1
  113. package/dist/module/functions/second.js +4 -2
  114. package/dist/module/functions/second.js.map +1 -1
  115. package/dist/module/functions/year.js +4 -2
  116. package/dist/module/functions/year.js.map +1 -1
  117. package/dist/module/grammar/generated/qformula.lang.js +31 -9
  118. package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
  119. package/dist/module/grammar/generated/qformula.lang.terms.d.ts +4 -3
  120. package/dist/module/grammar/generated/qformula.lang.terms.js +1 -1
  121. package/dist/module/grammar/generated/qformula.lang.terms.js.map +1 -1
  122. package/dist/module/grammar/tokens.d.ts +2 -0
  123. package/dist/module/grammar/tokens.js +23 -0
  124. package/dist/module/grammar/tokens.js.map +1 -0
  125. package/dist/module/main.js +6 -9
  126. package/dist/module/main.js.map +1 -1
  127. package/dist/module/parser/formula-parser.js +3 -10
  128. package/dist/module/parser/formula-parser.js.map +1 -1
  129. package/dist/module/parser/json-parser.js +9 -3
  130. package/dist/module/parser/json-parser.js.map +1 -1
  131. package/dist/module/transpiler/columnTranspilation.d.ts +1 -1
  132. package/dist/module/transpiler/columnTranspilation.js +15 -3
  133. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  134. package/dist/module/transpiler/index.js +57 -13
  135. package/dist/module/transpiler/index.js.map +1 -1
  136. package/dist/module/transpiler/validateFuncStructure.d.ts +1 -1
  137. package/dist/module/transpiler/validateFuncStructure.js +60 -8
  138. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  139. package/dist/module/utils/customFunctions.js +1 -0
  140. package/dist/module/utils/customFunctions.js.map +1 -1
  141. package/dist/module/utils/sql/scripts.d.ts +1 -0
  142. package/dist/module/utils/sql/scripts.js +16 -5
  143. package/dist/module/utils/sql/scripts.js.map +1 -1
  144. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ <a name="0.11.0"></a>
2
+ # [0.11.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.10.0...v0.11.0) (2023-06-13)
3
+
4
+
5
+ ### Features
6
+
7
+ * **mismatch:** adding mismatch error ([79d2bf0](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/79d2bf0))
8
+
9
+
10
+
11
+ <a name="0.10.0"></a>
12
+ # [0.10.0](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.9.3...v0.10.0) (2023-06-09)
13
+
14
+
15
+ ### Features
16
+
17
+ * **postgres:** datedif ([4b31655](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/4b31655))
18
+ * **postgresql:** add postgres ([1c55de9](https://bitbucket.org/qrvey/qrvey_formula_lang/commits/1c55de9))
19
+
20
+
21
+
1
22
  <a name="0.9.2"></a>
2
23
  ## [0.9.2](https://bitbucket.org/qrvey/qrvey_formula_lang/compare/v0.9.1...v0.9.2) (2023-06-01)
3
24
 
@@ -1,10 +1,12 @@
1
1
  export declare enum ENGINES {
2
2
  ELASTICSEARCH = "elasticsearch",
3
3
  SNOWFLAKE = "snowflake",
4
- REDSHIFT = "redshift"
4
+ REDSHIFT = "redshift",
5
+ POSTGRESQL = "postgresql"
5
6
  }
6
7
  export declare enum RESPONSE_LEVEL {
7
- runtime = "Runtime"
8
+ runtime = "Runtime",
9
+ function = "Function"
8
10
  }
9
11
  export declare enum AST_TYPES {
10
12
  program = "Program",
@@ -6,10 +6,12 @@ var ENGINES;
6
6
  ENGINES["ELASTICSEARCH"] = "elasticsearch";
7
7
  ENGINES["SNOWFLAKE"] = "snowflake";
8
8
  ENGINES["REDSHIFT"] = "redshift";
9
+ ENGINES["POSTGRESQL"] = "postgresql";
9
10
  })(ENGINES = exports.ENGINES || (exports.ENGINES = {}));
10
11
  var RESPONSE_LEVEL;
11
12
  (function (RESPONSE_LEVEL) {
12
13
  RESPONSE_LEVEL["runtime"] = "Runtime";
14
+ RESPONSE_LEVEL["function"] = "Function";
13
15
  })(RESPONSE_LEVEL = exports.RESPONSE_LEVEL || (exports.RESPONSE_LEVEL = {}));
14
16
  var AST_TYPES;
15
17
  (function (AST_TYPES) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAIX;AAJD,WAAY,OAAO;IACf,0CAA+B,CAAA;IAC/B,kCAAuB,CAAA;IACvB,gCAAqB,CAAA;AACzB,CAAC,EAJW,OAAO,GAAP,eAAO,KAAP,eAAO,QAIlB;AAED,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,qCAAmB,CAAA;AACvB,CAAC,EAFW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAEzB;AAED,IAAY,SAWX;AAXD,WAAY,SAAS;IACjB,gCAAmB,CAAA;IACnB,4DAA+C,CAAA;IAC/C,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACvB,CAAC,EAXW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAWpB;AAED,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AAQY,QAAA,eAAe,GAA0B;IAClD,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACrB,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;KACb;CACJ,CAAC;AAEF,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IAClC,+DAAiC,CAAA;IACjC,iEAAmC,CAAA;IACnC,4DAA8B,CAAA;AAClC,CAAC,EAJW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAIrC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAKX;AALD,WAAY,OAAO;IACf,0CAA+B,CAAA;IAC/B,kCAAuB,CAAA;IACvB,gCAAqB,CAAA;IACrB,oCAAyB,CAAA;AAC7B,CAAC,EALW,OAAO,GAAP,eAAO,KAAP,eAAO,QAKlB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;AACzB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,SAWX;AAXD,WAAY,SAAS;IACjB,gCAAmB,CAAA;IACnB,4DAA+C,CAAA;IAC/C,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACvB,CAAC,EAXW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAWpB;AAED,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AAQY,QAAA,eAAe,GAA0B;IAClD,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACrB,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;KACb;CACJ,CAAC;AAEF,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IAClC,+DAAiC,CAAA;IACjC,iEAAmC,CAAA;IACnC,4DAA8B,CAAA;AAClC,CAAC,EAJW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAIrC"}
@@ -2,36 +2,41 @@ import { ENGINES, AST_TYPES, RESPONSE_LEVEL, AST_PRIMITIVES, Primitive } from '.
2
2
  import { BaseError } from '../errors';
3
3
  interface FunctionElementDefinition {
4
4
  identifier: string;
5
- name: string;
6
5
  }
7
6
  export interface FunctionDefinition extends FunctionElementDefinition {
8
7
  recursiveStartIn?: number;
9
8
  transpiler: EnginesFunction;
10
9
  parameters?: Array<FunctionParameters>;
11
10
  primitiveResult: Primitive | ((args: CommonAST[]) => Primitive);
11
+ maxPrimitiveValues?: number;
12
12
  }
13
13
  export type EnginesFunction = {
14
14
  [key in ENGINES]: Function;
15
15
  };
16
16
  export interface FunctionParameters extends FunctionElementDefinition {
17
17
  optional: boolean;
18
+ generic?: boolean;
18
19
  validator: Array<ValidatorFunctionParameter>;
19
20
  }
20
21
  export interface ProcessNodeResult {
21
22
  value: any;
22
- dataType?: Primitive;
23
- type: FunctionCallAST['type'];
23
+ type: AST_TYPES;
24
+ dataType: Primitive;
25
+ node: CommonAST;
24
26
  }
25
27
  interface ValidatorFunctionParameter {
26
- (value: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidatorResponse;
28
+ (value: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidationParameterResponse;
27
29
  }
28
30
  export interface ValidatorResponse {
29
31
  valid: boolean;
30
32
  code?: string;
31
- level?: RESPONSE_LEVEL;
33
+ source?: RESPONSE_LEVEL;
32
34
  message?: string;
33
35
  info?: any;
34
36
  }
37
+ export interface ValidationParameterResponse extends ValidatorResponse {
38
+ customExpectedType?: string;
39
+ }
35
40
  export interface TranspilationResponse {
36
41
  valid: boolean;
37
42
  expression?: string;
@@ -65,7 +70,7 @@ export interface ProgramAST extends CommonAST {
65
70
  }
66
71
  export interface UnaryExpressionAST extends CommonAST {
67
72
  operator: string;
68
- operatorNode: ProgramPosition;
73
+ operatorNode?: ProgramPosition;
69
74
  validOperators: string[];
70
75
  right: CommonAST;
71
76
  }
@@ -6,15 +6,17 @@ const dictionary_1 = require("../dictionary");
6
6
  const snowflake_1 = require("./snowflake");
7
7
  const elasticsearch_1 = require("./elasticsearch");
8
8
  const redshift_1 = require("./redshift");
9
+ const postgresql_1 = require("./postgresql");
9
10
  function errorAnalyzer(engine, errorObj) {
10
11
  const info = {
11
12
  [constants_1.ENGINES.ELASTICSEARCH]: elasticsearch_1.getInfo,
12
13
  [constants_1.ENGINES.SNOWFLAKE]: snowflake_1.getInfo,
13
14
  [constants_1.ENGINES.REDSHIFT]: redshift_1.getInfo,
15
+ [constants_1.ENGINES.POSTGRESQL]: postgresql_1.getInfo,
14
16
  };
15
17
  const { errorList, messageList } = info[engine](errorObj);
16
18
  const currentError = analyzer(messageList, errorList);
17
- return Object.assign({ valid: false, level: constants_1.RESPONSE_LEVEL.runtime, info: errorObj }, currentError);
19
+ return Object.assign({ valid: false, source: constants_1.RESPONSE_LEVEL.runtime, info: errorObj }, currentError);
18
20
  }
19
21
  exports.errorAnalyzer = errorAnalyzer;
20
22
  function analyzer(messageList, errorList) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/index.ts"],"names":[],"mappings":";;;AAAA,+CAA0D;AAE1D,8CAA8E;AAC9E,2CAAmD;AACnD,mDAA2D;AAC3D,yCAAiD;AAEjD,SAAgB,aAAa,CACzB,MAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAoB;QAC1B,CAAC,mBAAO,CAAC,aAAa,CAAC,EAAE,uBAAa;QACtC,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,mBAAS;QAC9B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,kBAAQ;KAC/B,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,uBACI,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,0BAAc,CAAC,OAAO,EAC7B,IAAI,EAAE,QAAQ,IACX,YAAY,EACjB;AACN,CAAC;AAjBD,sCAiBC;AAED,SAAS,QAAQ,CACb,WAA0B,EAC1B,SAA2B;IAE3B,IAAI,MAAM,GAAG,6BAAgB,CAAC,OAAO,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,6BAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/index.ts"],"names":[],"mappings":";;;AAAA,+CAA0D;AAE1D,8CAA8E;AAC9E,2CAAmD;AACnD,mDAA2D;AAC3D,yCAAiD;AACjD,6CAAqD;AAErD,SAAgB,aAAa,CACzB,MAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAoB;QAC1B,CAAC,mBAAO,CAAC,aAAa,CAAC,EAAE,uBAAa;QACtC,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,mBAAS;QAC9B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,kBAAQ;QAC5B,CAAC,mBAAO,CAAC,UAAU,CAAC,EAAE,oBAAU;KACnC,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,uBACI,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,0BAAc,CAAC,OAAO,EAC9B,IAAI,EAAE,QAAQ,IACX,YAAY,EACjB;AACN,CAAC;AAlBD,sCAkBC;AAED,SAAS,QAAQ,CACb,WAA0B,EAC1B,SAA2B;IAE3B,IAAI,MAAM,GAAG,6BAAgB,CAAC,OAAO,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,6BAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ERROR_LIST } from '../dictionary';
2
+ export declare function getInfo(errorObj: any): {
3
+ errorList: {
4
+ regex: RegExp;
5
+ value: ERROR_LIST;
6
+ }[];
7
+ messageList: any[];
8
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInfo = void 0;
4
+ const dictionary_1 = require("../dictionary");
5
+ function getInfo(errorObj) {
6
+ const messageList = [];
7
+ const { hint: message, code } = errorObj;
8
+ messageList.push(message);
9
+ messageList.push(code);
10
+ return {
11
+ errorList,
12
+ messageList,
13
+ };
14
+ }
15
+ exports.getInfo = getInfo;
16
+ const errorList = [
17
+ {
18
+ regex: /No operator matches the given name and argument type.*/,
19
+ value: dictionary_1.ERROR_LIST.unknownToken,
20
+ },
21
+ {
22
+ regex: /42703/,
23
+ value: dictionary_1.ERROR_LIST.unknownToken,
24
+ },
25
+ ];
26
+ //# sourceMappingURL=postgresql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresql.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/postgresql.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C,SAAgB,OAAO,CAAC,QAAa;IACjC,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IACzC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO;QACH,SAAS;QACT,WAAW;KACd,CAAC;AACN,CAAC;AATD,0BASC;AAED,MAAM,SAAS,GAAG;IACd;QACI,KAAK,EAAE,wDAAwD;QAC/D,KAAK,EAAE,uBAAU,CAAC,YAAY;KACjC;IACD;QACI,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,uBAAU,CAAC,YAAY;KACjC;CACJ,CAAC"}
@@ -47,7 +47,7 @@ class MissingArgumentError extends BaseError {
47
47
  this.argumentIndex = argumentIndex;
48
48
  }
49
49
  toString() {
50
- return `${this.code}: ${this.message} ${this.parameter.name}`;
50
+ return `${this.code}: ${this.message} ${this.parameter.identifier}`;
51
51
  }
52
52
  }
53
53
  exports.MissingArgumentError = MissingArgumentError;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,8 @@ export declare enum ERROR_LIST {
22
22
  booleanExpression = "booleanExpression",
23
23
  missingColumnExpression = "missingColumnExpression",
24
24
  noColumnExpression = "noColumnExpression",
25
- argumentsDataType = "argumentsDataType"
25
+ argumentsDataType = "argumentsDataType",
26
+ functionArgumentsMismatch = "functionArgumentsMismatch"
26
27
  }
27
28
  type ErrorsType = {
28
29
  [key in ERROR_LIST]: ErrorDictionary;
@@ -27,6 +27,7 @@ var ERROR_LIST;
27
27
  ERROR_LIST["missingColumnExpression"] = "missingColumnExpression";
28
28
  ERROR_LIST["noColumnExpression"] = "noColumnExpression";
29
29
  ERROR_LIST["argumentsDataType"] = "argumentsDataType";
30
+ ERROR_LIST["functionArgumentsMismatch"] = "functionArgumentsMismatch";
30
31
  })(ERROR_LIST = exports.ERROR_LIST || (exports.ERROR_LIST = {}));
31
32
  exports.ERROR_DICTIONARY = {
32
33
  [ERROR_LIST.arguments]: {
@@ -125,5 +126,9 @@ exports.ERROR_DICTIONARY = {
125
126
  message: 'Arguments should have the same data type.',
126
127
  code: 'ARGUMENTS_DATATYPE_ERROR',
127
128
  },
129
+ [ERROR_LIST.functionArgumentsMismatch]: {
130
+ message: 'Function arguments mismatch.',
131
+ code: 'FUNCTION_ARGUMENTS_MISMATCH',
132
+ },
128
133
  };
129
134
  //# sourceMappingURL=dictionary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './definitions';
2
2
  export * from './analyzer';
3
+ export * from './mismatch';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./definitions"), exports);
18
18
  __exportStar(require("./analyzer"), exports);
19
+ __exportStar(require("./mismatch"), exports); // TODO improve -> Need move it?
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAC3B,6CAA2B,CAAC,gCAAgC"}
@@ -0,0 +1,33 @@
1
+ import { AST_PRIMITIVES, AST_TYPES, Primitive } from '../constants';
2
+ import { CommonAST, FunctionDefinition, FunctionParameters, ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
3
+ import { BaseError } from './definitions';
4
+ interface MissmatchDetail {
5
+ primitive: Primitive | AST_TYPES | string;
6
+ from?: number;
7
+ to?: number;
8
+ optional?: boolean;
9
+ }
10
+ interface MissmatchExpected extends MissmatchDetail {
11
+ custom?: boolean;
12
+ generic?: boolean;
13
+ }
14
+ interface Mismatch {
15
+ node: CommonAST | undefined;
16
+ validator: ValidatorResponse;
17
+ parameter?: FunctionParameters;
18
+ expected: Array<MissmatchExpected>;
19
+ received: Array<MissmatchDetail>;
20
+ }
21
+ export declare class FunctionArgumentsMismatch extends BaseError implements Mismatch {
22
+ constructor(mismatch: Mismatch);
23
+ validator: ValidatorResponse;
24
+ parameter: FunctionParameters | undefined;
25
+ expected: Array<MissmatchExpected>;
26
+ received: Array<MissmatchDetail>;
27
+ node: CommonAST | undefined;
28
+ }
29
+ export declare function validateParameters(definition: FunctionDefinition, args: Array<ProcessNodeResult>, genericType?: AST_PRIMITIVES | AST_TYPES | string): {
30
+ expected: Array<MissmatchExpected>;
31
+ received: Array<MissmatchDetail>;
32
+ };
33
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateParameters = exports.FunctionArgumentsMismatch = void 0;
4
+ const constants_1 = require("../constants");
5
+ const definitions_1 = require("./definitions");
6
+ const dictionary_1 = require("./dictionary");
7
+ class FunctionArgumentsMismatch extends definitions_1.BaseError {
8
+ constructor(mismatch) {
9
+ super(dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.functionArgumentsMismatch].code, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.functionArgumentsMismatch].message, mismatch.node);
10
+ Object.assign(this, mismatch); // Expose mismatch params to `this` class
11
+ }
12
+ }
13
+ exports.FunctionArgumentsMismatch = FunctionArgumentsMismatch;
14
+ function validateParameters(definition, args, genericType) {
15
+ const received = args.map((arg) => {
16
+ const { from, to, primitive } = arg.node;
17
+ return { from, to, primitive };
18
+ });
19
+ const parameters = definition.parameters || [];
20
+ const expected = [];
21
+ let parameterCount = 0;
22
+ while (parameterCount < parameters.length) {
23
+ const param = parameters[parameterCount];
24
+ const expectedPrimitive = transformParamInMissmatchExpected(param, genericType);
25
+ expected.push(expectedPrimitive);
26
+ parameterCount++;
27
+ const parameterListCompleted = parameterCount === parameters.length;
28
+ const hasMoreArguments = expected.length < received.length;
29
+ const isRecursive = typeof (definition === null || definition === void 0 ? void 0 : definition.recursiveStartIn) === 'number';
30
+ if (parameterListCompleted && isRecursive && hasMoreArguments) {
31
+ parameterCount = definition.recursiveStartIn;
32
+ }
33
+ }
34
+ return { expected, received };
35
+ }
36
+ exports.validateParameters = validateParameters;
37
+ function transformParamInMissmatchExpected(param, genericType) {
38
+ const result = { optional: param.optional };
39
+ let primitive = getExpectedPrimitiveFromParam(param);
40
+ if (primitive === constants_1.AST_PRIMITIVES.UNKNOWN && genericType) {
41
+ primitive = genericType;
42
+ }
43
+ return Object.assign(Object.assign(Object.assign({}, result), { primitive }), (param.generic && { generic: param.generic }));
44
+ }
45
+ function getExpectedPrimitiveFromParam(param) {
46
+ if (param.validator.length === 0) {
47
+ return constants_1.AST_PRIMITIVES.UNKNOWN;
48
+ }
49
+ const primitiveArray = param.validator.map((validator) => {
50
+ const name = validator.name;
51
+ return mapParamValidator(name);
52
+ });
53
+ return primitiveArray[0];
54
+ }
55
+ function mapParamValidator(name) {
56
+ var _a;
57
+ return (_a = FUNCTION_PRIMITIVE_MAPPER[name]) !== null && _a !== void 0 ? _a : constants_1.AST_PRIMITIVES.UNKNOWN;
58
+ }
59
+ const FUNCTION_PRIMITIVE_MAPPER = {
60
+ isStringParam: constants_1.AST_PRIMITIVES.STRING,
61
+ isNumberParam: constants_1.AST_PRIMITIVES.NUMBER,
62
+ isDateParam: constants_1.AST_PRIMITIVES.DATE,
63
+ isBooleanExpression: constants_1.AST_PRIMITIVES.BOOLEAN,
64
+ isAColumn: constants_1.AST_TYPES.column,
65
+ customValidatorYMD: constants_1.AST_PRIMITIVES.STRING,
66
+ };
67
+ //# sourceMappingURL=mismatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mismatch.js","sourceRoot":"","sources":["../../../src/errors/mismatch.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,9 @@ const utils_1 = require("../utils");
8
8
  */
9
9
  exports.ABS = {
10
10
  identifier: 'ABS',
11
- name: 'ABS',
12
11
  parameters: [
13
12
  {
14
13
  identifier: 'VALUE',
15
- name: 'value',
16
14
  optional: false,
17
15
  validator: [utils_1.isNumberParam],
18
16
  },
@@ -21,6 +19,7 @@ exports.ABS = {
21
19
  elasticsearch,
22
20
  snowflake,
23
21
  redshift,
22
+ postgresql,
24
23
  },
25
24
  primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
26
25
  };
@@ -36,4 +35,7 @@ function snowflake(value) {
36
35
  function redshift(value) {
37
36
  return SQL(value);
38
37
  }
38
+ function postgresql(value) {
39
+ return SQL(value);
40
+ }
39
41
  //# sourceMappingURL=abs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/functions/abs.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAE9C,oCAAyC;AAEzC;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,KAAK,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,OAAO,KAAK,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/functions/abs.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAE9C,oCAAyC;AAEzC;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,KAAK,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,OAAO,KAAK,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -11,23 +11,19 @@ const utils_1 = require("../utils");
11
11
  */
12
12
  exports.DATEDIF = {
13
13
  identifier: 'DATEDIF',
14
- name: 'DATEDIF',
15
14
  parameters: [
16
15
  {
17
16
  identifier: 'START_DATE',
18
- name: 'start_date',
19
17
  optional: false,
20
18
  validator: [utils_1.isDateParam],
21
19
  },
22
20
  {
23
21
  identifier: 'END_DATE',
24
- name: 'end_date',
25
22
  optional: false,
26
23
  validator: [utils_1.isDateParam],
27
24
  },
28
25
  {
29
26
  identifier: 'UNIT',
30
- name: 'unit',
31
27
  optional: false,
32
28
  validator: [utils_1.isStringParam, customValidatorYMD],
33
29
  },
@@ -36,14 +32,19 @@ exports.DATEDIF = {
36
32
  elasticsearch,
37
33
  snowflake,
38
34
  redshift,
35
+ postgresql,
39
36
  },
40
37
  primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
41
38
  };
39
+ const YMD_UNIT_LIST = ['Y', 'M', 'D'];
42
40
  function customValidatorYMD(param) {
43
41
  param = (0, utils_1.removeQuotes)(param);
44
- const valid = ['Y', 'M', 'D'].includes(param);
45
- if (!valid)
46
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.customDateDifParams]);
42
+ const valid = YMD_UNIT_LIST.includes(param);
43
+ if (!valid) {
44
+ const customExpectedType = YMD_UNIT_LIST.join('|');
45
+ return Object.assign({ valid,
46
+ customExpectedType }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.customDateDifParams]);
47
+ }
47
48
  return { valid };
48
49
  }
49
50
  function elasticsearch(start, end, unit) {
@@ -60,4 +61,8 @@ function snowflake(start, end, unit) {
60
61
  function redshift(start, end, unit) {
61
62
  return SQL(start, end, unit);
62
63
  }
64
+ function postgresql(start, end, unit) {
65
+ unit = (0, utils_1.removeQuotes)(unit);
66
+ return (0, scripts_2.dateDifPostgres)(start, end, unit);
67
+ }
63
68
  //# sourceMappingURL=datedif.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":";;;AAKA,4CAA8C;AAC9C,qDAAoE;AACpE,4DAAsE;AACtE,kDAA6D;AAC7D,oCAAoE;AAEpE;;GAEG;AACU,QAAA,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,SAAS;IACf,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QACN,uBAAS,KAAK,IAAK,6BAAgB,CAAC,uBAAU,CAAC,mBAAmB,CAAC,EAAG;IAC1E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAS,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAU,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAChE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":";;;AAKA,4CAA8C;AAC9C,qDAAoE;AACpE,4DAAsE;AACtE,kDAA8E;AAC9E,oCAAoE;AAEpE;;GAEG;AACU,QAAA,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,uBACI,KAAK;YACL,kBAAkB,IACf,6BAAgB,CAAC,uBAAU,CAAC,mBAAmB,CAAC,EACrD;KACL;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAS,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAU,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAChE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CACf,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,yBAAe,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -9,11 +9,9 @@ const constants_1 = require("../constants");
9
9
  */
10
10
  exports.DAY = {
11
11
  identifier: 'DAY',
12
- name: 'DAY',
13
12
  parameters: [
14
13
  {
15
14
  identifier: 'DATE',
16
- name: 'date',
17
15
  optional: false,
18
16
  validator: [utils_1.isDateParam],
19
17
  },
@@ -22,6 +20,7 @@ exports.DAY = {
22
20
  elasticsearch,
23
21
  snowflake,
24
22
  redshift,
23
+ postgresql,
25
24
  },
26
25
  primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
27
26
  };
@@ -37,4 +36,7 @@ function snowflake(value) {
37
36
  function redshift(value) {
38
37
  return SQL(value);
39
38
  }
39
+ function postgresql(value) {
40
+ return SQL(value);
41
+ }
40
42
  //# sourceMappingURL=day.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"day.js","sourceRoot":"","sources":["../../../src/functions/day.ts"],"names":[],"mappings":";;;AACA,4DAA2D;AAC3D,oCAAuC;AACvC,4CAA8C;AAE9C;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,oBAAoB,KAAK,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"day.js","sourceRoot":"","sources":["../../../src/functions/day.ts"],"names":[],"mappings":";;;AACA,4DAA2D;AAC3D,oCAAuC;AACvC,4CAA8C;AAE9C;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,oBAAoB,KAAK,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -9,11 +9,9 @@ const constants_1 = require("../constants");
9
9
  */
10
10
  exports.HOUR = {
11
11
  identifier: 'HOUR',
12
- name: 'HOUR',
13
12
  parameters: [
14
13
  {
15
14
  identifier: 'DATE',
16
- name: 'date',
17
15
  optional: false,
18
16
  validator: [utils_1.isDateParam],
19
17
  },
@@ -22,6 +20,7 @@ exports.HOUR = {
22
20
  elasticsearch,
23
21
  snowflake,
24
22
  redshift,
23
+ postgresql,
25
24
  },
26
25
  primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
27
26
  };
@@ -37,4 +36,7 @@ function snowflake(value) {
37
36
  function redshift(value) {
38
37
  return SQL(value);
39
38
  }
39
+ function postgresql(value) {
40
+ return SQL(value);
41
+ }
40
42
  //# sourceMappingURL=hour.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hour.js","sourceRoot":"","sources":["../../../src/functions/hour.ts"],"names":[],"mappings":";;;AACA,4DAA4D;AAC5D,oCAAuC;AACvC,4CAA8C;AAE9C;;GAEG;AACU,QAAA,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"hour.js","sourceRoot":"","sources":["../../../src/functions/hour.ts"],"names":[],"mappings":";;;AACA,4DAA4D;AAC5D,oCAAuC;AACvC,4CAA8C;AAE9C;;GAEG;AACU,QAAA,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -4,30 +4,27 @@ exports.IF = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  const isBooleanExpression_1 = require("../utils/isBooleanExpression");
6
6
  const primitiveFunctions_1 = require("../utils/primitiveFunctions");
7
- const errors_1 = require("../errors");
8
7
  /**
9
8
  * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
10
9
  */
11
10
  exports.IF = {
12
11
  identifier: 'IF',
13
- name: 'IF',
14
12
  parameters: [
15
13
  {
16
14
  identifier: 'LOGICAL_EXPRESSION',
17
- name: 'logical_expression',
18
15
  optional: false,
19
16
  validator: [isBooleanExpression_1.isBooleanExpression],
20
17
  },
21
18
  {
22
19
  identifier: 'VALUE_IF_TRUE',
23
- name: 'VALUE_IF_TRUE',
24
20
  optional: false,
21
+ generic: true,
25
22
  validator: [],
26
23
  },
27
24
  {
28
25
  identifier: 'VALUE_IF_FALSE',
29
- name: 'VALUE_IF_FALSE',
30
26
  optional: false,
27
+ generic: true,
31
28
  validator: [],
32
29
  },
33
30
  ],
@@ -35,17 +32,16 @@ exports.IF = {
35
32
  elasticsearch,
36
33
  snowflake,
37
34
  redshift,
35
+ postgresql,
38
36
  },
37
+ maxPrimitiveValues: 1,
39
38
  primitiveResult(args) {
40
39
  var _a, _b, _c, _d;
41
40
  const truePrimitive = (_b = (_a = args === null || args === void 0 ? void 0 : args[1]) === null || _a === void 0 ? void 0 : _a.primitive) !== null && _b !== void 0 ? _b : constants_1.AST_PRIMITIVES.UNKNOWN;
42
41
  const falsePrimitive = (_d = (_c = args === null || args === void 0 ? void 0 : args[2]) === null || _c === void 0 ? void 0 : _c.primitive) !== null && _d !== void 0 ? _d : null;
43
42
  if (!falsePrimitive)
44
43
  return truePrimitive;
45
- const inferred = (0, primitiveFunctions_1.inferPrimitive)(truePrimitive, falsePrimitive);
46
- if (Array.isArray(inferred))
47
- throw new errors_1.InferredPrimitiveError(args[args.length - 1]);
48
- return inferred;
44
+ return (0, primitiveFunctions_1.inferPrimitive)(truePrimitive, falsePrimitive);
49
45
  },
50
46
  };
51
47
  function elasticsearch(logicalExpression, valueIfTrue, valueIfFalse) {
@@ -54,11 +50,17 @@ function elasticsearch(logicalExpression, valueIfTrue, valueIfFalse) {
54
50
  function snowflake(logicalExpression, valueIfTrue, valueIfFalse) {
55
51
  return `IFF(${logicalExpression}, ${valueIfTrue}, ${valueIfFalse})`;
56
52
  }
57
- function redshift(logicalExpression, valueIfTrue, valueIfFalse) {
53
+ function sql(logicalExpression, valueIfTrue, valueIfFalse) {
58
54
  return `
59
55
  (CASE
60
56
  WHEN ${logicalExpression} THEN ${valueIfTrue}
61
57
  ELSE ${valueIfFalse}
62
58
  END)`.trim();
63
59
  }
60
+ function redshift(logicalExpression, valueIfTrue, valueIfFalse) {
61
+ return sql(logicalExpression, valueIfTrue, valueIfFalse);
62
+ }
63
+ function postgresql(logicalExpression, valueIfTrue, valueIfFalse) {
64
+ return sql(logicalExpression, valueIfTrue, valueIfFalse);
65
+ }
64
66
  //# sourceMappingURL=if.js.map