@quillsql/react 2.13.43 → 2.13.45
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/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +2 -2
- package/dist/cjs/ChartBuilder.d.ts +1 -0
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +48 -14
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +2 -2
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +37 -26
- package/dist/cjs/Dashboard.d.ts +8 -2
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +117 -101
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +871 -1574
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +23 -4
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/components/Chart/CustomReferenceLine.js +1 -1
- package/dist/cjs/components/Chart/GaugeChart.js +0 -6
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -3
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.js +20 -19
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +1 -0
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +58 -8
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +91 -14
- package/dist/cjs/components/QuillSelectWithCombo.js +6 -6
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +6 -16
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +172 -75
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +1 -5
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -9
- package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts +17 -0
- package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/DraggableColumns.js +52 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts +17 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.js +17 -0
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +6 -12
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +29 -20
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +8 -17
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +20 -86
- package/dist/cjs/components/ReportBuilder/convert.js +6 -6
- package/dist/cjs/components/ReportBuilder/ui.d.ts +8 -9
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +30 -8
- package/dist/cjs/components/ReportBuilder/util.d.ts +2 -5
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +1 -1
- package/dist/cjs/components/UiComponents.d.ts +3 -2
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +13 -13
- package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +14 -12
- package/dist/cjs/hooks/useDashboard.d.ts +5 -3
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +8 -6
- package/dist/cjs/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/cjs/hooks/useOnClickOutside.js +33 -0
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +2 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +22 -15
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +7 -5
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +100 -48
- package/dist/cjs/models/Client.d.ts +4 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Dashboard.d.ts +1 -0
- package/dist/cjs/models/Dashboard.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +2 -0
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/ReportBuilder.d.ts +46 -0
- package/dist/cjs/models/ReportBuilder.d.ts.map +1 -0
- package/dist/cjs/models/ReportBuilder.js +19 -0
- package/dist/cjs/models/Tables.d.ts +5 -5
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +301 -97
- package/dist/cjs/utils/astProcessing.d.ts +14 -4
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +38 -4
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +18 -3
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +4 -3
- package/dist/cjs/utils/filterProcessing.d.ts +2 -11
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +4 -16
- package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +4 -2
- package/dist/cjs/utils/pivotProcessing.d.ts +17 -7
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +60 -51
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +15 -2
- package/dist/cjs/utils/report.d.ts +12 -9
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +114 -47
- package/dist/cjs/utils/reportBuilder.d.ts +88 -0
- package/dist/cjs/utils/reportBuilder.d.ts.map +1 -0
- package/dist/cjs/utils/reportBuilder.js +395 -0
- package/dist/cjs/utils/schema.d.ts +7 -0
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +36 -2
- package/dist/cjs/utils/tableProcessing.d.ts +59 -29
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +75 -90
- package/dist/cjs/utils/ui.d.ts +2 -0
- package/dist/cjs/utils/ui.d.ts.map +1 -0
- package/dist/cjs/utils/ui.js +18 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +2 -2
- package/dist/esm/ChartBuilder.d.ts +1 -0
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +49 -15
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +2 -2
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +37 -26
- package/dist/esm/Dashboard.d.ts +8 -2
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +121 -105
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +878 -1581
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +23 -4
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/components/Chart/CustomReferenceLine.js +1 -1
- package/dist/esm/components/Chart/GaugeChart.js +0 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +3 -3
- package/dist/esm/components/Dashboard/DashboardSection.d.ts +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.js +21 -20
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +1 -0
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +57 -7
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +58 -14
- package/dist/esm/components/QuillSelectWithCombo.js +6 -6
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +6 -16
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +173 -76
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +1 -5
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -9
- package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts +17 -0
- package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/DraggableColumns.js +46 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.d.ts +17 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.js +14 -0
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +6 -12
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +29 -20
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +8 -17
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +21 -87
- package/dist/esm/components/ReportBuilder/convert.js +6 -6
- package/dist/esm/components/ReportBuilder/ui.d.ts +8 -9
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +33 -11
- package/dist/esm/components/ReportBuilder/util.d.ts +2 -5
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +1 -1
- package/dist/esm/components/UiComponents.d.ts +3 -2
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +13 -13
- package/dist/esm/hooks/useAskQuill.d.ts +1 -1
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +14 -12
- package/dist/esm/hooks/useDashboard.d.ts +5 -3
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +8 -6
- package/dist/esm/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/esm/hooks/useOnClickOutside.js +31 -0
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +2 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +23 -16
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +7 -5
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +101 -49
- package/dist/esm/models/Client.d.ts +4 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Dashboard.d.ts +1 -0
- package/dist/esm/models/Dashboard.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +2 -0
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/ReportBuilder.d.ts +46 -0
- package/dist/esm/models/ReportBuilder.d.ts.map +1 -0
- package/dist/esm/models/ReportBuilder.js +16 -0
- package/dist/esm/models/Tables.d.ts +5 -5
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +300 -97
- package/dist/esm/utils/astProcessing.d.ts +14 -4
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +38 -5
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +18 -3
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +4 -3
- package/dist/esm/utils/filterProcessing.d.ts +2 -11
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +4 -15
- package/dist/esm/utils/pivotConstructor.d.ts +2 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +4 -2
- package/dist/esm/utils/pivotProcessing.d.ts +17 -7
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +58 -49
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +15 -2
- package/dist/esm/utils/report.d.ts +12 -9
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +116 -46
- package/dist/esm/utils/reportBuilder.d.ts +88 -0
- package/dist/esm/utils/reportBuilder.d.ts.map +1 -0
- package/dist/esm/utils/reportBuilder.js +386 -0
- package/dist/esm/utils/schema.d.ts +7 -0
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +34 -1
- package/dist/esm/utils/tableProcessing.d.ts +59 -29
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +71 -86
- package/dist/esm/utils/ui.d.ts +2 -0
- package/dist/esm/utils/ui.d.ts.map +1 -0
- package/dist/esm/utils/ui.js +14 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.filterToAst = exports.filterTreeToAst = exports.astToFilter = exports.astToFilterTree = void 0;
|
|
4
4
|
exports.getFieldFromExpression = getFieldFromExpression;
|
|
5
|
+
exports.getTableFromExpression = getTableFromExpression;
|
|
5
6
|
const Filter_1 = require("../models/Filter");
|
|
6
7
|
const date_fns_1 = require("date-fns");
|
|
7
8
|
const columnProcessing_1 = require("./columnProcessing");
|
|
@@ -6601,8 +6602,10 @@ const queryPatterns = [
|
|
|
6601
6602
|
}
|
|
6602
6603
|
else {
|
|
6603
6604
|
const unitLeft = astWhere.left?.right?.args?.value[0]?.column?.toLowerCase() ??
|
|
6605
|
+
astWhere.left?.right?.args?.value[0]?.value?.toLowerCase() ??
|
|
6604
6606
|
null;
|
|
6605
6607
|
const unitRight = astWhere.right?.right?.args?.value[0]?.column?.toLowerCase() ??
|
|
6608
|
+
astWhere.right?.right?.args?.value[0]?.value?.toLowerCase() ??
|
|
6606
6609
|
null;
|
|
6607
6610
|
return parseStartEndDate(operatorLeft, operatorRight, valueLeft, valueRight, stripTimeS(unitLeft.toLowerCase()), stripTimeS(unitRight.toLowerCase()));
|
|
6608
6611
|
}
|
|
@@ -7156,6 +7159,201 @@ const queryPatterns = [
|
|
|
7156
7159
|
_limit: null,
|
|
7157
7160
|
},
|
|
7158
7161
|
},
|
|
7162
|
+
{
|
|
7163
|
+
query: `
|
|
7164
|
+
SELECT * FROM transactions
|
|
7165
|
+
WHERE transaction_date >= TIMESTAMP_SUB(CURRENT_DATE(), INTERVAL 80 DAY)
|
|
7166
|
+
AND transaction_date < TIMESTAMP_SUB(CURRENT_DATE(), INTERVAL 40 DAY)
|
|
7167
|
+
`,
|
|
7168
|
+
value: function (astWhere) {
|
|
7169
|
+
if (astWhere.right.operator === 'AND') {
|
|
7170
|
+
// Avoid AND chains
|
|
7171
|
+
return -1;
|
|
7172
|
+
}
|
|
7173
|
+
const operatorLeft = astWhere.left.operator;
|
|
7174
|
+
const operatorRight = astWhere.right.operator;
|
|
7175
|
+
const valueLeft = astWhere.left.right?.args?.value[1]?.expr?.value;
|
|
7176
|
+
const valueRight = astWhere.right.right?.args?.value[1]?.expr?.value;
|
|
7177
|
+
if (!valueLeft || !valueRight) {
|
|
7178
|
+
return null;
|
|
7179
|
+
}
|
|
7180
|
+
if (operatorLeft === '>=' &&
|
|
7181
|
+
operatorRight === '<' &&
|
|
7182
|
+
valueLeft == valueRight * 2) {
|
|
7183
|
+
return valueRight;
|
|
7184
|
+
}
|
|
7185
|
+
else if (operatorLeft === '<' &&
|
|
7186
|
+
operatorRight === '>=' &&
|
|
7187
|
+
valueLeft * 2 == valueRight) {
|
|
7188
|
+
return valueLeft;
|
|
7189
|
+
}
|
|
7190
|
+
else {
|
|
7191
|
+
const unitLeft = astWhere.left?.right?.args?.value[1]?.unit?.toLowerCase() ??
|
|
7192
|
+
null;
|
|
7193
|
+
const unitRight = astWhere.right?.right?.args?.value[1]?.unit?.toLowerCase() ??
|
|
7194
|
+
null;
|
|
7195
|
+
return parseStartEndDate(operatorLeft, operatorRight, valueLeft, valueRight, stripTimeS(unitLeft.toLowerCase()), stripTimeS(unitRight.toLowerCase()));
|
|
7196
|
+
}
|
|
7197
|
+
},
|
|
7198
|
+
unit: function (astWhere) {
|
|
7199
|
+
const unitLeft = astWhere.left?.right?.args?.value[1]?.unit?.toLowerCase() ?? null;
|
|
7200
|
+
const unitRight = astWhere.right?.right?.args?.value[1]?.unit?.toLowerCase() ??
|
|
7201
|
+
null;
|
|
7202
|
+
return stripTimeS(unitLeft.toLowerCase()) ===
|
|
7203
|
+
stripTimeS(unitRight.toLowerCase())
|
|
7204
|
+
? stripTimeS(unitLeft.toLowerCase())
|
|
7205
|
+
: null;
|
|
7206
|
+
},
|
|
7207
|
+
ast: {
|
|
7208
|
+
type: 'select',
|
|
7209
|
+
as_struct_val: null,
|
|
7210
|
+
distinct: null,
|
|
7211
|
+
columns: [
|
|
7212
|
+
{
|
|
7213
|
+
expr: {
|
|
7214
|
+
type: 'column_ref',
|
|
7215
|
+
table: null,
|
|
7216
|
+
column: '*',
|
|
7217
|
+
},
|
|
7218
|
+
as: null,
|
|
7219
|
+
},
|
|
7220
|
+
],
|
|
7221
|
+
from: [
|
|
7222
|
+
{
|
|
7223
|
+
db: null,
|
|
7224
|
+
table: 'transactions',
|
|
7225
|
+
as: null,
|
|
7226
|
+
operator: null,
|
|
7227
|
+
},
|
|
7228
|
+
],
|
|
7229
|
+
for_sys_time_as_of: null,
|
|
7230
|
+
where: {
|
|
7231
|
+
type: 'binary_expr',
|
|
7232
|
+
operator: 'AND',
|
|
7233
|
+
left: {
|
|
7234
|
+
type: 'binary_expr',
|
|
7235
|
+
operator: '>=',
|
|
7236
|
+
left: {
|
|
7237
|
+
type: 'column_ref',
|
|
7238
|
+
table: null,
|
|
7239
|
+
column: {
|
|
7240
|
+
expr: {
|
|
7241
|
+
type: 'default',
|
|
7242
|
+
value: 'transaction_date',
|
|
7243
|
+
},
|
|
7244
|
+
offset: [],
|
|
7245
|
+
},
|
|
7246
|
+
collate: null,
|
|
7247
|
+
},
|
|
7248
|
+
right: {
|
|
7249
|
+
type: 'function',
|
|
7250
|
+
name: {
|
|
7251
|
+
name: [],
|
|
7252
|
+
schema: {
|
|
7253
|
+
type: 'default',
|
|
7254
|
+
value: 'TIMESTAMP_SUB',
|
|
7255
|
+
},
|
|
7256
|
+
},
|
|
7257
|
+
args: {
|
|
7258
|
+
type: 'expr_list',
|
|
7259
|
+
value: [
|
|
7260
|
+
{
|
|
7261
|
+
type: 'function',
|
|
7262
|
+
name: {
|
|
7263
|
+
name: [
|
|
7264
|
+
{
|
|
7265
|
+
type: 'default',
|
|
7266
|
+
value: 'CURRENT_DATE',
|
|
7267
|
+
},
|
|
7268
|
+
],
|
|
7269
|
+
},
|
|
7270
|
+
args: {
|
|
7271
|
+
type: 'expr_list',
|
|
7272
|
+
value: [],
|
|
7273
|
+
},
|
|
7274
|
+
over: null,
|
|
7275
|
+
},
|
|
7276
|
+
{
|
|
7277
|
+
type: 'interval',
|
|
7278
|
+
expr: {
|
|
7279
|
+
type: 'number',
|
|
7280
|
+
value: 80,
|
|
7281
|
+
},
|
|
7282
|
+
unit: 'day',
|
|
7283
|
+
},
|
|
7284
|
+
],
|
|
7285
|
+
},
|
|
7286
|
+
over: null,
|
|
7287
|
+
},
|
|
7288
|
+
},
|
|
7289
|
+
right: {
|
|
7290
|
+
type: 'binary_expr',
|
|
7291
|
+
operator: '<',
|
|
7292
|
+
left: {
|
|
7293
|
+
type: 'column_ref',
|
|
7294
|
+
table: null,
|
|
7295
|
+
column: {
|
|
7296
|
+
expr: {
|
|
7297
|
+
type: 'default',
|
|
7298
|
+
value: 'transaction_date',
|
|
7299
|
+
},
|
|
7300
|
+
offset: [],
|
|
7301
|
+
},
|
|
7302
|
+
collate: null,
|
|
7303
|
+
},
|
|
7304
|
+
right: {
|
|
7305
|
+
type: 'function',
|
|
7306
|
+
name: {
|
|
7307
|
+
name: [],
|
|
7308
|
+
schema: {
|
|
7309
|
+
type: 'default',
|
|
7310
|
+
value: 'TIMESTAMP_SUB',
|
|
7311
|
+
},
|
|
7312
|
+
},
|
|
7313
|
+
args: {
|
|
7314
|
+
type: 'expr_list',
|
|
7315
|
+
value: [
|
|
7316
|
+
{
|
|
7317
|
+
type: 'function',
|
|
7318
|
+
name: {
|
|
7319
|
+
name: [
|
|
7320
|
+
{
|
|
7321
|
+
type: 'default',
|
|
7322
|
+
value: 'CURRENT_DATE',
|
|
7323
|
+
},
|
|
7324
|
+
],
|
|
7325
|
+
},
|
|
7326
|
+
args: {
|
|
7327
|
+
type: 'expr_list',
|
|
7328
|
+
value: [],
|
|
7329
|
+
},
|
|
7330
|
+
over: null,
|
|
7331
|
+
},
|
|
7332
|
+
{
|
|
7333
|
+
type: 'interval',
|
|
7334
|
+
expr: {
|
|
7335
|
+
type: 'number',
|
|
7336
|
+
value: 40,
|
|
7337
|
+
},
|
|
7338
|
+
unit: 'day',
|
|
7339
|
+
},
|
|
7340
|
+
],
|
|
7341
|
+
},
|
|
7342
|
+
over: null,
|
|
7343
|
+
},
|
|
7344
|
+
},
|
|
7345
|
+
},
|
|
7346
|
+
with: null,
|
|
7347
|
+
groupby: null,
|
|
7348
|
+
having: null,
|
|
7349
|
+
qualify: null,
|
|
7350
|
+
orderby: null,
|
|
7351
|
+
limit: null,
|
|
7352
|
+
window: null,
|
|
7353
|
+
_orderby: null,
|
|
7354
|
+
_limit: null,
|
|
7355
|
+
},
|
|
7356
|
+
},
|
|
7159
7357
|
],
|
|
7160
7358
|
mysql: [
|
|
7161
7359
|
{
|
|
@@ -8151,7 +8349,7 @@ function generateWhereChecker(astWhere) {
|
|
|
8151
8349
|
* Function that takes in a field value and generates an ast
|
|
8152
8350
|
* that wraps it in a LOWER() function
|
|
8153
8351
|
*/
|
|
8154
|
-
function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
8352
|
+
function fieldColumnToLowerCaseAst(field, db, isColumnRef, table) {
|
|
8155
8353
|
switch (db) {
|
|
8156
8354
|
case 'redshift':
|
|
8157
8355
|
return {
|
|
@@ -8170,7 +8368,7 @@ function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
|
8170
8368
|
isColumnRef
|
|
8171
8369
|
? {
|
|
8172
8370
|
type: 'column_ref',
|
|
8173
|
-
table: null,
|
|
8371
|
+
table: table ?? null,
|
|
8174
8372
|
column: {
|
|
8175
8373
|
expr: {
|
|
8176
8374
|
type: 'default',
|
|
@@ -8202,7 +8400,7 @@ function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
|
8202
8400
|
isColumnRef
|
|
8203
8401
|
? {
|
|
8204
8402
|
type: 'column_ref',
|
|
8205
|
-
table: null,
|
|
8403
|
+
table: table ?? null,
|
|
8206
8404
|
column: field,
|
|
8207
8405
|
}
|
|
8208
8406
|
: {
|
|
@@ -8228,7 +8426,7 @@ function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
|
8228
8426
|
isColumnRef
|
|
8229
8427
|
? {
|
|
8230
8428
|
type: 'column_ref',
|
|
8231
|
-
table: null,
|
|
8429
|
+
table: table ?? null,
|
|
8232
8430
|
column: field,
|
|
8233
8431
|
}
|
|
8234
8432
|
: {
|
|
@@ -8256,7 +8454,7 @@ function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
|
8256
8454
|
isColumnRef
|
|
8257
8455
|
? {
|
|
8258
8456
|
type: 'column_ref',
|
|
8259
|
-
table: null,
|
|
8457
|
+
table: table ?? null,
|
|
8260
8458
|
column: field,
|
|
8261
8459
|
}
|
|
8262
8460
|
: {
|
|
@@ -8284,7 +8482,7 @@ function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
|
8284
8482
|
isColumnRef
|
|
8285
8483
|
? {
|
|
8286
8484
|
type: 'column_ref',
|
|
8287
|
-
table: null,
|
|
8485
|
+
table: table ?? null,
|
|
8288
8486
|
db: null,
|
|
8289
8487
|
schema: null,
|
|
8290
8488
|
column: field,
|
|
@@ -8317,7 +8515,7 @@ function fieldColumnToLowerCaseAst(field, db, isColumnRef) {
|
|
|
8317
8515
|
isColumnRef
|
|
8318
8516
|
? {
|
|
8319
8517
|
type: 'column_ref',
|
|
8320
|
-
table: null,
|
|
8518
|
+
table: table ?? null,
|
|
8321
8519
|
column: {
|
|
8322
8520
|
expr: {
|
|
8323
8521
|
type: 'default',
|
|
@@ -8368,6 +8566,9 @@ function lowerFunctionToField(lower, db) {
|
|
|
8368
8566
|
* Function that extracts a field value
|
|
8369
8567
|
*/
|
|
8370
8568
|
function getFieldFromExpression(expr, databaseType) {
|
|
8569
|
+
if (typeof expr === 'string') {
|
|
8570
|
+
return expr;
|
|
8571
|
+
}
|
|
8371
8572
|
return (expr.column?.expr?.value ||
|
|
8372
8573
|
expr.column ||
|
|
8373
8574
|
expr.args?.value?.[1]?.expr?.column ||
|
|
@@ -8390,6 +8591,31 @@ function getFieldFromExpression(expr, databaseType) {
|
|
|
8390
8591
|
expr.args?.source?.column ||
|
|
8391
8592
|
expr.value);
|
|
8392
8593
|
}
|
|
8594
|
+
/**
|
|
8595
|
+
* Function that extracts a table
|
|
8596
|
+
*/
|
|
8597
|
+
function getTableFromExpression(expr, databaseType) {
|
|
8598
|
+
return (expr.column?.expr?.table ||
|
|
8599
|
+
expr.args?.value?.[1]?.expr?.table ||
|
|
8600
|
+
(databaseType === 'mssql'
|
|
8601
|
+
? (expr.args?.value?.[1]?.table ?? expr.args.value?.[0]?.table)
|
|
8602
|
+
: null) ||
|
|
8603
|
+
expr.args?.value?.[1]?.args?.value?.[0]?.column?.expr?.table ||
|
|
8604
|
+
expr.args?.value?.[0]?.value?.expr?.table ||
|
|
8605
|
+
expr.args?.value?.[1]?.column?.expr?.table ||
|
|
8606
|
+
expr.args?.value?.[0]?.column?.expr?.table ||
|
|
8607
|
+
(expr.name?.schema?.value !== 'DATETIME_TRUNC' // BigQuery edge case
|
|
8608
|
+
? expr.args?.value?.[1]?.table
|
|
8609
|
+
: null) ||
|
|
8610
|
+
(expr.args?.value?.[1]?.type === 'double_quote_string'
|
|
8611
|
+
? expr.args?.value?.[1]?.table
|
|
8612
|
+
: null) ||
|
|
8613
|
+
expr.args?.value?.[0]?.table ||
|
|
8614
|
+
expr.args?.value?.[0]?.table ||
|
|
8615
|
+
expr.args?.source?.column?.expr?.table ||
|
|
8616
|
+
expr.args?.source?.table ||
|
|
8617
|
+
expr.table);
|
|
8618
|
+
}
|
|
8393
8619
|
/**
|
|
8394
8620
|
* @param ast
|
|
8395
8621
|
* @param client
|
|
@@ -8504,50 +8730,18 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8504
8730
|
if (!left || !operator || !right) {
|
|
8505
8731
|
return null;
|
|
8506
8732
|
}
|
|
8507
|
-
let
|
|
8733
|
+
let leftExpr;
|
|
8508
8734
|
// First, determine which column field is being referenced
|
|
8509
8735
|
// The location of the field in the ast tree varies by database type and filter type
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
switch (leftExpr.type) {
|
|
8520
|
-
case 'function':
|
|
8521
|
-
field =
|
|
8522
|
-
leftExpr.args?.value[1]?.column?.expr?.value ??
|
|
8523
|
-
leftExpr.args?.value[0]?.column?.expr?.value ??
|
|
8524
|
-
lowerFunctionToField(leftExpr, db) ??
|
|
8525
|
-
getFieldFromExpression(leftExpr, db);
|
|
8526
|
-
break;
|
|
8527
|
-
default:
|
|
8528
|
-
field = getFieldFromExpression(leftExpr, db);
|
|
8529
|
-
if (!field) {
|
|
8530
|
-
console.error('Could not determine field: ', leftExpr);
|
|
8531
|
-
return null;
|
|
8532
|
-
}
|
|
8533
|
-
}
|
|
8534
|
-
break;
|
|
8535
|
-
case 'snowflake':
|
|
8536
|
-
case 'bigquery':
|
|
8537
|
-
case 'mysql':
|
|
8538
|
-
leftExpr = left;
|
|
8539
|
-
while (leftExpr.type === 'binary_expr') {
|
|
8540
|
-
leftExpr = leftExpr.left;
|
|
8541
|
-
}
|
|
8542
|
-
field = getFieldFromExpression(leftExpr, db);
|
|
8543
|
-
if (!field) {
|
|
8544
|
-
console.error('Could not determine field: ', leftExpr);
|
|
8545
|
-
return null;
|
|
8546
|
-
}
|
|
8547
|
-
break;
|
|
8548
|
-
default:
|
|
8549
|
-
console.error('Unknown database source: ', db);
|
|
8550
|
-
return null;
|
|
8736
|
+
leftExpr = left;
|
|
8737
|
+
while (leftExpr.type === 'binary_expr') {
|
|
8738
|
+
leftExpr = leftExpr.left;
|
|
8739
|
+
}
|
|
8740
|
+
const field = getFieldFromExpression(leftExpr, db);
|
|
8741
|
+
const table = getTableFromExpression(leftExpr, db);
|
|
8742
|
+
if (!field) {
|
|
8743
|
+
console.error('Could not determine field: ', leftExpr);
|
|
8744
|
+
return null;
|
|
8551
8745
|
}
|
|
8552
8746
|
if (!field) {
|
|
8553
8747
|
console.error('Could not determine field: ', leftExpr);
|
|
@@ -8616,7 +8810,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8616
8810
|
}
|
|
8617
8811
|
// If columns are provided, look for the field in columns and assign the correct type
|
|
8618
8812
|
if (columns && fieldType !== Filter_1.FieldType.Null) {
|
|
8619
|
-
const column = columns.find((col) => col.field === field);
|
|
8813
|
+
const column = columns.find((col) => col.field === field && (!col.table || !table || col.table === table));
|
|
8620
8814
|
if (column) {
|
|
8621
8815
|
if ((0, columnProcessing_1.isDateType)(column.fieldType)) {
|
|
8622
8816
|
fieldType = Filter_1.FieldType.Date;
|
|
@@ -8712,6 +8906,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8712
8906
|
fieldType: Filter_1.FieldType.String,
|
|
8713
8907
|
operator: mappedOperator,
|
|
8714
8908
|
value: (lowerFunctionToField(right, db) ?? '').replaceAll('%', ''),
|
|
8909
|
+
table,
|
|
8715
8910
|
};
|
|
8716
8911
|
case Filter_1.InternalFilterType.StringInFilter:
|
|
8717
8912
|
return {
|
|
@@ -8720,6 +8915,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8720
8915
|
fieldType: Filter_1.FieldType.String,
|
|
8721
8916
|
operator: mappedOperator,
|
|
8722
8917
|
value: right.value.map((v) => (lowerFunctionToField(v, db) ?? '').replaceAll('%', '')),
|
|
8918
|
+
table,
|
|
8723
8919
|
};
|
|
8724
8920
|
case Filter_1.InternalFilterType.NumericFilter:
|
|
8725
8921
|
return {
|
|
@@ -8728,6 +8924,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8728
8924
|
fieldType: Filter_1.FieldType.Number,
|
|
8729
8925
|
operator: mappedOperator,
|
|
8730
8926
|
value: Number(right.value),
|
|
8927
|
+
table,
|
|
8731
8928
|
};
|
|
8732
8929
|
case Filter_1.InternalFilterType.NullFilter:
|
|
8733
8930
|
return {
|
|
@@ -8736,6 +8933,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8736
8933
|
fieldType: Filter_1.FieldType.Null,
|
|
8737
8934
|
operator: mappedOperator,
|
|
8738
8935
|
value: null,
|
|
8936
|
+
table,
|
|
8739
8937
|
};
|
|
8740
8938
|
case Filter_1.InternalFilterType.DateCustomFilter: {
|
|
8741
8939
|
const rightExprList = right;
|
|
@@ -8750,6 +8948,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8750
8948
|
fieldType: Filter_1.FieldType.Date,
|
|
8751
8949
|
operator: Filter_1.DateOperator.Custom,
|
|
8752
8950
|
value: values,
|
|
8951
|
+
table,
|
|
8753
8952
|
};
|
|
8754
8953
|
}
|
|
8755
8954
|
case Filter_1.InternalFilterType.DateComparisonFilter: {
|
|
@@ -8768,6 +8967,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8768
8967
|
fieldType: Filter_1.FieldType.Date,
|
|
8769
8968
|
operator: Filter_1.DateOperator.Custom,
|
|
8770
8969
|
value: { startDate: right.value, endDate: right.value },
|
|
8970
|
+
table,
|
|
8771
8971
|
};
|
|
8772
8972
|
}
|
|
8773
8973
|
return {
|
|
@@ -8776,6 +8976,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8776
8976
|
fieldType: Filter_1.FieldType.Date,
|
|
8777
8977
|
operator: numericDateComparison,
|
|
8778
8978
|
value: right.value,
|
|
8979
|
+
table,
|
|
8779
8980
|
};
|
|
8780
8981
|
}
|
|
8781
8982
|
}
|
|
@@ -8793,6 +8994,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8793
8994
|
fieldType: Filter_1.FieldType.Date,
|
|
8794
8995
|
operator: dateOperator,
|
|
8795
8996
|
value,
|
|
8997
|
+
table,
|
|
8796
8998
|
};
|
|
8797
8999
|
}
|
|
8798
9000
|
else {
|
|
@@ -8802,6 +9004,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8802
9004
|
fieldType: Filter_1.FieldType.Date,
|
|
8803
9005
|
operator: Filter_1.DateOperator.Custom,
|
|
8804
9006
|
value: value.value,
|
|
9007
|
+
table,
|
|
8805
9008
|
};
|
|
8806
9009
|
}
|
|
8807
9010
|
}
|
|
@@ -8819,6 +9022,7 @@ const astToFilter = (ast, db, columns) => {
|
|
|
8819
9022
|
fieldType: Filter_1.FieldType.Boolean,
|
|
8820
9023
|
operator: mappedOperator,
|
|
8821
9024
|
value: value,
|
|
9025
|
+
table,
|
|
8822
9026
|
};
|
|
8823
9027
|
}
|
|
8824
9028
|
}
|
|
@@ -8866,7 +9070,7 @@ exports.filterTreeToAst = filterTreeToAst;
|
|
|
8866
9070
|
* Deterministic function that converts Filter objects to a leaf node ast
|
|
8867
9071
|
*/
|
|
8868
9072
|
const filterToAst = (filter, db) => {
|
|
8869
|
-
const { field, operator, value } = filter;
|
|
9073
|
+
const { field, operator, value, table } = filter;
|
|
8870
9074
|
const mappedOperator = operatorMap[operator][0];
|
|
8871
9075
|
// Generate SQL AST based on the filter type
|
|
8872
9076
|
switch (filter.fieldType) {
|
|
@@ -8880,7 +9084,7 @@ const filterToAst = (filter, db) => {
|
|
|
8880
9084
|
return {
|
|
8881
9085
|
type: 'binary_expr',
|
|
8882
9086
|
operator: mappedOperator,
|
|
8883
|
-
left: fieldColumnToLowerCaseAst(`${field.replaceAll('%', '')}`, db, true),
|
|
9087
|
+
left: fieldColumnToLowerCaseAst(`${field.replaceAll('%', '')}`, db, true, table),
|
|
8884
9088
|
right: {
|
|
8885
9089
|
type: 'expr_list',
|
|
8886
9090
|
value: value.map((v) => {
|
|
@@ -8896,7 +9100,7 @@ const filterToAst = (filter, db) => {
|
|
|
8896
9100
|
return {
|
|
8897
9101
|
type: 'binary_expr',
|
|
8898
9102
|
operator: mappedOperator,
|
|
8899
|
-
left: fieldColumnToLowerCaseAst(field, db, true),
|
|
9103
|
+
left: fieldColumnToLowerCaseAst(field, db, true, table),
|
|
8900
9104
|
right: fieldColumnToLowerCaseAst(value, db, false),
|
|
8901
9105
|
};
|
|
8902
9106
|
case 'LIKE':
|
|
@@ -8906,7 +9110,7 @@ const filterToAst = (filter, db) => {
|
|
|
8906
9110
|
return {
|
|
8907
9111
|
type: 'binary_expr',
|
|
8908
9112
|
operator: mappedOperator,
|
|
8909
|
-
left: fieldColumnToLowerCaseAst(field, db, true),
|
|
9113
|
+
left: fieldColumnToLowerCaseAst(field, db, true, table),
|
|
8910
9114
|
right: fieldColumnToLowerCaseAst(`%${value.replaceAll('%', '')}%`, db, false),
|
|
8911
9115
|
};
|
|
8912
9116
|
default:
|
|
@@ -8916,7 +9120,7 @@ const filterToAst = (filter, db) => {
|
|
|
8916
9120
|
return {
|
|
8917
9121
|
type: 'binary_expr',
|
|
8918
9122
|
operator: mappedOperator,
|
|
8919
|
-
left: fieldColumnToLowerCaseAst(field, db, true),
|
|
9123
|
+
left: fieldColumnToLowerCaseAst(field, db, true, table),
|
|
8920
9124
|
right: fieldColumnToLowerCaseAst(value, db, false),
|
|
8921
9125
|
};
|
|
8922
9126
|
}
|
|
@@ -8926,7 +9130,7 @@ const filterToAst = (filter, db) => {
|
|
|
8926
9130
|
return {
|
|
8927
9131
|
type: 'binary_expr',
|
|
8928
9132
|
operator: mappedOperator,
|
|
8929
|
-
left: { type: 'column_ref', table: null, column: field },
|
|
9133
|
+
left: { type: 'column_ref', table: table ?? null, column: field },
|
|
8930
9134
|
right: { type: 'number', value: Number(value) },
|
|
8931
9135
|
};
|
|
8932
9136
|
}
|
|
@@ -8938,7 +9142,7 @@ const filterToAst = (filter, db) => {
|
|
|
8938
9142
|
operator: mappedOperator,
|
|
8939
9143
|
left: {
|
|
8940
9144
|
type: 'column_ref',
|
|
8941
|
-
table: null,
|
|
9145
|
+
table: table ?? null,
|
|
8942
9146
|
column: field,
|
|
8943
9147
|
},
|
|
8944
9148
|
right: {
|
|
@@ -8967,7 +9171,7 @@ const filterToAst = (filter, db) => {
|
|
|
8967
9171
|
operator: '>=',
|
|
8968
9172
|
left: {
|
|
8969
9173
|
type: 'column_ref',
|
|
8970
|
-
table: null,
|
|
9174
|
+
table: table ?? null,
|
|
8971
9175
|
column: {
|
|
8972
9176
|
expr: {
|
|
8973
9177
|
type: 'default',
|
|
@@ -9026,7 +9230,7 @@ const filterToAst = (filter, db) => {
|
|
|
9026
9230
|
operator: '>=',
|
|
9027
9231
|
left: {
|
|
9028
9232
|
type: 'column_ref',
|
|
9029
|
-
table: null,
|
|
9233
|
+
table: table ?? null,
|
|
9030
9234
|
column: field,
|
|
9031
9235
|
},
|
|
9032
9236
|
right: {
|
|
@@ -9066,7 +9270,7 @@ const filterToAst = (filter, db) => {
|
|
|
9066
9270
|
operator: '>=',
|
|
9067
9271
|
left: {
|
|
9068
9272
|
type: 'column_ref',
|
|
9069
|
-
table: null,
|
|
9273
|
+
table: table ?? null,
|
|
9070
9274
|
column: field,
|
|
9071
9275
|
},
|
|
9072
9276
|
right: {
|
|
@@ -9131,7 +9335,7 @@ const filterToAst = (filter, db) => {
|
|
|
9131
9335
|
operator: '>=',
|
|
9132
9336
|
left: {
|
|
9133
9337
|
type: 'column_ref',
|
|
9134
|
-
table: null,
|
|
9338
|
+
table: table ?? null,
|
|
9135
9339
|
column: field,
|
|
9136
9340
|
},
|
|
9137
9341
|
right: {
|
|
@@ -9165,7 +9369,7 @@ const filterToAst = (filter, db) => {
|
|
|
9165
9369
|
operator: '>=',
|
|
9166
9370
|
left: {
|
|
9167
9371
|
type: 'column_ref',
|
|
9168
|
-
table: null,
|
|
9372
|
+
table: table ?? null,
|
|
9169
9373
|
column: {
|
|
9170
9374
|
expr: {
|
|
9171
9375
|
type: 'default',
|
|
@@ -9206,7 +9410,7 @@ const filterToAst = (filter, db) => {
|
|
|
9206
9410
|
operator: '>=',
|
|
9207
9411
|
left: {
|
|
9208
9412
|
type: 'column_ref',
|
|
9209
|
-
table: null,
|
|
9413
|
+
table: table ?? null,
|
|
9210
9414
|
column: {
|
|
9211
9415
|
expr: {
|
|
9212
9416
|
type: 'default',
|
|
@@ -9248,7 +9452,7 @@ const filterToAst = (filter, db) => {
|
|
|
9248
9452
|
operator: '>=',
|
|
9249
9453
|
left: {
|
|
9250
9454
|
type: 'column_ref',
|
|
9251
|
-
table: null,
|
|
9455
|
+
table: table ?? null,
|
|
9252
9456
|
db: null,
|
|
9253
9457
|
schema: null,
|
|
9254
9458
|
column: field,
|
|
@@ -9315,7 +9519,7 @@ const filterToAst = (filter, db) => {
|
|
|
9315
9519
|
operator: '>=',
|
|
9316
9520
|
left: {
|
|
9317
9521
|
type: 'column_ref',
|
|
9318
|
-
table: null,
|
|
9522
|
+
table: table ?? null,
|
|
9319
9523
|
column: {
|
|
9320
9524
|
expr: {
|
|
9321
9525
|
type: 'default',
|
|
@@ -9363,7 +9567,7 @@ const filterToAst = (filter, db) => {
|
|
|
9363
9567
|
operator: '<',
|
|
9364
9568
|
left: {
|
|
9365
9569
|
type: 'column_ref',
|
|
9366
|
-
table: null,
|
|
9570
|
+
table: table ?? null,
|
|
9367
9571
|
column: {
|
|
9368
9572
|
expr: {
|
|
9369
9573
|
type: 'default',
|
|
@@ -9444,7 +9648,7 @@ const filterToAst = (filter, db) => {
|
|
|
9444
9648
|
},
|
|
9445
9649
|
{
|
|
9446
9650
|
type: 'column_ref',
|
|
9447
|
-
table: null,
|
|
9651
|
+
table: table ?? null,
|
|
9448
9652
|
column: field,
|
|
9449
9653
|
},
|
|
9450
9654
|
],
|
|
@@ -9505,7 +9709,7 @@ const filterToAst = (filter, db) => {
|
|
|
9505
9709
|
value: [
|
|
9506
9710
|
{
|
|
9507
9711
|
type: 'column_ref',
|
|
9508
|
-
table: null,
|
|
9712
|
+
table: table ?? null,
|
|
9509
9713
|
column: field,
|
|
9510
9714
|
},
|
|
9511
9715
|
{
|
|
@@ -9576,7 +9780,7 @@ const filterToAst = (filter, db) => {
|
|
|
9576
9780
|
value: [
|
|
9577
9781
|
{
|
|
9578
9782
|
type: 'column_ref',
|
|
9579
|
-
table: null,
|
|
9783
|
+
table: table ?? null,
|
|
9580
9784
|
column: field,
|
|
9581
9785
|
},
|
|
9582
9786
|
],
|
|
@@ -9635,7 +9839,7 @@ const filterToAst = (filter, db) => {
|
|
|
9635
9839
|
value: [
|
|
9636
9840
|
{
|
|
9637
9841
|
type: 'column_ref',
|
|
9638
|
-
table: null,
|
|
9842
|
+
table: table ?? null,
|
|
9639
9843
|
column: field,
|
|
9640
9844
|
},
|
|
9641
9845
|
],
|
|
@@ -9724,7 +9928,7 @@ const filterToAst = (filter, db) => {
|
|
|
9724
9928
|
value: [
|
|
9725
9929
|
{
|
|
9726
9930
|
type: 'column_ref',
|
|
9727
|
-
table: null,
|
|
9931
|
+
table: table ?? null,
|
|
9728
9932
|
column: {
|
|
9729
9933
|
expr: {
|
|
9730
9934
|
type: 'default',
|
|
@@ -9800,7 +10004,7 @@ const filterToAst = (filter, db) => {
|
|
|
9800
10004
|
},
|
|
9801
10005
|
{
|
|
9802
10006
|
type: 'column_ref',
|
|
9803
|
-
table: null,
|
|
10007
|
+
table: table ?? null,
|
|
9804
10008
|
column: {
|
|
9805
10009
|
expr: {
|
|
9806
10010
|
type: 'default',
|
|
@@ -9870,7 +10074,7 @@ const filterToAst = (filter, db) => {
|
|
|
9870
10074
|
},
|
|
9871
10075
|
{
|
|
9872
10076
|
type: 'column_ref',
|
|
9873
|
-
table: null,
|
|
10077
|
+
table: table ?? null,
|
|
9874
10078
|
column: {
|
|
9875
10079
|
expr: {
|
|
9876
10080
|
type: 'default',
|
|
@@ -9940,7 +10144,7 @@ const filterToAst = (filter, db) => {
|
|
|
9940
10144
|
},
|
|
9941
10145
|
{
|
|
9942
10146
|
type: 'column_ref',
|
|
9943
|
-
table: null,
|
|
10147
|
+
table: table ?? null,
|
|
9944
10148
|
column: {
|
|
9945
10149
|
expr: {
|
|
9946
10150
|
type: 'default',
|
|
@@ -10014,7 +10218,7 @@ const filterToAst = (filter, db) => {
|
|
|
10014
10218
|
},
|
|
10015
10219
|
{
|
|
10016
10220
|
type: 'column_ref',
|
|
10017
|
-
table: null,
|
|
10221
|
+
table: table ?? null,
|
|
10018
10222
|
db: null,
|
|
10019
10223
|
schema: null,
|
|
10020
10224
|
column: field,
|
|
@@ -10081,7 +10285,7 @@ const filterToAst = (filter, db) => {
|
|
|
10081
10285
|
operator: '>=',
|
|
10082
10286
|
left: {
|
|
10083
10287
|
type: 'column_ref',
|
|
10084
|
-
table: null,
|
|
10288
|
+
table: table ?? null,
|
|
10085
10289
|
column: {
|
|
10086
10290
|
expr: {
|
|
10087
10291
|
type: 'default',
|
|
@@ -10139,7 +10343,7 @@ const filterToAst = (filter, db) => {
|
|
|
10139
10343
|
operator: '<',
|
|
10140
10344
|
left: {
|
|
10141
10345
|
type: 'column_ref',
|
|
10142
|
-
table: null,
|
|
10346
|
+
table: table ?? null,
|
|
10143
10347
|
column: {
|
|
10144
10348
|
expr: {
|
|
10145
10349
|
type: 'default',
|
|
@@ -10203,7 +10407,7 @@ const filterToAst = (filter, db) => {
|
|
|
10203
10407
|
operator: '>=',
|
|
10204
10408
|
left: {
|
|
10205
10409
|
type: 'column_ref',
|
|
10206
|
-
table: null,
|
|
10410
|
+
table: table ?? null,
|
|
10207
10411
|
column: field,
|
|
10208
10412
|
},
|
|
10209
10413
|
right: {
|
|
@@ -10242,7 +10446,7 @@ const filterToAst = (filter, db) => {
|
|
|
10242
10446
|
operator: '<',
|
|
10243
10447
|
left: {
|
|
10244
10448
|
type: 'column_ref',
|
|
10245
|
-
table: null,
|
|
10449
|
+
table: table ?? null,
|
|
10246
10450
|
column: field,
|
|
10247
10451
|
},
|
|
10248
10452
|
right: {
|
|
@@ -10287,7 +10491,7 @@ const filterToAst = (filter, db) => {
|
|
|
10287
10491
|
operator: '>=',
|
|
10288
10492
|
left: {
|
|
10289
10493
|
type: 'column_ref',
|
|
10290
|
-
table: null,
|
|
10494
|
+
table: table ?? null,
|
|
10291
10495
|
column: field,
|
|
10292
10496
|
},
|
|
10293
10497
|
right: {
|
|
@@ -10354,7 +10558,7 @@ const filterToAst = (filter, db) => {
|
|
|
10354
10558
|
operator: '<',
|
|
10355
10559
|
left: {
|
|
10356
10560
|
type: 'column_ref',
|
|
10357
|
-
table: null,
|
|
10561
|
+
table: table ?? null,
|
|
10358
10562
|
column: field,
|
|
10359
10563
|
},
|
|
10360
10564
|
right: {
|
|
@@ -10427,7 +10631,7 @@ const filterToAst = (filter, db) => {
|
|
|
10427
10631
|
operator: '>=',
|
|
10428
10632
|
left: {
|
|
10429
10633
|
type: 'column_ref',
|
|
10430
|
-
table: null,
|
|
10634
|
+
table: table ?? null,
|
|
10431
10635
|
column: field,
|
|
10432
10636
|
},
|
|
10433
10637
|
right: {
|
|
@@ -10466,7 +10670,7 @@ const filterToAst = (filter, db) => {
|
|
|
10466
10670
|
operator: '<',
|
|
10467
10671
|
left: {
|
|
10468
10672
|
type: 'column_ref',
|
|
10469
|
-
table: null,
|
|
10673
|
+
table: table ?? null,
|
|
10470
10674
|
column: field,
|
|
10471
10675
|
},
|
|
10472
10676
|
right: {
|
|
@@ -10511,7 +10715,7 @@ const filterToAst = (filter, db) => {
|
|
|
10511
10715
|
operator: '>=',
|
|
10512
10716
|
left: {
|
|
10513
10717
|
type: 'column_ref',
|
|
10514
|
-
table: null,
|
|
10718
|
+
table: table ?? null,
|
|
10515
10719
|
column: {
|
|
10516
10720
|
expr: {
|
|
10517
10721
|
type: 'default',
|
|
@@ -10551,7 +10755,7 @@ const filterToAst = (filter, db) => {
|
|
|
10551
10755
|
operator: '<',
|
|
10552
10756
|
left: {
|
|
10553
10757
|
type: 'column_ref',
|
|
10554
|
-
table: null,
|
|
10758
|
+
table: table ?? null,
|
|
10555
10759
|
column: {
|
|
10556
10760
|
expr: {
|
|
10557
10761
|
type: 'default',
|
|
@@ -10597,7 +10801,7 @@ const filterToAst = (filter, db) => {
|
|
|
10597
10801
|
operator: '>=',
|
|
10598
10802
|
left: {
|
|
10599
10803
|
type: 'column_ref',
|
|
10600
|
-
table: null,
|
|
10804
|
+
table: table ?? null,
|
|
10601
10805
|
column: {
|
|
10602
10806
|
expr: {
|
|
10603
10807
|
type: 'default',
|
|
@@ -10638,7 +10842,7 @@ const filterToAst = (filter, db) => {
|
|
|
10638
10842
|
operator: '<',
|
|
10639
10843
|
left: {
|
|
10640
10844
|
type: 'column_ref',
|
|
10641
|
-
table: null,
|
|
10845
|
+
table: table ?? null,
|
|
10642
10846
|
column: {
|
|
10643
10847
|
expr: {
|
|
10644
10848
|
type: 'default',
|
|
@@ -10685,7 +10889,7 @@ const filterToAst = (filter, db) => {
|
|
|
10685
10889
|
operator: '>=',
|
|
10686
10890
|
left: {
|
|
10687
10891
|
type: 'column_ref',
|
|
10688
|
-
table: null,
|
|
10892
|
+
table: table ?? null,
|
|
10689
10893
|
db: null,
|
|
10690
10894
|
schema: null,
|
|
10691
10895
|
column: field,
|
|
@@ -10742,7 +10946,7 @@ const filterToAst = (filter, db) => {
|
|
|
10742
10946
|
operator: '<',
|
|
10743
10947
|
left: {
|
|
10744
10948
|
type: 'column_ref',
|
|
10745
|
-
table: null,
|
|
10949
|
+
table: table ?? null,
|
|
10746
10950
|
db: null,
|
|
10747
10951
|
schema: null,
|
|
10748
10952
|
column: field,
|
|
@@ -10809,7 +11013,7 @@ const filterToAst = (filter, db) => {
|
|
|
10809
11013
|
return {
|
|
10810
11014
|
left: {
|
|
10811
11015
|
column: field,
|
|
10812
|
-
table: null,
|
|
11016
|
+
table: table ?? null,
|
|
10813
11017
|
type: 'column_ref',
|
|
10814
11018
|
},
|
|
10815
11019
|
operator: '=',
|
|
@@ -10820,7 +11024,7 @@ const filterToAst = (filter, db) => {
|
|
|
10820
11024
|
return {
|
|
10821
11025
|
left: {
|
|
10822
11026
|
column: field,
|
|
10823
|
-
table: null,
|
|
11027
|
+
table: table ?? null,
|
|
10824
11028
|
type: 'column_ref',
|
|
10825
11029
|
},
|
|
10826
11030
|
operator: '>',
|
|
@@ -10831,7 +11035,7 @@ const filterToAst = (filter, db) => {
|
|
|
10831
11035
|
return {
|
|
10832
11036
|
left: {
|
|
10833
11037
|
column: field,
|
|
10834
|
-
table: null,
|
|
11038
|
+
table: table ?? null,
|
|
10835
11039
|
type: 'column_ref',
|
|
10836
11040
|
},
|
|
10837
11041
|
operator: '>=',
|
|
@@ -10842,7 +11046,7 @@ const filterToAst = (filter, db) => {
|
|
|
10842
11046
|
return {
|
|
10843
11047
|
left: {
|
|
10844
11048
|
column: field,
|
|
10845
|
-
table: null,
|
|
11049
|
+
table: table ?? null,
|
|
10846
11050
|
type: 'column_ref',
|
|
10847
11051
|
},
|
|
10848
11052
|
operator: '<',
|
|
@@ -10853,7 +11057,7 @@ const filterToAst = (filter, db) => {
|
|
|
10853
11057
|
return {
|
|
10854
11058
|
left: {
|
|
10855
11059
|
column: field,
|
|
10856
|
-
table: null,
|
|
11060
|
+
table: table ?? null,
|
|
10857
11061
|
type: 'column_ref',
|
|
10858
11062
|
},
|
|
10859
11063
|
operator: '<=',
|
|
@@ -10864,7 +11068,7 @@ const filterToAst = (filter, db) => {
|
|
|
10864
11068
|
return {
|
|
10865
11069
|
left: {
|
|
10866
11070
|
column: field,
|
|
10867
|
-
table: null,
|
|
11071
|
+
table: table ?? null,
|
|
10868
11072
|
type: 'column_ref',
|
|
10869
11073
|
},
|
|
10870
11074
|
operator: '<>',
|
|
@@ -10880,7 +11084,7 @@ const filterToAst = (filter, db) => {
|
|
|
10880
11084
|
return {
|
|
10881
11085
|
type: 'binary_expr',
|
|
10882
11086
|
operator: mappedOperator,
|
|
10883
|
-
left: { type: 'column_ref', table: null, column: field },
|
|
11087
|
+
left: { type: 'column_ref', table: table ?? null, column: field },
|
|
10884
11088
|
right: { type: 'null', value: null },
|
|
10885
11089
|
};
|
|
10886
11090
|
case Filter_1.FieldType.Boolean:
|
|
@@ -10889,7 +11093,7 @@ const filterToAst = (filter, db) => {
|
|
|
10889
11093
|
operator: mappedOperator,
|
|
10890
11094
|
left: {
|
|
10891
11095
|
type: 'column_ref',
|
|
10892
|
-
table: null,
|
|
11096
|
+
table: table ?? null,
|
|
10893
11097
|
column: field,
|
|
10894
11098
|
},
|
|
10895
11099
|
right: {
|