@devrev/meerkat-core 0.0.84 → 0.0.85
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 +3 -0
- package/src/ast-validator/index.js +21 -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 +2115 -0
- package/src/ast-validator/tests/test-data.js +2060 -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/not/not.d.ts +2 -2
- package/src/cube-filter-transformer/not/not.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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/ast-validator/tests/test-data.ts"],"sourcesContent":["import {\n ExpressionType,\n ParsedExpression,\n ResultModifierType,\n} from '../../types/duckdb-serialization-types';\nimport { ExpressionClass } from '../../types/duckdb-serialization-types/serialization/Expression';\n\nexport const EMPTY_VALID_FUNCTIONS = new Set<string>();\nexport const VALID_FUNCTIONS = new Set(['contains', 'round', 'power']);\n\nexport const COLUMN_REF_NODE: ParsedExpression = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: 'alias',\n query_location: 0,\n column_names: ['column_name'],\n};\n\nexport const INVALID_NODE: ParsedExpression = {\n class: ExpressionClass.INVALID,\n type: ExpressionType.INVALID,\n alias: '',\n query_location: 0,\n};\n\nexport const DIMENSION_TEST_CASES = [\n {\n description: 'node type COLUMN_REF',\n node: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 0,\n column_names: ['column_name'],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type COLUMN_REF with alias',\n node: COLUMN_REF_NODE,\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type VALUE_CONSTANT',\n node: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 0,\n value: '1',\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type OPERATOR_CAST',\n node: {\n class: ExpressionClass.CAST,\n type: ExpressionType.OPERATOR_CAST,\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 12,\n column_names: ['column_name'],\n },\n cast_type: {\n id: 1,\n },\n try_cast: false,\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type OPERATOR_COALESCE',\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 16,\n column_names: ['column_name'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 38,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with ROUND function and if it contains in validFunctions',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'round',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 13,\n column_names: ['column_name'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 41,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type CASE',\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 35,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['actual_close_date'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 37,\n column_names: ['created_date'],\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['actual_close_date'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n];\n\nexport const MEASURE_TEST_CASES = [\n {\n description: 'node type FUNCTION with count_star',\n query: 'count_star()',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'count_star',\n schema: '',\n children: [],\n },\n validFunctions: new Set(['count_star']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM and invalid function type',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n },\n validFunctions: new Set(['min']),\n validScalarFunctions: new Set(['/']),\n error: 'Invalid function type: sum',\n expected: 'error',\n },\n {\n description: 'node type FUNCTION with MAX and operator',\n query: 'max(column1) / 1000',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 38,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 40,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1000,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type CASE_EXPR',\n query: 'CASE WHEN COUNT(id) > 1 THEN AVG(mtbf_hours) ELSE null END',\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 27,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 17,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 23,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 29,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 36,\n function_name: 'avg',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 40,\n column_names: ['mtbf_hours'],\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 57,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: new Set(['count', 'avg']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with aggregation and case statement within',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 11,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 43,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '->>',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 21,\n column_names: ['stage_json'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 36,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'name',\n },\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 right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 45,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'Tech Doc Inprogress',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 72,\n column_names: ['modified_date'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 91,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n query:\n 'max(CASE WHEN stage_json->>name = \"Tech\" THEN modified_date ELSE NULL END)',\n },\n {\n description:\n 'node type FUNCTION two children of aggregation and operator operation on them',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 49,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['mean_reciprocal_rank'],\n },\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 34,\n column_names: ['total_queries'],\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 filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['total_queries'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\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 validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n query: 'sum(mean_reciprocal_rank * total_queries) / sum(total_queries)',\n },\n {\n description: 'node type CAST',\n query:\n \"CAST(COUNT(DISTINCT(id)) AS FLOAT) / NULLIF(DATEDIFF('day', MIN(created_date), MAX(created_date)) / 7 + 1, 0)\",\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 42,\n function_name: '/',\n schema: '',\n children: [\n {\n class: 'CAST',\n type: 'OPERATOR_CAST',\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 12,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 27,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n cast_type: {\n id: 'FLOAT',\n type_info: null,\n },\n try_cast: false,\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 44,\n function_name: 'nullif',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 109,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 105,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'datediff',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 60,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'day',\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 67,\n function_name: 'min',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 71,\n column_names: ['created_date'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 90,\n column_names: ['created_date'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 107,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 7,\n },\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 class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 111,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\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 class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 114,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\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 validFunctions: new Set(['count', 'datediff', 'min', 'max']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n },\n {\n description: 'node type COALESCE',\n query: 'COALESCE(SUM(amount) FILTER(direction = \"Income\"), 0)',\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 16,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 20,\n column_names: ['amount'],\n },\n ],\n filter: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 45,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 35,\n column_names: ['direction'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 47,\n column_names: ['Income'],\n },\n },\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 58,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type WINDOW_AGGREGATE',\n query:\n 'AVG(COUNT(column1)) OVER (ORDER BY (MEERKAT).record_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)',\n node: {\n class: ExpressionClass.WINDOW,\n type: ExpressionType.WINDOW_AGGREGATE,\n alias: '',\n query_location: 7,\n function_name: 'avg',\n schema: '',\n catalog: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 11,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['number_deployments'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n partitions: [],\n orders: [\n {\n type: 'ORDER_DEFAULT',\n null_order: 'ORDER_DEFAULT',\n expression: {\n class: 'OPERATOR',\n type: 'STRUCT_EXTRACT',\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 54,\n column_names: ['MEERKAT'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'record_date',\n },\n },\n ],\n },\n },\n ],\n start: 'EXPR_PRECEDING_ROWS',\n end: 'CURRENT_ROW_ROWS',\n start_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 88,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 6,\n },\n },\n end_expr: null,\n offset_expr: null,\n default_expr: null,\n ignore_nulls: false,\n filter_expr: null,\n exclude_clause: 'NO_OTHER',\n distinct: false,\n },\n validFunctions: new Set(['avg', 'count']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type SUBQUERY',\n query:\n \"(SELECT CASE WHEN COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END) > 0 THEN 100 - (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) * 100.0 / (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END))) ELSE NULL END AS result)\",\n node: {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n query_location: 7,\n\n subquery: {\n node: {\n type: 'SELECT_NODE',\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: 'result',\n query_location: 15,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 275,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 25,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 40,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 60,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 50,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 62,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 78,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 88,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 103,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_AND,\n alias: '',\n query_location: 137,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 123,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 113,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 125,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 175,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 141,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 154,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 177,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 219,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 215,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 184,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 217,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 253,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 222,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 267,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\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 right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 277,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 288,\n function_name: '-',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 284,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 100,\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 360,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 352,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 291,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 306,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 326,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 316,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 328,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 344,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 354,\n value: {\n type: {\n id: 'DECIMAL',\n type_info: {\n type: 'DECIMAL_TYPE_INFO',\n alias: '',\n modifiers: [],\n width: 4,\n scale: 1,\n },\n },\n is_null: false,\n value: 1000,\n },\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 class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 424,\n function_name: '+',\n schema: '',\n children: [\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 363,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 378,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 398,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 388,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 400,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 416,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 426,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 441,\n case_checks: [\n {\n when_expr: {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_AND',\n alias: '',\n query_location: 475,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 461,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 451,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 463,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 513,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 479,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 492,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 515,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 557,\n children: [\n {\n class:\n ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 553,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 522,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class:\n ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 555,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 591,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 560,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 605,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\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 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 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 else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 620,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\n query_location: 18446744073709552000,\n },\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: 'STANDARD_HANDLING',\n having: null,\n sample: null,\n qualify: null,\n },\n },\n child: null,\n comparison_type: 'INVALID',\n },\n validFunctions: new Set(['count', 'count_star']),\n validScalarFunctions: new Set(['-', '/', '*', '+']),\n expected: true,\n },\n];\n"],"names":["EMPTY_VALID_FUNCTIONS","VALID_FUNCTIONS","COLUMN_REF_NODE","INVALID_NODE","DIMENSION_TEST_CASES","MEASURE_TEST_CASES","Set","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","query_location","column_names","INVALID","description","node","validFunctions","expected","CONSTANT","VALUE_CONSTANT","value","CAST","OPERATOR_CAST","child","cast_type","id","try_cast","OPERATOR","OPERATOR_COALESCE","children","type_info","is_null","FUNCTION","function_name","schema","filter","order_bys","ResultModifierType","ORDER_MODIFIER","orders","distinct","is_operator","export_state","CASE","CASE_EXPR","case_checks","when_expr","COMPARISON","COMPARE_GREATERTHAN","left","right","then_expr","else_expr","query","validScalarFunctions","error","catalog","COMPARE_EQUAL","WINDOW","WINDOW_AGGREGATE","partitions","null_order","expression","start","end","start_expr","end_expr","offset_expr","default_expr","ignore_nulls","filter_expr","exclude_clause","SUBQUERY","subquery","modifiers","cte_map","map","select_list","CONJUNCTION","CONJUNCTION_AND","width","scale","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","comparison_type"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/ast-validator/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ParsedExpression } from '../types/duckdb-serialization-types';
|
|
2
|
+
import { ParsedSerialization } from './types';
|
|
3
|
+
export declare function getSelectNode(parsedSerialization: ParsedSerialization): ParsedExpression;
|
|
4
|
+
export declare const isError: (data: ParsedSerialization) => boolean;
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
getSelectNode: function() {
|
|
10
|
+
return getSelectNode;
|
|
11
|
+
},
|
|
12
|
+
isError: function() {
|
|
13
|
+
return isError;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
function getSelectNode(parsedSerialization) {
|
|
17
|
+
var _parsedSerialization_statements;
|
|
18
|
+
const statement = (_parsedSerialization_statements = parsedSerialization.statements) == null ? void 0 : _parsedSerialization_statements[0];
|
|
19
|
+
if (!statement) {
|
|
20
|
+
throw new Error('No statement found');
|
|
21
|
+
}
|
|
22
|
+
if (statement.node.type !== 'SELECT_NODE') {
|
|
23
|
+
throw new Error('Statement must be a SELECT node');
|
|
24
|
+
}
|
|
25
|
+
const selectList = statement.node.select_list;
|
|
26
|
+
if (!(selectList == null ? void 0 : selectList.length) || selectList.length !== 1) {
|
|
27
|
+
throw new Error('SELECT must contain exactly one expression');
|
|
28
|
+
}
|
|
29
|
+
return selectList[0];
|
|
30
|
+
}
|
|
31
|
+
const isError = (data)=>{
|
|
32
|
+
return !!data.error;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/ast-validator/utils.ts"],"sourcesContent":["import { ParsedExpression } from '../types/duckdb-serialization-types';\nimport { ParsedSerialization } from './types';\n\nexport function getSelectNode(\n parsedSerialization: ParsedSerialization\n): ParsedExpression {\n const statement = parsedSerialization.statements?.[0];\n if (!statement) {\n throw new Error('No statement found');\n }\n\n if (statement.node.type !== 'SELECT_NODE') {\n throw new Error('Statement must be a SELECT node');\n }\n\n const selectList = statement.node.select_list;\n if (!selectList?.length || selectList.length !== 1) {\n throw new Error('SELECT must contain exactly one expression');\n }\n\n return selectList[0];\n}\n\nexport const isError = (data: ParsedSerialization): boolean => {\n return !!data.error;\n};\n"],"names":["getSelectNode","isError","parsedSerialization","statement","statements","Error","node","type","selectList","select_list","length","data","error"],"mappings":";;;;;;;;IAGgBA,aAAa;eAAbA;;IAoBHC,OAAO;eAAPA;;;AApBN,SAASD,cACdE,mBAAwC;QAEtBA;IAAlB,MAAMC,aAAYD,kCAAAA,oBAAoBE,UAAU,qBAA9BF,+BAAgC,CAAC,EAAE;IACrD,IAAI,CAACC,WAAW;QACd,MAAM,IAAIE,MAAM;IAClB;IAEA,IAAIF,UAAUG,IAAI,CAACC,IAAI,KAAK,eAAe;QACzC,MAAM,IAAIF,MAAM;IAClB;IAEA,MAAMG,aAAaL,UAAUG,IAAI,CAACG,WAAW;IAC7C,IAAI,EAACD,8BAAAA,WAAYE,MAAM,KAAIF,WAAWE,MAAM,KAAK,GAAG;QAClD,MAAM,IAAIL,MAAM;IAClB;IAEA,OAAOG,UAAU,CAAC,EAAE;AACtB;AAEO,MAAMP,UAAU,CAACU;IACtB,OAAO,CAAC,CAACA,KAAKC,KAAK;AACrB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const notDuckdbCondition: () =>
|
|
1
|
+
import { OperatorExpression } from '../../types/duckdb-serialization-types/index';
|
|
2
|
+
export declare const notDuckdbCondition: () => OperatorExpression;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not/not.ts"],"sourcesContent":["import {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not/not.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n OperatorExpression,\n} from '../../types/duckdb-serialization-types/index';\n\nexport const notDuckdbCondition = (): OperatorExpression => {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_NOT,\n alias: '',\n children: [],\n };\n};\n"],"names":["notDuckdbCondition","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_NOT","alias","children"],"mappings":";+BAMaA;;;eAAAA;;;uBAFN;AAEA,MAAMA,qBAAqB;IAChC,OAAO;QACLC,OAAOC,sBAAe,CAACC,QAAQ;QAC/BC,MAAMC,qBAAc,CAACC,YAAY;QACjCC,OAAO;QACPC,UAAU,EAAE;IACd;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;
|