@qrvey/formula-lang 2.0.1-rc.425 → 2.0.1-rc.429

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.
@@ -59,20 +59,20 @@ function elasticsearch(date, unit, interval) {
59
59
  }
60
60
  function SQL(date, unit, interval) {
61
61
  unit = (0, utils_1.removeQuotes)(unit);
62
- const sqlDateAdd = (date, unit) => `${date} + interval '${unit}'`;
62
+ const sqlDateAdd = (_date, _unit, _interval) => `DATEADD(${_unit}, ${_interval}, ${_date})`;
63
63
  switch (unit) {
64
64
  case 'Y':
65
- return sqlDateAdd(date, `${interval} year`);
65
+ return sqlDateAdd(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
66
66
  case 'M':
67
- return sqlDateAdd(date, `${interval} month`);
67
+ return sqlDateAdd(date, `month`, interval);
68
68
  case 'D':
69
- return sqlDateAdd(date, `${interval} day`);
69
+ return sqlDateAdd(date, `day`, interval);
70
70
  case 'H':
71
- return sqlDateAdd(date, `${interval} hour`);
71
+ return sqlDateAdd(date, `hour`, interval);
72
72
  case 'MI':
73
- return sqlDateAdd(date, `${interval} minute`);
73
+ return sqlDateAdd(date, `minute`, interval);
74
74
  case 'S':
75
- return sqlDateAdd(date, `${interval} second`);
75
+ return sqlDateAdd(date, `second`, interval);
76
76
  default:
77
77
  return '';
78
78
  }
@@ -81,26 +81,26 @@ function snowflake(date, unit, interval) {
81
81
  return SQL(date, unit, interval);
82
82
  }
83
83
  function redshift(date, unit, interval) {
84
+ return SQL(date, unit, interval);
85
+ }
86
+ function postgresql(date, unit, interval) {
84
87
  unit = (0, utils_1.removeQuotes)(unit);
85
- const sqlDateAdd = (date, unit, interval) => `DATEADD(${unit}, ${interval}, ${date})`;
88
+ const sqlDateAdd = (_date, _unit) => `${_date} + interval ${_unit}`;
86
89
  switch (unit) {
87
90
  case 'Y':
88
- return sqlDateAdd(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
91
+ return sqlDateAdd(date, `'1 year' * ${interval}`);
89
92
  case 'M':
90
- return sqlDateAdd(date, `month`, interval);
93
+ return sqlDateAdd(date, `'1 month' * ${interval}`);
91
94
  case 'D':
92
- return sqlDateAdd(date, `day`, interval);
95
+ return sqlDateAdd(date, `'1 day' * ${interval}`);
93
96
  case 'H':
94
- return sqlDateAdd(date, `hour`, interval);
97
+ return sqlDateAdd(date, `'1 hour' * ${interval}`);
95
98
  case 'MI':
96
- return sqlDateAdd(date, `minute`, interval);
99
+ return sqlDateAdd(date, `'1 minute' * ${interval}`);
97
100
  case 'S':
98
- return sqlDateAdd(date, `second`, interval);
101
+ return sqlDateAdd(date, `'1 second' * ${interval}`);
99
102
  default:
100
103
  return '';
101
104
  }
102
105
  }
103
- function postgresql(date, unit, interval) {
104
- return SQL(date, unit, interval);
105
- }
106
106
  //# sourceMappingURL=dateadd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateadd.js","sourceRoot":"","sources":["../../../src/functions/dateadd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dateadd.js","sourceRoot":"","sources":["../../../src/functions/dateadd.ts"],"names":[],"mappings":"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"}
@@ -59,20 +59,20 @@ function elasticsearch(date, unit, interval) {
59
59
  }
60
60
  function SQL(date, unit, interval) {
61
61
  unit = (0, utils_1.removeQuotes)(unit);
62
- const sqlDateAdd = (date, unit) => `${date} - interval '${unit}'`;
62
+ const sqlDateSubtract = (_date, _unit, _interval) => `DATEADD(${_unit}, ${_interval} * -1, ${_date})`;
63
63
  switch (unit) {
64
64
  case 'Y':
65
- return sqlDateAdd(date, `${interval} year`);
65
+ return sqlDateSubtract(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
66
66
  case 'M':
67
- return sqlDateAdd(date, `${interval} month`);
67
+ return sqlDateSubtract(date, `month`, interval);
68
68
  case 'D':
69
- return sqlDateAdd(date, `${interval} day`);
69
+ return sqlDateSubtract(date, `day`, interval);
70
70
  case 'H':
71
- return sqlDateAdd(date, `${interval} hour`);
71
+ return sqlDateSubtract(date, `hour`, interval);
72
72
  case 'MI':
73
- return sqlDateAdd(date, `${interval} minute`);
73
+ return sqlDateSubtract(date, `minute`, interval);
74
74
  case 'S':
75
- return sqlDateAdd(date, `${interval} second`);
75
+ return sqlDateSubtract(date, `second`, interval);
76
76
  default:
77
77
  return '';
78
78
  }
@@ -81,26 +81,26 @@ function snowflake(date, unit, interval) {
81
81
  return SQL(date, unit, interval);
82
82
  }
83
83
  function redshift(date, unit, interval) {
84
+ return SQL(date, unit, interval);
85
+ }
86
+ function postgresql(date, unit, interval) {
84
87
  unit = (0, utils_1.removeQuotes)(unit);
85
- const sqlDateAdd = (date, unit, interval) => `DATEADD(${unit}, ${interval} * -1, ${date})`;
88
+ const sqlDateSubtract = (_date, _unit) => `${_date} - interval ${_unit}`;
86
89
  switch (unit) {
87
90
  case 'Y':
88
- return sqlDateAdd(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
91
+ return sqlDateSubtract(date, `'1 year' * ${interval}`);
89
92
  case 'M':
90
- return sqlDateAdd(date, `month`, interval);
93
+ return sqlDateSubtract(date, `'1 month' * ${interval}`);
91
94
  case 'D':
92
- return sqlDateAdd(date, `day`, interval);
95
+ return sqlDateSubtract(date, `'1 day' * ${interval}`);
93
96
  case 'H':
94
- return sqlDateAdd(date, `hour`, interval);
97
+ return sqlDateSubtract(date, `'1 hour' * ${interval}`);
95
98
  case 'MI':
96
- return sqlDateAdd(date, `minute`, interval);
99
+ return sqlDateSubtract(date, `'1 minute' * ${interval}`);
97
100
  case 'S':
98
- return sqlDateAdd(date, `second`, interval);
101
+ return sqlDateSubtract(date, `'1 second' * ${interval}`);
99
102
  default:
100
103
  return '';
101
104
  }
102
105
  }
103
- function postgresql(date, unit, interval) {
104
- return SQL(date, unit, interval);
105
- }
106
106
  //# sourceMappingURL=datesubtract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datesubtract.js","sourceRoot":"","sources":["../../../src/functions/datesubtract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datesubtract.js","sourceRoot":"","sources":["../../../src/functions/datesubtract.ts"],"names":[],"mappings":"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"}
@@ -56,20 +56,20 @@ function elasticsearch(date, unit, interval) {
56
56
  }
57
57
  function SQL(date, unit, interval) {
58
58
  unit = removeQuotes(unit);
59
- const sqlDateAdd = (date, unit) => `${date} + interval '${unit}'`;
59
+ const sqlDateAdd = (_date, _unit, _interval) => `DATEADD(${_unit}, ${_interval}, ${_date})`;
60
60
  switch (unit) {
61
61
  case 'Y':
62
- return sqlDateAdd(date, `${interval} year`);
62
+ return sqlDateAdd(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
63
63
  case 'M':
64
- return sqlDateAdd(date, `${interval} month`);
64
+ return sqlDateAdd(date, `month`, interval);
65
65
  case 'D':
66
- return sqlDateAdd(date, `${interval} day`);
66
+ return sqlDateAdd(date, `day`, interval);
67
67
  case 'H':
68
- return sqlDateAdd(date, `${interval} hour`);
68
+ return sqlDateAdd(date, `hour`, interval);
69
69
  case 'MI':
70
- return sqlDateAdd(date, `${interval} minute`);
70
+ return sqlDateAdd(date, `minute`, interval);
71
71
  case 'S':
72
- return sqlDateAdd(date, `${interval} second`);
72
+ return sqlDateAdd(date, `second`, interval);
73
73
  default:
74
74
  return '';
75
75
  }
@@ -78,26 +78,26 @@ function snowflake(date, unit, interval) {
78
78
  return SQL(date, unit, interval);
79
79
  }
80
80
  function redshift(date, unit, interval) {
81
+ return SQL(date, unit, interval);
82
+ }
83
+ function postgresql(date, unit, interval) {
81
84
  unit = removeQuotes(unit);
82
- const sqlDateAdd = (date, unit, interval) => `DATEADD(${unit}, ${interval}, ${date})`;
85
+ const sqlDateAdd = (_date, _unit) => `${_date} + interval ${_unit}`;
83
86
  switch (unit) {
84
87
  case 'Y':
85
- return sqlDateAdd(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
88
+ return sqlDateAdd(date, `'1 year' * ${interval}`);
86
89
  case 'M':
87
- return sqlDateAdd(date, `month`, interval);
90
+ return sqlDateAdd(date, `'1 month' * ${interval}`);
88
91
  case 'D':
89
- return sqlDateAdd(date, `day`, interval);
92
+ return sqlDateAdd(date, `'1 day' * ${interval}`);
90
93
  case 'H':
91
- return sqlDateAdd(date, `hour`, interval);
94
+ return sqlDateAdd(date, `'1 hour' * ${interval}`);
92
95
  case 'MI':
93
- return sqlDateAdd(date, `minute`, interval);
96
+ return sqlDateAdd(date, `'1 minute' * ${interval}`);
94
97
  case 'S':
95
- return sqlDateAdd(date, `second`, interval);
98
+ return sqlDateAdd(date, `'1 second' * ${interval}`);
96
99
  default:
97
100
  return '';
98
101
  }
99
102
  }
100
- function postgresql(date, unit, interval) {
101
- return SQL(date, unit, interval);
102
- }
103
103
  //# sourceMappingURL=dateadd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateadd.js","sourceRoot":"","sources":["../../../src/functions/dateadd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dateadd.js","sourceRoot":"","sources":["../../../src/functions/dateadd.ts"],"names":[],"mappings":"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"}
@@ -56,20 +56,20 @@ function elasticsearch(date, unit, interval) {
56
56
  }
57
57
  function SQL(date, unit, interval) {
58
58
  unit = removeQuotes(unit);
59
- const sqlDateAdd = (date, unit) => `${date} - interval '${unit}'`;
59
+ const sqlDateSubtract = (_date, _unit, _interval) => `DATEADD(${_unit}, ${_interval} * -1, ${_date})`;
60
60
  switch (unit) {
61
61
  case 'Y':
62
- return sqlDateAdd(date, `${interval} year`);
62
+ return sqlDateSubtract(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
63
63
  case 'M':
64
- return sqlDateAdd(date, `${interval} month`);
64
+ return sqlDateSubtract(date, `month`, interval);
65
65
  case 'D':
66
- return sqlDateAdd(date, `${interval} day`);
66
+ return sqlDateSubtract(date, `day`, interval);
67
67
  case 'H':
68
- return sqlDateAdd(date, `${interval} hour`);
68
+ return sqlDateSubtract(date, `hour`, interval);
69
69
  case 'MI':
70
- return sqlDateAdd(date, `${interval} minute`);
70
+ return sqlDateSubtract(date, `minute`, interval);
71
71
  case 'S':
72
- return sqlDateAdd(date, `${interval} second`);
72
+ return sqlDateSubtract(date, `second`, interval);
73
73
  default:
74
74
  return '';
75
75
  }
@@ -78,26 +78,26 @@ function snowflake(date, unit, interval) {
78
78
  return SQL(date, unit, interval);
79
79
  }
80
80
  function redshift(date, unit, interval) {
81
+ return SQL(date, unit, interval);
82
+ }
83
+ function postgresql(date, unit, interval) {
81
84
  unit = removeQuotes(unit);
82
- const sqlDateAdd = (date, unit, interval) => `DATEADD(${unit}, ${interval} * -1, ${date})`;
85
+ const sqlDateSubtract = (_date, _unit) => `${_date} - interval ${_unit}`;
83
86
  switch (unit) {
84
87
  case 'Y':
85
- return sqlDateAdd(date, `month`, `${interval} * 12`); // Year to month conversion to get the same result for leap years. Redshift behavior is different for leap year example `2016-02-29` https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html
88
+ return sqlDateSubtract(date, `'1 year' * ${interval}`);
86
89
  case 'M':
87
- return sqlDateAdd(date, `month`, interval);
90
+ return sqlDateSubtract(date, `'1 month' * ${interval}`);
88
91
  case 'D':
89
- return sqlDateAdd(date, `day`, interval);
92
+ return sqlDateSubtract(date, `'1 day' * ${interval}`);
90
93
  case 'H':
91
- return sqlDateAdd(date, `hour`, interval);
94
+ return sqlDateSubtract(date, `'1 hour' * ${interval}`);
92
95
  case 'MI':
93
- return sqlDateAdd(date, `minute`, interval);
96
+ return sqlDateSubtract(date, `'1 minute' * ${interval}`);
94
97
  case 'S':
95
- return sqlDateAdd(date, `second`, interval);
98
+ return sqlDateSubtract(date, `'1 second' * ${interval}`);
96
99
  default:
97
100
  return '';
98
101
  }
99
102
  }
100
- function postgresql(date, unit, interval) {
101
- return SQL(date, unit, interval);
102
- }
103
103
  //# sourceMappingURL=datesubtract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datesubtract.js","sourceRoot":"","sources":["../../../src/functions/datesubtract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datesubtract.js","sourceRoot":"","sources":["../../../src/functions/datesubtract.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/formula-lang",
3
- "version": "2.0.1-rc.425",
3
+ "version": "2.0.1-rc.429",
4
4
  "description": "QFormula support for qrvey projects",
5
5
  "types": "dist/module/index.d.ts",
6
6
  "main": "dist/module/index.js",