@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
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "getColumnNamesFromAst", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return getColumnNamesFromAst;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _constant = require("../cube-filter-transformer/constant");
|
|
9
|
+
const _utils = require("../types/utils");
|
|
10
|
+
const getColumnNamesFromAst = (node, columnSet = new Set())=>{
|
|
11
|
+
if (!node) return Array.from(columnSet);
|
|
12
|
+
if ((0, _utils.isBetweenExpression)(node)) {
|
|
13
|
+
getColumnNamesFromAst(node.input, columnSet);
|
|
14
|
+
getColumnNamesFromAst(node.lower, columnSet);
|
|
15
|
+
getColumnNamesFromAst(node.upper, columnSet);
|
|
16
|
+
}
|
|
17
|
+
if ((0, _utils.isColumnRefExpression)(node)) {
|
|
18
|
+
columnSet.add(node.column_names.join(_constant.COLUMN_NAME_DELIMITER));
|
|
19
|
+
}
|
|
20
|
+
if ((0, _utils.isCastExpression)(node) || (0, _utils.isCollateExpression)(node)) {
|
|
21
|
+
getColumnNamesFromAst(node.child, columnSet);
|
|
22
|
+
}
|
|
23
|
+
if ((0, _utils.isComparisonExpression)(node)) {
|
|
24
|
+
getColumnNamesFromAst(node.left, columnSet);
|
|
25
|
+
getColumnNamesFromAst(node.right, columnSet);
|
|
26
|
+
}
|
|
27
|
+
if ((0, _utils.isFunctionExpression)(node) || (0, _utils.isWindowExpression)(node) || (0, _utils.isOperatorExpression)(node) || (0, _utils.isConjunctionExpression)(node)) {
|
|
28
|
+
node.children.forEach((child)=>getColumnNamesFromAst(child, columnSet));
|
|
29
|
+
}
|
|
30
|
+
if ((0, _utils.isCaseExpression)(node)) {
|
|
31
|
+
node.case_checks.forEach((check)=>{
|
|
32
|
+
getColumnNamesFromAst(check.then_expr, columnSet);
|
|
33
|
+
getColumnNamesFromAst(check.when_expr, columnSet);
|
|
34
|
+
});
|
|
35
|
+
getColumnNamesFromAst(node.else_expr, columnSet);
|
|
36
|
+
}
|
|
37
|
+
if ((0, _utils.isSubqueryExpression)(node) && (0, _utils.isSelectNode)(node.subquery.node)) {
|
|
38
|
+
node.subquery.node.select_list.forEach((node)=>{
|
|
39
|
+
getColumnNamesFromAst(node, columnSet);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return Array.from(columnSet);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=get-column-names-from-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/utils/get-column-names-from-ast.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../cube-filter-transformer/constant';\nimport { ParsedExpression } from '../types/duckdb-serialization-types';\nimport {\n isBetweenExpression,\n isCaseExpression,\n isCastExpression,\n isCollateExpression,\n isColumnRefExpression,\n isComparisonExpression,\n isConjunctionExpression,\n isFunctionExpression,\n isOperatorExpression,\n isSelectNode,\n isSubqueryExpression,\n isWindowExpression,\n} from '../types/utils';\n\nexport const getColumnNamesFromAst = (\n node: ParsedExpression,\n columnSet: Set<string> = new Set()\n): string[] => {\n if (!node) return Array.from(columnSet);\n\n if (isBetweenExpression(node)) {\n getColumnNamesFromAst(node.input, columnSet);\n getColumnNamesFromAst(node.lower, columnSet);\n getColumnNamesFromAst(node.upper, columnSet);\n }\n\n if (isColumnRefExpression(node)) {\n columnSet.add(node.column_names.join(COLUMN_NAME_DELIMITER));\n }\n\n if (isCastExpression(node) || isCollateExpression(node)) {\n getColumnNamesFromAst(node.child, columnSet);\n }\n\n if (isComparisonExpression(node)) {\n getColumnNamesFromAst(node.left, columnSet);\n getColumnNamesFromAst(node.right, columnSet);\n }\n\n if (\n isFunctionExpression(node) ||\n isWindowExpression(node) ||\n isOperatorExpression(node) ||\n isConjunctionExpression(node)\n ) {\n node.children.forEach((child) => getColumnNamesFromAst(child, columnSet));\n }\n\n if (isCaseExpression(node)) {\n node.case_checks.forEach((check) => {\n getColumnNamesFromAst(check.then_expr, columnSet);\n getColumnNamesFromAst(check.when_expr, columnSet);\n });\n getColumnNamesFromAst(node.else_expr, columnSet);\n }\n\n if (isSubqueryExpression(node) && isSelectNode(node.subquery.node)) {\n node.subquery.node.select_list.forEach((node) => {\n getColumnNamesFromAst(node, columnSet);\n });\n }\n\n return Array.from(columnSet);\n};\n"],"names":["getColumnNamesFromAst","node","columnSet","Set","Array","from","isBetweenExpression","input","lower","upper","isColumnRefExpression","add","column_names","join","COLUMN_NAME_DELIMITER","isCastExpression","isCollateExpression","child","isComparisonExpression","left","right","isFunctionExpression","isWindowExpression","isOperatorExpression","isConjunctionExpression","children","forEach","isCaseExpression","case_checks","check","then_expr","when_expr","else_expr","isSubqueryExpression","isSelectNode","subquery","select_list"],"mappings":";+BAiBaA;;;eAAAA;;;0BAjByB;uBAe/B;AAEA,MAAMA,wBAAwB,CACnCC,MACAC,YAAyB,IAAIC,KAAK;IAElC,IAAI,CAACF,MAAM,OAAOG,MAAMC,IAAI,CAACH;IAE7B,IAAII,IAAAA,0BAAmB,EAACL,OAAO;QAC7BD,sBAAsBC,KAAKM,KAAK,EAAEL;QAClCF,sBAAsBC,KAAKO,KAAK,EAAEN;QAClCF,sBAAsBC,KAAKQ,KAAK,EAAEP;IACpC;IAEA,IAAIQ,IAAAA,4BAAqB,EAACT,OAAO;QAC/BC,UAAUS,GAAG,CAACV,KAAKW,YAAY,CAACC,IAAI,CAACC,+BAAqB;IAC5D;IAEA,IAAIC,IAAAA,uBAAgB,EAACd,SAASe,IAAAA,0BAAmB,EAACf,OAAO;QACvDD,sBAAsBC,KAAKgB,KAAK,EAAEf;IACpC;IAEA,IAAIgB,IAAAA,6BAAsB,EAACjB,OAAO;QAChCD,sBAAsBC,KAAKkB,IAAI,EAAEjB;QACjCF,sBAAsBC,KAAKmB,KAAK,EAAElB;IACpC;IAEA,IACEmB,IAAAA,2BAAoB,EAACpB,SACrBqB,IAAAA,yBAAkB,EAACrB,SACnBsB,IAAAA,2BAAoB,EAACtB,SACrBuB,IAAAA,8BAAuB,EAACvB,OACxB;QACAA,KAAKwB,QAAQ,CAACC,OAAO,CAAC,CAACT,QAAUjB,sBAAsBiB,OAAOf;IAChE;IAEA,IAAIyB,IAAAA,uBAAgB,EAAC1B,OAAO;QAC1BA,KAAK2B,WAAW,CAACF,OAAO,CAAC,CAACG;YACxB7B,sBAAsB6B,MAAMC,SAAS,EAAE5B;YACvCF,sBAAsB6B,MAAME,SAAS,EAAE7B;QACzC;QACAF,sBAAsBC,KAAK+B,SAAS,EAAE9B;IACxC;IAEA,IAAI+B,IAAAA,2BAAoB,EAAChC,SAASiC,IAAAA,mBAAY,EAACjC,KAAKkC,QAAQ,CAAClC,IAAI,GAAG;QAClEA,KAAKkC,QAAQ,CAAClC,IAAI,CAACmC,WAAW,CAACV,OAAO,CAAC,CAACzB;YACtCD,sBAAsBC,MAAMC;QAC9B;IACF;IAEA,OAAOE,MAAMC,IAAI,CAACH;AACpB"}
|