@devrev/meerkat-core 0.0.84 → 0.0.86
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/package.json +1 -1
- package/src/ast-serializer/ast-serializer.d.ts +1 -0
- package/src/ast-serializer/ast-serializer.js +12 -0
- package/src/ast-serializer/ast-serializer.js.map +1 -0
- package/src/ast-validator/dimension-validator.d.ts +10 -0
- package/src/ast-validator/dimension-validator.js +54 -0
- package/src/ast-validator/dimension-validator.js.map +1 -0
- package/src/ast-validator/index.d.ts +4 -0
- package/src/ast-validator/index.js +25 -0
- package/src/ast-validator/index.js.map +1 -0
- package/src/ast-validator/measure-validator.d.ts +11 -0
- package/src/ast-validator/measure-validator.js +162 -0
- package/src/ast-validator/measure-validator.js.map +1 -0
- package/src/ast-validator/tests/test-data.d.ts +2133 -0
- package/src/ast-validator/tests/test-data.js +2121 -0
- package/src/ast-validator/tests/test-data.js.map +1 -0
- package/src/ast-validator/types.d.ts +8 -0
- package/src/ast-validator/types.js +3 -0
- package/src/ast-validator/types.js.map +1 -0
- package/src/ast-validator/utils.d.ts +4 -0
- package/src/ast-validator/utils.js +35 -0
- package/src/ast-validator/utils.js.map +1 -0
- package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +3 -2
- package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -1
- package/src/cube-filter-transformer/constant.d.ts +1 -0
- package/src/cube-filter-transformer/constant.js +10 -0
- package/src/cube-filter-transformer/constant.js.map +1 -0
- package/src/cube-filter-transformer/contains/contains.js +2 -1
- package/src/cube-filter-transformer/contains/contains.js.map +1 -1
- package/src/cube-filter-transformer/in/in.d.ts +1 -1
- package/src/cube-filter-transformer/in/in.js +22 -21
- package/src/cube-filter-transformer/in/in.js.map +1 -1
- package/src/cube-filter-transformer/not/not.d.ts +2 -2
- package/src/cube-filter-transformer/not/not.js.map +1 -1
- package/src/cube-filter-transformer/not-contains/not-contains.d.ts +1 -1
- package/src/cube-filter-transformer/not-contains/not-contains.js +2 -1
- package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -1
- package/src/cube-filter-transformer/not-in/not-in.d.ts +1 -1
- package/src/cube-filter-transformer/not-in/not-in.js +23 -22
- package/src/cube-filter-transformer/not-in/not-in.js.map +1 -1
- package/src/cube-filter-transformer/not-set/not-set.d.ts +1 -1
- package/src/cube-filter-transformer/not-set/not-set.js +6 -5
- package/src/cube-filter-transformer/not-set/not-set.js.map +1 -1
- package/src/cube-filter-transformer/set/set.d.ts +1 -1
- package/src/cube-filter-transformer/set/set.js +6 -5
- package/src/cube-filter-transformer/set/set.js.map +1 -1
- package/src/index.d.ts +4 -1
- package/src/index.js +3 -0
- package/src/index.js.map +1 -1
- package/src/types/duckdb-serialization-types/serialization/ParsedExpression.d.ts +17 -0
- package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -1
- package/src/types/utils.d.ts +19 -0
- package/src/types/utils.js +108 -0
- package/src/types/utils.js.map +1 -0
- package/src/utils/base-ast.js +2 -3
- package/src/utils/base-ast.js.map +1 -1
- package/src/utils/get-column-names-from-ast.d.ts +2 -0
- package/src/utils/get-column-names-from-ast.js +45 -0
- package/src/utils/get-column-names-from-ast.js.map +1 -0
|
@@ -15,6 +15,7 @@ _export(exports, {
|
|
|
15
15
|
});
|
|
16
16
|
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
17
17
|
const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
|
|
18
|
+
const _constant = require("../constant");
|
|
18
19
|
const _or = require("../or/or");
|
|
19
20
|
const notContainsDuckdbCondition = (columnName, value, memberInfo)=>{
|
|
20
21
|
return {
|
|
@@ -28,7 +29,7 @@ const notContainsDuckdbCondition = (columnName, value, memberInfo)=>{
|
|
|
28
29
|
class: 'COLUMN_REF',
|
|
29
30
|
type: 'COLUMN_REF',
|
|
30
31
|
alias: '',
|
|
31
|
-
column_names: columnName.split(
|
|
32
|
+
column_names: columnName.split(_constant.COLUMN_NAME_DELIMITER)
|
|
32
33
|
},
|
|
33
34
|
{
|
|
34
35
|
class: 'CONSTANT',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-contains/not-contains.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-contains/not-contains.ts"],"sourcesContent":["import { Member, QueryFilter } from '../../types/cube-types/query';\nimport { Dimension, Measure } from '../../types/cube-types/table';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport interface NotContainsFilters extends QueryFilter {\n member: Member;\n operator: 'notContains';\n values: string[];\n}\n\nexport const notContainsDuckdbCondition = (\n columnName: string,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '!~~',\n schema: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(`%${value}%`, memberInfo),\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n};\n\nexport const notContainsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Contains filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple Contains condition\n */\n if (values.length === 1) {\n return notContainsDuckdbCondition(member, values[0], memberInfo);\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n notContainsDuckdbCondition(member, value, memberInfo)\n );\n });\n return orCondition;\n};\n"],"names":["notContainsDuckdbCondition","notContainsTransform","columnName","value","memberInfo","class","ExpressionClass","FUNCTION","type","ExpressionType","alias","function_name","schema","children","column_names","split","COLUMN_NAME_DELIMITER","valueBuilder","filter","order_bys","orders","distinct","is_operator","export_state","catalog","query","member","values","length","Error","orCondition","orDuckdbCondition","forEach","push"],"mappings":";;;;;;;;IAiBaA,0BAA0B;eAA1BA;;IAqCAC,oBAAoB;eAApBA;;;4BAjDN;sCACsB;0BACS;oBAEJ;AAQ3B,MAAMD,6BAA6B,CACxCE,YACAC,OACAC;IAEA,OAAO;QACLC,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACF,QAAQ;QAC7BG,OAAO;QACPC,eAAe;QACfC,QAAQ;QACRC,UAAU;YACR;gBACER,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPI,cAAcZ,WAAWa,KAAK,CAACC,+BAAqB;YACtD;YACA;gBACEX,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPP,OAAOc,IAAAA,kCAAY,EAAC,CAAC,CAAC,EAAEd,MAAM,CAAC,CAAC,EAAEC;YACpC;SACD;QACDc,QAAQ;QACRC,WAAW;YACTX,MAAM;YACNY,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;AACF;AAEO,MAAMvB,uBAAuD,CAACwB;IACnE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEvB,UAAU,EAAE,GAAGqB;IAEvC,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAO5B,2BAA2B0B,QAAQC,MAAM,CAAC,EAAE,EAAEvB;IACvD;IAEA;;GAEC,GACD,MAAM0B,cAAcC,IAAAA,qBAAiB;IACrCJ,OAAOK,OAAO,CAAC,CAAC7B;QACd2B,YAAYjB,QAAQ,CAACoB,IAAI,CACvBjC,2BAA2B0B,QAAQvB,OAAOC;IAE9C;IACA,OAAO0B;AACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CubeToParseExpressionTransform } from
|
|
1
|
+
import { CubeToParseExpressionTransform } from '../factory';
|
|
2
2
|
export declare const notInTransform: CubeToParseExpressionTransform;
|
|
@@ -7,20 +7,21 @@ Object.defineProperty(exports, "notInTransform", {
|
|
|
7
7
|
});
|
|
8
8
|
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
9
9
|
const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
|
|
10
|
+
const _constant = require("../constant");
|
|
10
11
|
const notInDuckDbCondition = (columnName, values, memberInfo)=>{
|
|
11
12
|
const sqlTreeValues = values.map((value)=>{
|
|
12
13
|
return {
|
|
13
14
|
class: _Expression.ExpressionClass.CONSTANT,
|
|
14
15
|
type: _Expression.ExpressionType.VALUE_CONSTANT,
|
|
15
|
-
alias:
|
|
16
|
+
alias: '',
|
|
16
17
|
value: (0, _baseconditionbuilder.valueBuilder)(value, memberInfo)
|
|
17
18
|
};
|
|
18
19
|
});
|
|
19
20
|
const columnRef = {
|
|
20
|
-
class:
|
|
21
|
-
type:
|
|
22
|
-
alias:
|
|
23
|
-
column_names: columnName.split(
|
|
21
|
+
class: 'COLUMN_REF',
|
|
22
|
+
type: 'COLUMN_REF',
|
|
23
|
+
alias: '',
|
|
24
|
+
column_names: columnName.split(_constant.COLUMN_NAME_DELIMITER)
|
|
24
25
|
};
|
|
25
26
|
switch(memberInfo.type){
|
|
26
27
|
case 'number_array':
|
|
@@ -29,32 +30,32 @@ const notInDuckDbCondition = (columnName, values, memberInfo)=>{
|
|
|
29
30
|
return {
|
|
30
31
|
class: _Expression.ExpressionClass.OPERATOR,
|
|
31
32
|
type: _Expression.ExpressionType.OPERATOR_NOT,
|
|
32
|
-
alias:
|
|
33
|
+
alias: '',
|
|
33
34
|
children: [
|
|
34
35
|
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
class: _Expression.ExpressionClass.FUNCTION,
|
|
37
|
+
type: _Expression.ExpressionType.FUNCTION,
|
|
38
|
+
alias: '',
|
|
39
|
+
function_name: '&&',
|
|
40
|
+
schema: '',
|
|
41
|
+
children: [
|
|
41
42
|
columnRef,
|
|
42
43
|
{
|
|
43
44
|
class: _Expression.ExpressionClass.OPERATOR,
|
|
44
45
|
type: _Expression.ExpressionType.ARRAY_CONSTRUCTOR,
|
|
45
|
-
alias:
|
|
46
|
+
alias: '',
|
|
46
47
|
children: sqlTreeValues
|
|
47
48
|
}
|
|
48
49
|
],
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
filter: null,
|
|
51
|
+
order_bys: {
|
|
52
|
+
type: 'ORDER_MODIFIER',
|
|
53
|
+
orders: []
|
|
53
54
|
},
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
distinct: false,
|
|
56
|
+
is_operator: true,
|
|
57
|
+
export_state: false,
|
|
58
|
+
catalog: ''
|
|
58
59
|
}
|
|
59
60
|
]
|
|
60
61
|
};
|
|
@@ -64,7 +65,7 @@ const notInDuckDbCondition = (columnName, values, memberInfo)=>{
|
|
|
64
65
|
return {
|
|
65
66
|
class: _Expression.ExpressionClass.OPERATOR,
|
|
66
67
|
type: _Expression.ExpressionType.COMPARE_NOT_IN,
|
|
67
|
-
alias:
|
|
68
|
+
alias: '',
|
|
68
69
|
children: [
|
|
69
70
|
columnRef,
|
|
70
71
|
...sqlTreeValues
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/table';\nimport { CubeToParseExpressionTransform } from
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/table';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\n\nconst notInDuckDbCondition = (\n columnName: string,\n values: string[],\n memberInfo: Measure | Dimension\n) => {\n const sqlTreeValues = values.map((value) => {\n return {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n };\n });\n const columnRef = {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n };\n switch (memberInfo.type) {\n case 'number_array':\n case 'string_array': {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_NOT,\n alias: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '&&',\n schema: '',\n children: [\n columnRef,\n {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.ARRAY_CONSTRUCTOR,\n alias: '',\n children: sqlTreeValues,\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n };\n }\n default: {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.COMPARE_NOT_IN,\n alias: '',\n children: [columnRef, ...sqlTreeValues],\n };\n }\n }\n};\n\nexport const notInTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n if (!values) {\n throw new Error('Not in filter must have at least one value');\n }\n\n return notInDuckDbCondition(member, values, memberInfo);\n};\n"],"names":["notInTransform","notInDuckDbCondition","columnName","values","memberInfo","sqlTreeValues","map","value","class","ExpressionClass","CONSTANT","type","ExpressionType","VALUE_CONSTANT","alias","valueBuilder","columnRef","column_names","split","COLUMN_NAME_DELIMITER","OPERATOR","OPERATOR_NOT","children","FUNCTION","function_name","schema","ARRAY_CONSTRUCTOR","filter","order_bys","orders","distinct","is_operator","export_state","catalog","COMPARE_NOT_IN","query","member","Error"],"mappings":";+BA4EaA;;;eAAAA;;;4BAtEN;sCACsB;0BACS;AAEtC,MAAMC,uBAAuB,CAC3BC,YACAC,QACAC;IAEA,MAAMC,gBAAgBF,OAAOG,GAAG,CAAC,CAACC;QAChC,OAAO;YACLC,OAAOC,2BAAe,CAACC,QAAQ;YAC/BC,MAAMC,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPP,OAAOQ,IAAAA,kCAAY,EAACR,OAAOH;QAC7B;IACF;IACA,MAAMY,YAAY;QAChBR,OAAO;QACPG,MAAM;QACNG,OAAO;QACPG,cAAcf,WAAWgB,KAAK,CAACC,+BAAqB;IACtD;IACA,OAAQf,WAAWO,IAAI;QACrB,KAAK;QACL,KAAK;YAAgB;gBACnB,OAAO;oBACLH,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACS,YAAY;oBACjCP,OAAO;oBACPQ,UAAU;wBACR;4BACEd,OAAOC,2BAAe,CAACc,QAAQ;4BAC/BZ,MAAMC,0BAAc,CAACW,QAAQ;4BAC7BT,OAAO;4BACPU,eAAe;4BACfC,QAAQ;4BACRH,UAAU;gCACRN;gCACA;oCACER,OAAOC,2BAAe,CAACW,QAAQ;oCAC/BT,MAAMC,0BAAc,CAACc,iBAAiB;oCACtCZ,OAAO;oCACPQ,UAAUjB;gCACZ;6BACD;4BACDsB,QAAQ;4BACRC,WAAW;gCACTjB,MAAM;gCACNkB,QAAQ,EAAE;4BACZ;4BACAC,UAAU;4BACVC,aAAa;4BACbC,cAAc;4BACdC,SAAS;wBACX;qBACD;gBACH;YACF;QACA;YAAS;gBACP,OAAO;oBACLzB,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACsB,cAAc;oBACnCpB,OAAO;oBACPQ,UAAU;wBAACN;2BAAcX;qBAAc;gBACzC;YACF;IACF;AACF;AAEO,MAAML,iBAAiD,CAACmC;IAC7D,MAAM,EAAEC,MAAM,EAAEjC,MAAM,EAAEC,UAAU,EAAE,GAAG+B;IACvC,IAAI,CAAChC,QAAQ;QACX,MAAM,IAAIkC,MAAM;IAClB;IAEA,OAAOpC,qBAAqBmC,QAAQjC,QAAQC;AAC9C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CubeToParseExpressionTransform } from
|
|
1
|
+
import { CubeToParseExpressionTransform } from '../factory';
|
|
2
2
|
export declare const notSetTransform: CubeToParseExpressionTransform;
|
|
@@ -6,18 +6,19 @@ Object.defineProperty(exports, "notSetTransform", {
|
|
|
6
6
|
}
|
|
7
7
|
});
|
|
8
8
|
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
9
|
+
const _constant = require("../constant");
|
|
9
10
|
const notSetTransform = (query)=>{
|
|
10
11
|
const { member } = query;
|
|
11
12
|
return {
|
|
12
13
|
class: _Expression.ExpressionClass.OPERATOR,
|
|
13
14
|
type: _Expression.ExpressionType.OPERATOR_IS_NULL,
|
|
14
|
-
alias:
|
|
15
|
+
alias: '',
|
|
15
16
|
children: [
|
|
16
17
|
{
|
|
17
|
-
class:
|
|
18
|
-
type:
|
|
19
|
-
alias:
|
|
20
|
-
column_names: member.split(
|
|
18
|
+
class: 'COLUMN_REF',
|
|
19
|
+
type: 'COLUMN_REF',
|
|
20
|
+
alias: '',
|
|
21
|
+
column_names: member.split(_constant.COLUMN_NAME_DELIMITER)
|
|
21
22
|
}
|
|
22
23
|
]
|
|
23
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-set/not-set.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-set/not-set.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const notSetTransform: CubeToParseExpressionTransform = (query) => {\n const { member } = query;\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_IS_NULL,\n alias: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: member.split(COLUMN_NAME_DELIMITER),\n },\n ],\n };\n};\n"],"names":["notSetTransform","query","member","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_IS_NULL","alias","children","column_names","split","COLUMN_NAME_DELIMITER"],"mappings":";+BAOaA;;;eAAAA;;;4BAJN;0BAC+B;AAG/B,MAAMA,kBAAkD,CAACC;IAC9D,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,OAAO;QACLE,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACC,gBAAgB;QACrCC,OAAO;QACPC,UAAU;YACR;gBACEP,OAAO;gBACPG,MAAM;gBACNG,OAAO;gBACPE,cAAcT,OAAOU,KAAK,CAACC,+BAAqB;YAClD;SACD;IACH;AACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CubeToParseExpressionTransform } from
|
|
1
|
+
import { CubeToParseExpressionTransform } from '../factory';
|
|
2
2
|
export declare const setTransform: CubeToParseExpressionTransform;
|
|
@@ -6,18 +6,19 @@ Object.defineProperty(exports, "setTransform", {
|
|
|
6
6
|
}
|
|
7
7
|
});
|
|
8
8
|
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
9
|
+
const _constant = require("../constant");
|
|
9
10
|
const setTransform = (query)=>{
|
|
10
11
|
const { member } = query;
|
|
11
12
|
return {
|
|
12
13
|
class: _Expression.ExpressionClass.OPERATOR,
|
|
13
14
|
type: _Expression.ExpressionType.OPERATOR_IS_NOT_NULL,
|
|
14
|
-
alias:
|
|
15
|
+
alias: '',
|
|
15
16
|
children: [
|
|
16
17
|
{
|
|
17
|
-
class:
|
|
18
|
-
type:
|
|
19
|
-
alias:
|
|
20
|
-
column_names: member.split(
|
|
18
|
+
class: 'COLUMN_REF',
|
|
19
|
+
type: 'COLUMN_REF',
|
|
20
|
+
alias: '',
|
|
21
|
+
column_names: member.split(_constant.COLUMN_NAME_DELIMITER)
|
|
21
22
|
}
|
|
22
23
|
]
|
|
23
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/set/set.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/set/set.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const setTransform: CubeToParseExpressionTransform = (query) => {\n const { member } = query;\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_IS_NOT_NULL,\n alias: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: member.split(COLUMN_NAME_DELIMITER),\n },\n ],\n };\n};\n"],"names":["setTransform","query","member","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_IS_NOT_NULL","alias","children","column_names","split","COLUMN_NAME_DELIMITER"],"mappings":";+BAOaA;;;eAAAA;;;4BAJN;0BAC+B;AAG/B,MAAMA,eAA+C,CAACC;IAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,OAAO;QACLE,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACC,oBAAoB;QACzCC,OAAO;QACPC,UAAU;YACR;gBACEP,OAAO;gBACPG,MAAM;gBACNG,OAAO;gBACPE,cAAcT,OAAOU,KAAK,CAACC,+BAAqB;YAClD;SACD;IACH;AACF"}
|
package/src/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export * from './ast-builder/ast-builder';
|
|
2
2
|
export * from './ast-deserializer/ast-deserializer';
|
|
3
|
+
export * from './ast-serializer/ast-serializer';
|
|
4
|
+
export * from './ast-validator';
|
|
3
5
|
export { detectApplyContextParamsToBaseSQL } from './context-params/context-params-ast';
|
|
4
6
|
export * from './cube-measure-transformer/cube-measure-transformer';
|
|
5
7
|
export * from './cube-to-duckdb/cube-filter-to-duckdb';
|
|
6
|
-
export { applyFilterParamsToBaseSQL, detectAllFilterParamsFromSQL, getFilterParamsAST } from './filter-params/filter-params-ast';
|
|
8
|
+
export { applyFilterParamsToBaseSQL, detectAllFilterParamsFromSQL, getFilterParamsAST, } from './filter-params/filter-params-ast';
|
|
7
9
|
export { getFilterParamsSQL } from './get-filter-params-sql/get-filter-params-sql';
|
|
8
10
|
export { getFinalBaseSQL } from './get-final-base-sql/get-final-base-sql';
|
|
9
11
|
export { getWrappedBaseQueryWithProjections } from './get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections';
|
|
@@ -11,6 +13,7 @@ export * from './joins/joins';
|
|
|
11
13
|
export { FilterType } from './types/cube-types';
|
|
12
14
|
export * from './types/cube-types/index';
|
|
13
15
|
export * from './types/duckdb-serialization-types/index';
|
|
16
|
+
export * from './types/utils';
|
|
14
17
|
export { BASE_TABLE_NAME } from './utils/base-ast';
|
|
15
18
|
export * from './utils/cube-to-table-schema';
|
|
16
19
|
export * from './utils/get-possible-nodes';
|
package/src/index.js
CHANGED
|
@@ -43,6 +43,8 @@ _export(exports, {
|
|
|
43
43
|
const _export_star = require("@swc/helpers/_/_export_star");
|
|
44
44
|
_export_star._(require("./ast-builder/ast-builder"), exports);
|
|
45
45
|
_export_star._(require("./ast-deserializer/ast-deserializer"), exports);
|
|
46
|
+
_export_star._(require("./ast-serializer/ast-serializer"), exports);
|
|
47
|
+
_export_star._(require("./ast-validator"), exports);
|
|
46
48
|
const _contextparamsast = require("./context-params/context-params-ast");
|
|
47
49
|
_export_star._(require("./cube-measure-transformer/cube-measure-transformer"), exports);
|
|
48
50
|
_export_star._(require("./cube-to-duckdb/cube-filter-to-duckdb"), exports);
|
|
@@ -54,6 +56,7 @@ _export_star._(require("./joins/joins"), exports);
|
|
|
54
56
|
const _cubetypes = require("./types/cube-types");
|
|
55
57
|
_export_star._(require("./types/cube-types/index"), exports);
|
|
56
58
|
_export_star._(require("./types/duckdb-serialization-types/index"), exports);
|
|
59
|
+
_export_star._(require("./types/utils"), exports);
|
|
57
60
|
const _baseast = require("./utils/base-ast");
|
|
58
61
|
_export_star._(require("./utils/cube-to-table-schema"), exports);
|
|
59
62
|
_export_star._(require("./utils/get-possible-nodes"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/index.ts"],"sourcesContent":["export * from './ast-builder/ast-builder';\nexport * from './ast-deserializer/ast-deserializer';\nexport { detectApplyContextParamsToBaseSQL } from './context-params/context-params-ast';\nexport * from './cube-measure-transformer/cube-measure-transformer';\nexport * from './cube-to-duckdb/cube-filter-to-duckdb';\nexport {\n applyFilterParamsToBaseSQL,\n detectAllFilterParamsFromSQL,\n getFilterParamsAST
|
|
1
|
+
{"version":3,"sources":["../../../meerkat-core/src/index.ts"],"sourcesContent":["export * from './ast-builder/ast-builder';\nexport * from './ast-deserializer/ast-deserializer';\nexport * from './ast-serializer/ast-serializer';\nexport * from './ast-validator';\nexport { detectApplyContextParamsToBaseSQL } from './context-params/context-params-ast';\nexport * from './cube-measure-transformer/cube-measure-transformer';\nexport * from './cube-to-duckdb/cube-filter-to-duckdb';\nexport {\n applyFilterParamsToBaseSQL,\n detectAllFilterParamsFromSQL,\n getFilterParamsAST,\n} from './filter-params/filter-params-ast';\nexport { getFilterParamsSQL } from './get-filter-params-sql/get-filter-params-sql';\nexport { getFinalBaseSQL } from './get-final-base-sql/get-final-base-sql';\nexport { getWrappedBaseQueryWithProjections } from './get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections';\nexport * from './joins/joins';\nexport { FilterType } from './types/cube-types';\nexport * from './types/cube-types/index';\nexport * from './types/duckdb-serialization-types/index';\nexport * from './types/utils';\nexport { BASE_TABLE_NAME } from './utils/base-ast';\nexport * from './utils/cube-to-table-schema';\nexport * from './utils/get-possible-nodes';\nexport { meerkatPlaceholderReplacer } from './utils/meerkat-placeholder-replacer';\nexport { memberKeyToSafeKey } from './utils/member-key-to-safe-key';\n"],"names":["detectApplyContextParamsToBaseSQL","applyFilterParamsToBaseSQL","detectAllFilterParamsFromSQL","getFilterParamsAST","getFilterParamsSQL","getFinalBaseSQL","getWrappedBaseQueryWithProjections","FilterType","BASE_TABLE_NAME","meerkatPlaceholderReplacer","memberKeyToSafeKey"],"mappings":";;;;;;;;IAISA,iCAAiC;eAAjCA,mDAAiC;;IAIxCC,0BAA0B;eAA1BA,2CAA0B;;IAC1BC,4BAA4B;eAA5BA,6CAA4B;;IAC5BC,kBAAkB;eAAlBA,mCAAkB;;IAEXC,kBAAkB;eAAlBA,sCAAkB;;IAClBC,eAAe;eAAfA,gCAAe;;IACfC,kCAAkC;eAAlCA,sEAAkC;;IAElCC,UAAU;eAAVA,qBAAU;;IAIVC,eAAe;eAAfA,wBAAe;;IAGfC,0BAA0B;eAA1BA,sDAA0B;;IAC1BC,kBAAkB;eAAlBA,sCAAkB;;;;uBAxBb;uBACA;uBACA;uBACA;kCACoC;uBACpC;uBACA;iCAKP;oCAC4B;iCACH;oDACmB;uBACrC;2BACa;uBACb;uBACA;uBACA;yBACkB;uBAClB;uBACA;4CAC6B;oCACR"}
|
|
@@ -7,41 +7,51 @@ export interface BaseParsedExpression {
|
|
|
7
7
|
class: ExpressionClass;
|
|
8
8
|
type: ExpressionType;
|
|
9
9
|
alias: string;
|
|
10
|
+
query_location?: number;
|
|
10
11
|
}
|
|
11
12
|
export type ParsedExpression = BetweenExpression | CaseExpression | CastExpression | CollateExpression | ColumnRefExpression | ComparisonExpression | ConjunctionExpression | ConstantExpression | DefaultExpression | FunctionExpression | LambdaExpression | OperatorExpression | ParameterExpression | PositionalReferenceExpression | StarExpression | SubqueryExpression | WindowExpression;
|
|
12
13
|
export interface BetweenExpression extends BaseParsedExpression {
|
|
14
|
+
class: ExpressionClass.BETWEEN;
|
|
13
15
|
input: ParsedExpression;
|
|
14
16
|
lower: ParsedExpression;
|
|
15
17
|
upper: ParsedExpression;
|
|
16
18
|
}
|
|
17
19
|
export interface CaseExpression extends BaseParsedExpression {
|
|
20
|
+
class: ExpressionClass.CASE;
|
|
18
21
|
case_checks: CacheCheck[];
|
|
19
22
|
else_expr: BaseParsedExpression;
|
|
20
23
|
}
|
|
21
24
|
export interface CastExpression extends BaseParsedExpression {
|
|
25
|
+
class: ExpressionClass.CAST;
|
|
22
26
|
child: ParsedExpression;
|
|
23
27
|
cast_type: LogicalType;
|
|
24
28
|
try_cast: boolean;
|
|
25
29
|
}
|
|
26
30
|
export interface CollateExpression extends BaseParsedExpression {
|
|
31
|
+
class: ExpressionClass.COLLATE;
|
|
27
32
|
child: ParsedExpression;
|
|
28
33
|
collation: string;
|
|
29
34
|
}
|
|
30
35
|
export interface ColumnRefExpression extends BaseParsedExpression {
|
|
36
|
+
class: ExpressionClass.COLUMN_REF;
|
|
31
37
|
column_names: string[];
|
|
32
38
|
}
|
|
33
39
|
export interface ComparisonExpression extends BaseParsedExpression {
|
|
40
|
+
class: ExpressionClass.COMPARISON;
|
|
34
41
|
left: ParsedExpression;
|
|
35
42
|
right: ParsedExpression;
|
|
36
43
|
}
|
|
37
44
|
export interface ConjunctionExpression extends BaseParsedExpression {
|
|
45
|
+
class: ExpressionClass.CONJUNCTION;
|
|
38
46
|
children: ParsedExpression[];
|
|
39
47
|
}
|
|
40
48
|
export interface ConstantExpression extends BaseParsedExpression {
|
|
49
|
+
class: ExpressionClass.CONSTANT;
|
|
41
50
|
value: Value;
|
|
42
51
|
}
|
|
43
52
|
export type DefaultExpression = BaseParsedExpression;
|
|
44
53
|
export interface FunctionExpression extends BaseParsedExpression {
|
|
54
|
+
class: ExpressionClass.FUNCTION;
|
|
45
55
|
function_name: string;
|
|
46
56
|
schema: string;
|
|
47
57
|
children: ParsedExpression[];
|
|
@@ -53,19 +63,24 @@ export interface FunctionExpression extends BaseParsedExpression {
|
|
|
53
63
|
catalog: string;
|
|
54
64
|
}
|
|
55
65
|
export interface LambdaExpression extends BaseParsedExpression {
|
|
66
|
+
class: ExpressionClass.LAMBDA;
|
|
56
67
|
lhs: ParsedExpression;
|
|
57
68
|
expr: ParsedExpression | null;
|
|
58
69
|
}
|
|
59
70
|
export interface OperatorExpression extends BaseParsedExpression {
|
|
71
|
+
class: ExpressionClass.OPERATOR;
|
|
60
72
|
children: ParsedExpression[];
|
|
61
73
|
}
|
|
62
74
|
export interface ParameterExpression extends BaseParsedExpression {
|
|
75
|
+
class: ExpressionClass.PARAMETER;
|
|
63
76
|
identifier: string;
|
|
64
77
|
}
|
|
65
78
|
export interface PositionalReferenceExpression extends BaseParsedExpression {
|
|
79
|
+
class: ExpressionClass.POSITIONAL_REFERENCE;
|
|
66
80
|
index: number;
|
|
67
81
|
}
|
|
68
82
|
export interface StarExpression extends BaseParsedExpression {
|
|
83
|
+
class: ExpressionClass.STAR;
|
|
69
84
|
relation_name: string;
|
|
70
85
|
exclude_list: Set<string> | Array<string>;
|
|
71
86
|
replace_list: Set<ParsedExpression> | Array<ParsedExpression>;
|
|
@@ -80,6 +95,7 @@ export declare enum SubqueryType {
|
|
|
80
95
|
ANY = "ANY"
|
|
81
96
|
}
|
|
82
97
|
export interface SubqueryExpression extends BaseParsedExpression {
|
|
98
|
+
class: ExpressionClass.SUBQUERY;
|
|
83
99
|
subquery_type: SubqueryType;
|
|
84
100
|
subquery: SelectStatement;
|
|
85
101
|
child?: ParsedExpression;
|
|
@@ -97,6 +113,7 @@ export declare enum WindowBoundary {
|
|
|
97
113
|
EXPR_FOLLOWING_RANGE = "EXPR_FOLLOWING_RANGE"
|
|
98
114
|
}
|
|
99
115
|
export interface WindowExpression extends BaseParsedExpression {
|
|
116
|
+
class: ExpressionClass.WINDOW;
|
|
100
117
|
function_name: string;
|
|
101
118
|
schema: string;
|
|
102
119
|
catalog: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/ParsedExpression.ts"],"sourcesContent":["import { ExpressionClass, ExpressionType } from './Expression';\nimport { CacheCheck, Value } from './Misc';\nimport { LogicalType, OrderByNode } from './Nodes';\nimport { OrderModifier } from './ResultModifier';\nimport { SelectStatement } from './Statement';\n\nexport interface BaseParsedExpression {\n class: ExpressionClass;\n type: ExpressionType;\n alias: string;\n}\n\nexport type ParsedExpression =\n | BetweenExpression\n | CaseExpression\n | CastExpression\n | CollateExpression\n | ColumnRefExpression\n | ComparisonExpression\n | ConjunctionExpression\n | ConstantExpression\n | DefaultExpression\n | FunctionExpression\n | LambdaExpression\n | OperatorExpression\n | ParameterExpression\n | PositionalReferenceExpression\n | StarExpression\n | SubqueryExpression\n | WindowExpression;\n\nexport interface BetweenExpression extends BaseParsedExpression {\n input: ParsedExpression;\n lower: ParsedExpression;\n upper: ParsedExpression;\n}\n\nexport interface CaseExpression extends BaseParsedExpression {\n case_checks: CacheCheck[];\n else_expr: BaseParsedExpression;\n}\n\nexport interface CastExpression extends BaseParsedExpression {\n child: ParsedExpression;\n cast_type: LogicalType;\n try_cast: boolean;\n}\n\nexport interface CollateExpression extends BaseParsedExpression {\n child: ParsedExpression;\n collation: string;\n}\n\nexport interface ColumnRefExpression extends BaseParsedExpression {\n column_names: string[];\n}\n\nexport interface ComparisonExpression extends BaseParsedExpression {\n left: ParsedExpression;\n right: ParsedExpression;\n}\n\nexport interface ConjunctionExpression extends BaseParsedExpression {\n children: ParsedExpression[];\n}\n\nexport interface ConstantExpression extends BaseParsedExpression {\n value: Value;\n}\n\nexport type DefaultExpression = BaseParsedExpression;\n\nexport interface FunctionExpression extends BaseParsedExpression {\n function_name: string;\n schema: string;\n children: ParsedExpression[];\n filter: ParsedExpression | null;\n order_bys: OrderModifier;\n distinct: boolean;\n is_operator: boolean;\n export_state: boolean;\n catalog: string;\n}\n\nexport interface LambdaExpression extends BaseParsedExpression {\n lhs: ParsedExpression;\n expr: ParsedExpression | null;\n}\n\nexport interface OperatorExpression extends BaseParsedExpression {\n children: ParsedExpression[];\n}\n\nexport interface ParameterExpression extends BaseParsedExpression {\n identifier: string;\n}\n\nexport interface PositionalReferenceExpression extends BaseParsedExpression {\n index: number;\n}\n\nexport interface StarExpression extends BaseParsedExpression {\n relation_name: string;\n exclude_list: Set<string> | Array<string>;\n replace_list: Set<ParsedExpression> | Array<ParsedExpression>;\n columns: boolean;\n expr?: ParsedExpression;\n}\n\nexport enum SubqueryType {\n INVALID = 'INVALID',\n SCALAR = 'SCALAR',\n EXISTS = 'EXISTS',\n NOT_EXISTS = 'NOT_EXISTS',\n ANY = 'ANY',\n}\n\nexport interface SubqueryExpression extends BaseParsedExpression {\n subquery_type: SubqueryType;\n subquery: SelectStatement;\n child?: ParsedExpression;\n comparison_type: ExpressionType;\n}\n\nexport enum WindowBoundary {\n INVALID = 'INVALID',\n UNBOUNDED_PRECEDING = 'UNBOUNDED_PRECEDING',\n UNBOUNDED_FOLLOWING = 'UNBOUNDED_FOLLOWING',\n CURRENT_ROW_RANGE = 'CURRENT_ROW_RANGE',\n CURRENT_ROW_ROWS = 'CURRENT_ROW_ROWS',\n EXPR_PRECEDING_ROWS = 'EXPR_PRECEDING_ROWS',\n EXPR_FOLLOWING_ROWS = 'EXPR_FOLLOWING_ROWS',\n EXPR_PRECEDING_RANGE = 'EXPR_PRECEDING_RANGE',\n EXPR_FOLLOWING_RANGE = 'EXPR_FOLLOWING_RANGE',\n}\n\nexport interface WindowExpression extends BaseParsedExpression {\n function_name: string;\n schema: string;\n catalog: string;\n children: ParsedExpression[];\n partitions: ParsedExpression[];\n orders: OrderByNode[];\n start: WindowBoundary;\n end: WindowBoundary;\n start_expr?: ParsedExpression;\n end_expr?: ParsedExpression;\n offset_expr?: ParsedExpression;\n default_expr?: ParsedExpression;\n ignore_nulls: boolean;\n filter_expr?: ParsedExpression;\n}\n"],"names":["SubqueryType","INVALID","SCALAR","EXISTS","NOT_EXISTS","ANY","WindowBoundary","UNBOUNDED_PRECEDING","UNBOUNDED_FOLLOWING","CURRENT_ROW_RANGE","CURRENT_ROW_ROWS","EXPR_PRECEDING_ROWS","EXPR_FOLLOWING_ROWS","EXPR_PRECEDING_RANGE","EXPR_FOLLOWING_RANGE"],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/ParsedExpression.ts"],"sourcesContent":["import { ExpressionClass, ExpressionType } from './Expression';\nimport { CacheCheck, Value } from './Misc';\nimport { LogicalType, OrderByNode } from './Nodes';\nimport { OrderModifier } from './ResultModifier';\nimport { SelectStatement } from './Statement';\n\nexport interface BaseParsedExpression {\n class: ExpressionClass;\n type: ExpressionType;\n alias: string;\n query_location?: number;\n}\n\nexport type ParsedExpression =\n | BetweenExpression\n | CaseExpression\n | CastExpression\n | CollateExpression\n | ColumnRefExpression\n | ComparisonExpression\n | ConjunctionExpression\n | ConstantExpression\n | DefaultExpression\n | FunctionExpression\n | LambdaExpression\n | OperatorExpression\n | ParameterExpression\n | PositionalReferenceExpression\n | StarExpression\n | SubqueryExpression\n | WindowExpression;\n\nexport interface BetweenExpression extends BaseParsedExpression {\n class: ExpressionClass.BETWEEN;\n input: ParsedExpression;\n lower: ParsedExpression;\n upper: ParsedExpression;\n}\n\nexport interface CaseExpression extends BaseParsedExpression {\n class: ExpressionClass.CASE;\n case_checks: CacheCheck[];\n else_expr: BaseParsedExpression;\n}\n\nexport interface CastExpression extends BaseParsedExpression {\n class: ExpressionClass.CAST;\n child: ParsedExpression;\n cast_type: LogicalType;\n try_cast: boolean;\n}\n\nexport interface CollateExpression extends BaseParsedExpression {\n class: ExpressionClass.COLLATE;\n child: ParsedExpression;\n collation: string;\n}\n\nexport interface ColumnRefExpression extends BaseParsedExpression {\n class: ExpressionClass.COLUMN_REF;\n column_names: string[];\n}\n\nexport interface ComparisonExpression extends BaseParsedExpression {\n class: ExpressionClass.COMPARISON;\n left: ParsedExpression;\n right: ParsedExpression;\n}\n\nexport interface ConjunctionExpression extends BaseParsedExpression {\n class: ExpressionClass.CONJUNCTION;\n children: ParsedExpression[];\n}\n\nexport interface ConstantExpression extends BaseParsedExpression {\n class: ExpressionClass.CONSTANT;\n value: Value;\n}\n\nexport type DefaultExpression = BaseParsedExpression;\n\nexport interface FunctionExpression extends BaseParsedExpression {\n class: ExpressionClass.FUNCTION;\n function_name: string;\n schema: string;\n children: ParsedExpression[];\n filter: ParsedExpression | null;\n order_bys: OrderModifier;\n distinct: boolean;\n is_operator: boolean;\n export_state: boolean;\n catalog: string;\n}\n\nexport interface LambdaExpression extends BaseParsedExpression {\n class: ExpressionClass.LAMBDA;\n lhs: ParsedExpression;\n expr: ParsedExpression | null;\n}\n\nexport interface OperatorExpression extends BaseParsedExpression {\n class: ExpressionClass.OPERATOR;\n children: ParsedExpression[];\n}\n\nexport interface ParameterExpression extends BaseParsedExpression {\n class: ExpressionClass.PARAMETER;\n identifier: string;\n}\n\nexport interface PositionalReferenceExpression extends BaseParsedExpression {\n class: ExpressionClass.POSITIONAL_REFERENCE;\n index: number;\n}\n\nexport interface StarExpression extends BaseParsedExpression {\n class: ExpressionClass.STAR;\n relation_name: string;\n exclude_list: Set<string> | Array<string>;\n replace_list: Set<ParsedExpression> | Array<ParsedExpression>;\n columns: boolean;\n expr?: ParsedExpression;\n}\n\nexport enum SubqueryType {\n INVALID = 'INVALID',\n SCALAR = 'SCALAR',\n EXISTS = 'EXISTS',\n NOT_EXISTS = 'NOT_EXISTS',\n ANY = 'ANY',\n}\n\nexport interface SubqueryExpression extends BaseParsedExpression {\n class: ExpressionClass.SUBQUERY;\n subquery_type: SubqueryType;\n subquery: SelectStatement;\n child?: ParsedExpression;\n comparison_type: ExpressionType;\n}\n\nexport enum WindowBoundary {\n INVALID = 'INVALID',\n UNBOUNDED_PRECEDING = 'UNBOUNDED_PRECEDING',\n UNBOUNDED_FOLLOWING = 'UNBOUNDED_FOLLOWING',\n CURRENT_ROW_RANGE = 'CURRENT_ROW_RANGE',\n CURRENT_ROW_ROWS = 'CURRENT_ROW_ROWS',\n EXPR_PRECEDING_ROWS = 'EXPR_PRECEDING_ROWS',\n EXPR_FOLLOWING_ROWS = 'EXPR_FOLLOWING_ROWS',\n EXPR_PRECEDING_RANGE = 'EXPR_PRECEDING_RANGE',\n EXPR_FOLLOWING_RANGE = 'EXPR_FOLLOWING_RANGE',\n}\n\nexport interface WindowExpression extends BaseParsedExpression {\n class: ExpressionClass.WINDOW;\n function_name: string;\n schema: string;\n catalog: string;\n children: ParsedExpression[];\n partitions: ParsedExpression[];\n orders: OrderByNode[];\n start: WindowBoundary;\n end: WindowBoundary;\n start_expr?: ParsedExpression;\n end_expr?: ParsedExpression;\n offset_expr?: ParsedExpression;\n default_expr?: ParsedExpression;\n ignore_nulls: boolean;\n filter_expr?: ParsedExpression;\n}\n"],"names":["SubqueryType","INVALID","SCALAR","EXISTS","NOT_EXISTS","ANY","WindowBoundary","UNBOUNDED_PRECEDING","UNBOUNDED_FOLLOWING","CURRENT_ROW_RANGE","CURRENT_ROW_ROWS","EXPR_PRECEDING_ROWS","EXPR_FOLLOWING_ROWS","EXPR_PRECEDING_RANGE","EXPR_FOLLOWING_RANGE"],"mappings":";;;;;;;;;;;;;;;IA4HO;UAAKA,YAAY;IAAZA,aACVC,aAAAA;IADUD,aAEVE,YAAAA;IAFUF,aAGVG,YAAAA;IAHUH,aAIVI,gBAAAA;IAJUJ,aAKVK,SAAAA;GALUL,iBAAAA;IAgBL;UAAKM,cAAc;IAAdA,eACVL,aAAAA;IADUK,eAEVC,yBAAAA;IAFUD,eAGVE,yBAAAA;IAHUF,eAIVG,uBAAAA;IAJUH,eAKVI,sBAAAA;IALUJ,eAMVK,yBAAAA;IANUL,eAOVM,yBAAAA;IAPUN,eAQVO,0BAAAA;IARUP,eASVQ,0BAAAA;GATUR,mBAAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BetweenExpression, CaseExpression, CastExpression, CollateExpression, ColumnRefExpression, ComparisonExpression, ConjunctionExpression, ConstantExpression, FunctionExpression, LambdaExpression, OperatorExpression, ParameterExpression, PositionalReferenceExpression, SubqueryExpression, WindowExpression } from './duckdb-serialization-types/serialization/ParsedExpression';
|
|
2
|
+
import { QueryNode, SelectNode } from './duckdb-serialization-types';
|
|
3
|
+
import { ParsedExpression } from './duckdb-serialization-types/serialization/ParsedExpression';
|
|
4
|
+
export declare const isSelectNode: (node: QueryNode) => node is SelectNode;
|
|
5
|
+
export declare const isBetweenExpression: (node: ParsedExpression) => node is BetweenExpression;
|
|
6
|
+
export declare const isCaseExpression: (node: ParsedExpression) => node is CaseExpression;
|
|
7
|
+
export declare const isCastExpression: (node: ParsedExpression) => node is CastExpression;
|
|
8
|
+
export declare const isComparisonExpression: (node: ParsedExpression) => node is ComparisonExpression;
|
|
9
|
+
export declare const isConjunctionExpression: (node: ParsedExpression) => node is ConjunctionExpression;
|
|
10
|
+
export declare const isConstantExpression: (node: ParsedExpression) => node is ConstantExpression;
|
|
11
|
+
export declare const isColumnRefExpression: (node: ParsedExpression) => node is ColumnRefExpression;
|
|
12
|
+
export declare const isCollateExpression: (node: ParsedExpression) => node is CollateExpression;
|
|
13
|
+
export declare const isFunctionExpression: (node: ParsedExpression) => node is FunctionExpression;
|
|
14
|
+
export declare const isLambdaExpression: (node: ParsedExpression) => node is LambdaExpression;
|
|
15
|
+
export declare const isOperatorExpression: (node: ParsedExpression) => node is OperatorExpression;
|
|
16
|
+
export declare const isParameterExpression: (node: ParsedExpression) => node is ParameterExpression;
|
|
17
|
+
export declare const isPositionalReferenceExpression: (node: ParsedExpression) => node is PositionalReferenceExpression;
|
|
18
|
+
export declare const isSubqueryExpression: (node: ParsedExpression) => node is SubqueryExpression;
|
|
19
|
+
export declare const isWindowExpression: (node: ParsedExpression) => node is WindowExpression;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function _export(target, all) {
|
|
3
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: all[name]
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
_export(exports, {
|
|
9
|
+
isSelectNode: function() {
|
|
10
|
+
return isSelectNode;
|
|
11
|
+
},
|
|
12
|
+
isBetweenExpression: function() {
|
|
13
|
+
return isBetweenExpression;
|
|
14
|
+
},
|
|
15
|
+
isCaseExpression: function() {
|
|
16
|
+
return isCaseExpression;
|
|
17
|
+
},
|
|
18
|
+
isCastExpression: function() {
|
|
19
|
+
return isCastExpression;
|
|
20
|
+
},
|
|
21
|
+
isComparisonExpression: function() {
|
|
22
|
+
return isComparisonExpression;
|
|
23
|
+
},
|
|
24
|
+
isConjunctionExpression: function() {
|
|
25
|
+
return isConjunctionExpression;
|
|
26
|
+
},
|
|
27
|
+
isConstantExpression: function() {
|
|
28
|
+
return isConstantExpression;
|
|
29
|
+
},
|
|
30
|
+
isColumnRefExpression: function() {
|
|
31
|
+
return isColumnRefExpression;
|
|
32
|
+
},
|
|
33
|
+
isCollateExpression: function() {
|
|
34
|
+
return isCollateExpression;
|
|
35
|
+
},
|
|
36
|
+
isFunctionExpression: function() {
|
|
37
|
+
return isFunctionExpression;
|
|
38
|
+
},
|
|
39
|
+
isLambdaExpression: function() {
|
|
40
|
+
return isLambdaExpression;
|
|
41
|
+
},
|
|
42
|
+
isOperatorExpression: function() {
|
|
43
|
+
return isOperatorExpression;
|
|
44
|
+
},
|
|
45
|
+
isParameterExpression: function() {
|
|
46
|
+
return isParameterExpression;
|
|
47
|
+
},
|
|
48
|
+
isPositionalReferenceExpression: function() {
|
|
49
|
+
return isPositionalReferenceExpression;
|
|
50
|
+
},
|
|
51
|
+
isSubqueryExpression: function() {
|
|
52
|
+
return isSubqueryExpression;
|
|
53
|
+
},
|
|
54
|
+
isWindowExpression: function() {
|
|
55
|
+
return isWindowExpression;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const _duckdbserializationtypes = require("./duckdb-serialization-types");
|
|
59
|
+
const isSelectNode = (node)=>{
|
|
60
|
+
return node.type === _duckdbserializationtypes.QueryNodeType.SELECT_NODE;
|
|
61
|
+
};
|
|
62
|
+
const isBetweenExpression = (node)=>{
|
|
63
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.BETWEEN;
|
|
64
|
+
};
|
|
65
|
+
const isCaseExpression = (node)=>{
|
|
66
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.CASE;
|
|
67
|
+
};
|
|
68
|
+
const isCastExpression = (node)=>{
|
|
69
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.CAST;
|
|
70
|
+
};
|
|
71
|
+
const isComparisonExpression = (node)=>{
|
|
72
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.COMPARISON;
|
|
73
|
+
};
|
|
74
|
+
const isConjunctionExpression = (node)=>{
|
|
75
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.CONJUNCTION;
|
|
76
|
+
};
|
|
77
|
+
const isConstantExpression = (node)=>{
|
|
78
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.CONSTANT;
|
|
79
|
+
};
|
|
80
|
+
const isColumnRefExpression = (node)=>{
|
|
81
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.COLUMN_REF;
|
|
82
|
+
};
|
|
83
|
+
const isCollateExpression = (node)=>{
|
|
84
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.COLLATE;
|
|
85
|
+
};
|
|
86
|
+
const isFunctionExpression = (node)=>{
|
|
87
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.FUNCTION;
|
|
88
|
+
};
|
|
89
|
+
const isLambdaExpression = (node)=>{
|
|
90
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.LAMBDA;
|
|
91
|
+
};
|
|
92
|
+
const isOperatorExpression = (node)=>{
|
|
93
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.OPERATOR;
|
|
94
|
+
};
|
|
95
|
+
const isParameterExpression = (node)=>{
|
|
96
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.PARAMETER;
|
|
97
|
+
};
|
|
98
|
+
const isPositionalReferenceExpression = (node)=>{
|
|
99
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.POSITIONAL_REFERENCE;
|
|
100
|
+
};
|
|
101
|
+
const isSubqueryExpression = (node)=>{
|
|
102
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.SUBQUERY;
|
|
103
|
+
};
|
|
104
|
+
const isWindowExpression = (node)=>{
|
|
105
|
+
return node.class === _duckdbserializationtypes.ExpressionClass.WINDOW;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/types/utils.ts"],"sourcesContent":["import {\n BetweenExpression,\n CaseExpression,\n CastExpression,\n CollateExpression,\n ColumnRefExpression,\n ComparisonExpression,\n ConjunctionExpression,\n ConstantExpression,\n FunctionExpression,\n LambdaExpression,\n OperatorExpression,\n ParameterExpression,\n PositionalReferenceExpression,\n SubqueryExpression,\n WindowExpression,\n} from './duckdb-serialization-types/serialization/ParsedExpression';\n\nimport {\n ExpressionClass,\n QueryNode,\n QueryNodeType,\n SelectNode,\n} from './duckdb-serialization-types';\nimport { ParsedExpression } from './duckdb-serialization-types/serialization/ParsedExpression';\n\nexport const isSelectNode = (node: QueryNode): node is SelectNode => {\n return node.type === QueryNodeType.SELECT_NODE;\n};\n\nexport const isBetweenExpression = (\n node: ParsedExpression\n): node is BetweenExpression => {\n return node.class === ExpressionClass.BETWEEN;\n};\n\nexport const isCaseExpression = (\n node: ParsedExpression\n): node is CaseExpression => {\n return node.class === ExpressionClass.CASE;\n};\n\nexport const isCastExpression = (\n node: ParsedExpression\n): node is CastExpression => {\n return node.class === ExpressionClass.CAST;\n};\n\nexport const isComparisonExpression = (\n node: ParsedExpression\n): node is ComparisonExpression => {\n return node.class === ExpressionClass.COMPARISON;\n};\n\nexport const isConjunctionExpression = (\n node: ParsedExpression\n): node is ConjunctionExpression => {\n return node.class === ExpressionClass.CONJUNCTION;\n};\n\nexport const isConstantExpression = (\n node: ParsedExpression\n): node is ConstantExpression => {\n return node.class === ExpressionClass.CONSTANT;\n};\n\nexport const isColumnRefExpression = (\n node: ParsedExpression\n): node is ColumnRefExpression => {\n return node.class === ExpressionClass.COLUMN_REF;\n};\n\nexport const isCollateExpression = (\n node: ParsedExpression\n): node is CollateExpression => {\n return node.class === ExpressionClass.COLLATE;\n};\n\nexport const isFunctionExpression = (\n node: ParsedExpression\n): node is FunctionExpression => {\n return node.class === ExpressionClass.FUNCTION;\n};\n\nexport const isLambdaExpression = (\n node: ParsedExpression\n): node is LambdaExpression => {\n return node.class === ExpressionClass.LAMBDA;\n};\n\nexport const isOperatorExpression = (\n node: ParsedExpression\n): node is OperatorExpression => {\n return node.class === ExpressionClass.OPERATOR;\n};\n\nexport const isParameterExpression = (\n node: ParsedExpression\n): node is ParameterExpression => {\n return node.class === ExpressionClass.PARAMETER;\n};\n\nexport const isPositionalReferenceExpression = (\n node: ParsedExpression\n): node is PositionalReferenceExpression => {\n return node.class === ExpressionClass.POSITIONAL_REFERENCE;\n};\n\nexport const isSubqueryExpression = (\n node: ParsedExpression\n): node is SubqueryExpression => {\n return node.class === ExpressionClass.SUBQUERY;\n};\n\nexport const isWindowExpression = (\n node: ParsedExpression\n): node is WindowExpression => {\n return node.class === ExpressionClass.WINDOW;\n};\n"],"names":["isSelectNode","isBetweenExpression","isCaseExpression","isCastExpression","isComparisonExpression","isConjunctionExpression","isConstantExpression","isColumnRefExpression","isCollateExpression","isFunctionExpression","isLambdaExpression","isOperatorExpression","isParameterExpression","isPositionalReferenceExpression","isSubqueryExpression","isWindowExpression","node","type","QueryNodeType","SELECT_NODE","class","ExpressionClass","BETWEEN","CASE","CAST","COMPARISON","CONJUNCTION","CONSTANT","COLUMN_REF","COLLATE","FUNCTION","LAMBDA","OPERATOR","PARAMETER","POSITIONAL_REFERENCE","SUBQUERY","WINDOW"],"mappings":";;;;;;;;IA0BaA,YAAY;eAAZA;;IAIAC,mBAAmB;eAAnBA;;IAMAC,gBAAgB;eAAhBA;;IAMAC,gBAAgB;eAAhBA;;IAMAC,sBAAsB;eAAtBA;;IAMAC,uBAAuB;eAAvBA;;IAMAC,oBAAoB;eAApBA;;IAMAC,qBAAqB;eAArBA;;IAMAC,mBAAmB;eAAnBA;;IAMAC,oBAAoB;eAApBA;;IAMAC,kBAAkB;eAAlBA;;IAMAC,oBAAoB;eAApBA;;IAMAC,qBAAqB;eAArBA;;IAMAC,+BAA+B;eAA/BA;;IAMAC,oBAAoB;eAApBA;;IAMAC,kBAAkB;eAAlBA;;;0CA3FN;AAGA,MAAMf,eAAe,CAACgB;IAC3B,OAAOA,KAAKC,IAAI,KAAKC,uCAAa,CAACC,WAAW;AAChD;AAEO,MAAMlB,sBAAsB,CACjCe;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACC,OAAO;AAC/C;AAEO,MAAMpB,mBAAmB,CAC9Bc;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACE,IAAI;AAC5C;AAEO,MAAMpB,mBAAmB,CAC9Ba;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACG,IAAI;AAC5C;AAEO,MAAMpB,yBAAyB,CACpCY;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACI,UAAU;AAClD;AAEO,MAAMpB,0BAA0B,CACrCW;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACK,WAAW;AACnD;AAEO,MAAMpB,uBAAuB,CAClCU;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACM,QAAQ;AAChD;AAEO,MAAMpB,wBAAwB,CACnCS;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACO,UAAU;AAClD;AAEO,MAAMpB,sBAAsB,CACjCQ;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACQ,OAAO;AAC/C;AAEO,MAAMpB,uBAAuB,CAClCO;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACS,QAAQ;AAChD;AAEO,MAAMpB,qBAAqB,CAChCM;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACU,MAAM;AAC9C;AAEO,MAAMpB,uBAAuB,CAClCK;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACW,QAAQ;AAChD;AAEO,MAAMpB,wBAAwB,CACnCI;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACY,SAAS;AACjD;AAEO,MAAMpB,kCAAkC,CAC7CG;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACa,oBAAoB;AAC5D;AAEO,MAAMpB,uBAAuB,CAClCE;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACc,QAAQ;AAChD;AAEO,MAAMpB,qBAAqB,CAChCC;IAEA,OAAOA,KAAKI,KAAK,KAAKC,yCAAe,CAACe,MAAM;AAC9C"}
|
package/src/utils/base-ast.js
CHANGED
|
@@ -13,8 +13,8 @@ _export(exports, {
|
|
|
13
13
|
return getBaseAST;
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
|
-
const _QueryNode = require("../types/duckdb-serialization-types/serialization/QueryNode");
|
|
17
16
|
const _Expression = require("../types/duckdb-serialization-types/serialization/Expression");
|
|
17
|
+
const _QueryNode = require("../types/duckdb-serialization-types/serialization/QueryNode");
|
|
18
18
|
const _TableRef = require("../types/duckdb-serialization-types/serialization/TableRef");
|
|
19
19
|
const BASE_TABLE_NAME = 'REPLACE_BASE_TABLE';
|
|
20
20
|
const getBaseAST = ()=>{
|
|
@@ -35,8 +35,7 @@ const getBaseAST = ()=>{
|
|
|
35
35
|
relation_name: '',
|
|
36
36
|
exclude_list: [],
|
|
37
37
|
replace_list: [],
|
|
38
|
-
columns: false
|
|
39
|
-
expr: null
|
|
38
|
+
columns: false
|
|
40
39
|
}
|
|
41
40
|
],
|
|
42
41
|
from_table: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/utils/base-ast.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/utils/base-ast.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n} from '../types/duckdb-serialization-types/serialization/Expression';\nimport {\n AggregateHandling,\n QueryNodeType,\n} from '../types/duckdb-serialization-types/serialization/QueryNode';\nimport { SelectStatement } from '../types/duckdb-serialization-types/serialization/Statement';\nimport { TableReferenceType } from '../types/duckdb-serialization-types/serialization/TableRef';\n\nexport const BASE_TABLE_NAME = 'REPLACE_BASE_TABLE';\n\nexport const getBaseAST = (): SelectStatement => {\n return {\n node: {\n type: QueryNodeType.SELECT_NODE,\n modifiers: [],\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n cte_map: { map: [] },\n select_list: [\n {\n class: ExpressionClass.STAR,\n type: ExpressionType.STAR,\n alias: '',\n relation_name: '',\n exclude_list: [],\n replace_list: [],\n columns: false,\n },\n ],\n from_table: {\n type: TableReferenceType.BASE_TABLE,\n alias: '',\n sample: null,\n schema_name: '',\n table_name: BASE_TABLE_NAME,\n column_name_alias: [],\n catalog_name: '',\n },\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: AggregateHandling.STANDARD_HANDLING,\n having: null,\n sample: null,\n qualify: null,\n },\n };\n};\n"],"names":["BASE_TABLE_NAME","getBaseAST","node","type","QueryNodeType","SELECT_NODE","modifiers","cte_map","map","select_list","class","ExpressionClass","STAR","ExpressionType","alias","relation_name","exclude_list","replace_list","columns","from_table","TableReferenceType","BASE_TABLE","sample","schema_name","table_name","column_name_alias","catalog_name","where_clause","group_expressions","group_sets","aggregate_handling","AggregateHandling","STANDARD_HANDLING","having","qualify"],"mappings":";;;;;;;;IAWaA,eAAe;eAAfA;;IAEAC,UAAU;eAAVA;;;4BAVN;2BAIA;0BAE4B;AAE5B,MAAMD,kBAAkB;AAExB,MAAMC,aAAa;IACxB,OAAO;QACLC,MAAM;YACJC,MAAMC,wBAAa,CAACC,WAAW;YAC/BC,WAAW,EAAE;YACb,6DAA6D;YAC7D,YAAY;YACZC,SAAS;gBAAEC,KAAK,EAAE;YAAC;YACnBC,aAAa;gBACX;oBACEC,OAAOC,2BAAe,CAACC,IAAI;oBAC3BT,MAAMU,0BAAc,CAACD,IAAI;oBACzBE,OAAO;oBACPC,eAAe;oBACfC,cAAc,EAAE;oBAChBC,cAAc,EAAE;oBAChBC,SAAS;gBACX;aACD;YACDC,YAAY;gBACVhB,MAAMiB,4BAAkB,CAACC,UAAU;gBACnCP,OAAO;gBACPQ,QAAQ;gBACRC,aAAa;gBACbC,YAAYxB;gBACZyB,mBAAmB,EAAE;gBACrBC,cAAc;YAChB;YACA,6DAA6D;YAC7D,YAAY;YACZC,cAAc;YACdC,mBAAmB,EAAE;YACrBC,YAAY,EAAE;YACdC,oBAAoBC,4BAAiB,CAACC,iBAAiB;YACvDC,QAAQ;YACRX,QAAQ;YACRY,SAAS;QACX;IACF;AACF"}
|