@devrev/meerkat-core 0.0.83 → 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.
Files changed (40) hide show
  1. package/package.json +1 -1
  2. package/src/ast-serializer/ast-serializer.d.ts +1 -0
  3. package/src/ast-serializer/ast-serializer.js +12 -0
  4. package/src/ast-serializer/ast-serializer.js.map +1 -0
  5. package/src/ast-validator/dimension-validator.d.ts +10 -0
  6. package/src/ast-validator/dimension-validator.js +54 -0
  7. package/src/ast-validator/dimension-validator.js.map +1 -0
  8. package/src/ast-validator/index.d.ts +3 -0
  9. package/src/ast-validator/index.js +21 -0
  10. package/src/ast-validator/index.js.map +1 -0
  11. package/src/ast-validator/measure-validator.d.ts +11 -0
  12. package/src/ast-validator/measure-validator.js +162 -0
  13. package/src/ast-validator/measure-validator.js.map +1 -0
  14. package/src/ast-validator/tests/test-data.d.ts +2115 -0
  15. package/src/ast-validator/tests/test-data.js +2060 -0
  16. package/src/ast-validator/tests/test-data.js.map +1 -0
  17. package/src/ast-validator/types.d.ts +8 -0
  18. package/src/ast-validator/types.js +3 -0
  19. package/src/ast-validator/types.js.map +1 -0
  20. package/src/ast-validator/utils.d.ts +4 -0
  21. package/src/ast-validator/utils.js +35 -0
  22. package/src/ast-validator/utils.js.map +1 -0
  23. package/src/cube-filter-transformer/not/not.d.ts +2 -2
  24. package/src/cube-filter-transformer/not/not.js.map +1 -1
  25. package/src/get-filter-params-sql/get-filter-params-sql.d.ts +11 -0
  26. package/src/get-filter-params-sql/get-filter-params-sql.js +28 -0
  27. package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
  28. package/src/get-final-base-sql/get-final-base-sql.d.ts +7 -0
  29. package/src/get-final-base-sql/get-final-base-sql.js +30 -0
  30. package/src/get-final-base-sql/get-final-base-sql.js.map +1 -0
  31. package/src/index.d.ts +5 -0
  32. package/src/index.js +11 -0
  33. package/src/index.js.map +1 -1
  34. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.d.ts +17 -0
  35. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -1
  36. package/src/types/utils.d.ts +19 -0
  37. package/src/types/utils.js +108 -0
  38. package/src/types/utils.js.map +1 -0
  39. package/src/utils/base-ast.js +2 -3
  40. 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,8 @@
1
+ import { SelectStatement } from '../types/duckdb-serialization-types';
2
+ export interface ParsedSerialization {
3
+ statements: SelectStatement[];
4
+ error?: boolean;
5
+ error_message?: string;
6
+ error_type?: string;
7
+ position?: string;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -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 { ConjunctionExpression } from '../../types/duckdb-serialization-types/index';
2
- export declare const notDuckdbCondition: () => ConjunctionExpression;
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 ConjunctionExpression,\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/index';\n\nexport const notDuckdbCondition = (): ConjunctionExpression => {\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"}
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"}
@@ -0,0 +1,11 @@
1
+ import { FilterType, Query, TableSchema } from "../types/cube-types";
2
+ export declare const getFilterParamsSQL: ({ query, tableSchema, filterType, getQueryOutput }: {
3
+ query: Query;
4
+ tableSchema: TableSchema;
5
+ filterType?: FilterType | undefined;
6
+ getQueryOutput: (query: string) => Promise<any>;
7
+ }) => Promise<{
8
+ memberKey: string;
9
+ sql: string;
10
+ matchKey: string;
11
+ }[]>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "getFilterParamsSQL", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return getFilterParamsSQL;
6
+ }
7
+ });
8
+ const _astdeserializer = require("../ast-deserializer/ast-deserializer");
9
+ const _filterparamsast = require("../filter-params/filter-params-ast");
10
+ const getFilterParamsSQL = async ({ query, tableSchema, filterType, getQueryOutput })=>{
11
+ const filterParamsAST = (0, _filterparamsast.getFilterParamsAST)(query, tableSchema, filterType);
12
+ const filterParamsSQL = [];
13
+ for (const filterParamAST of filterParamsAST){
14
+ if (!filterParamAST.ast) {
15
+ continue;
16
+ }
17
+ const queryOutput = await getQueryOutput((0, _astdeserializer.astDeserializerQuery)(filterParamAST.ast));
18
+ const sql = (0, _astdeserializer.deserializeQuery)(queryOutput);
19
+ filterParamsSQL.push({
20
+ memberKey: filterParamAST.memberKey,
21
+ sql: sql,
22
+ matchKey: filterParamAST.matchKey
23
+ });
24
+ }
25
+ return filterParamsSQL;
26
+ };
27
+
28
+ //# sourceMappingURL=get-filter-params-sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/get-filter-params-sql/get-filter-params-sql.ts"],"sourcesContent":["import { astDeserializerQuery, deserializeQuery } from \"../ast-deserializer/ast-deserializer\";\nimport { getFilterParamsAST } from \"../filter-params/filter-params-ast\";\nimport { FilterType, Query, TableSchema } from \"../types/cube-types\";\n\nexport const getFilterParamsSQL = async ({\n query,\n tableSchema,\n filterType,\n getQueryOutput\n}: {\n query: Query;\n tableSchema: TableSchema;\n filterType?: FilterType;\n getQueryOutput: (query: string) => Promise<any>;\n}) => {\n const filterParamsAST = getFilterParamsAST(\n query,\n tableSchema,\n filterType\n );\n const filterParamsSQL = [];\n for (const filterParamAST of filterParamsAST) {\n if (!filterParamAST.ast) {\n continue;\n }\n\n const queryOutput = await getQueryOutput(astDeserializerQuery(filterParamAST.ast))\n const sql = deserializeQuery(queryOutput);\n\n filterParamsSQL.push({\n memberKey: filterParamAST.memberKey,\n sql: sql,\n matchKey: filterParamAST.matchKey,\n });\n }\n return filterParamsSQL;\n};\n"],"names":["getFilterParamsSQL","query","tableSchema","filterType","getQueryOutput","filterParamsAST","getFilterParamsAST","filterParamsSQL","filterParamAST","ast","queryOutput","astDeserializerQuery","sql","deserializeQuery","push","memberKey","matchKey"],"mappings":";+BAIaA;;;eAAAA;;;iCAJ0C;iCACpB;AAG5B,MAAMA,qBAAqB,OAAO,EACvCC,KAAK,EACLC,WAAW,EACXC,UAAU,EACVC,cAAc,EAMf;IACC,MAAMC,kBAAkBC,IAAAA,mCAAkB,EACxCL,OACAC,aACAC;IAEF,MAAMI,kBAAkB,EAAE;IAC1B,KAAK,MAAMC,kBAAkBH,gBAAiB;QAC5C,IAAI,CAACG,eAAeC,GAAG,EAAE;YACvB;QACF;QAEA,MAAMC,cAAc,MAAMN,eAAeO,IAAAA,qCAAoB,EAACH,eAAeC,GAAG;QAChF,MAAMG,MAAMC,IAAAA,iCAAgB,EAACH;QAE7BH,gBAAgBO,IAAI,CAAC;YACnBC,WAAWP,eAAeO,SAAS;YACnCH,KAAKA;YACLI,UAAUR,eAAeQ,QAAQ;QACnC;IACF;IACA,OAAOT;AACT"}
@@ -0,0 +1,7 @@
1
+ import { Query } from "../types/cube-types/query";
2
+ import { TableSchema } from "../types/cube-types/table";
3
+ export declare const getFinalBaseSQL: ({ query, getQueryOutput, tableSchema, }: {
4
+ query: Query;
5
+ tableSchema: TableSchema;
6
+ getQueryOutput: (query: string) => Promise<any>;
7
+ }) => Promise<string>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "getFinalBaseSQL", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return getFinalBaseSQL;
6
+ }
7
+ });
8
+ const _filterparamsast = require("../filter-params/filter-params-ast");
9
+ const _getfilterparamssql = require("../get-filter-params-sql/get-filter-params-sql");
10
+ const _getwrappedbasequerywithprojections = require("../get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections");
11
+ const getFinalBaseSQL = async ({ query, getQueryOutput, tableSchema })=>{
12
+ /**
13
+ * Apply transformation to the supplied base query.
14
+ * This involves updating the filter placeholder with the actual filter values.
15
+ */ const baseFilterParamsSQL = await (0, _getfilterparamssql.getFilterParamsSQL)({
16
+ query: query,
17
+ tableSchema,
18
+ filterType: 'BASE_FILTER',
19
+ getQueryOutput
20
+ });
21
+ const baseSQL = (0, _filterparamsast.applyFilterParamsToBaseSQL)(tableSchema.sql, baseFilterParamsSQL);
22
+ const baseSQLWithFilterProjection = (0, _getwrappedbasequerywithprojections.getWrappedBaseQueryWithProjections)({
23
+ baseQuery: baseSQL,
24
+ tableSchema,
25
+ query: query
26
+ });
27
+ return baseSQLWithFilterProjection;
28
+ };
29
+
30
+ //# sourceMappingURL=get-final-base-sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/get-final-base-sql/get-final-base-sql.ts"],"sourcesContent":["import { applyFilterParamsToBaseSQL } from \"../filter-params/filter-params-ast\";\nimport { getFilterParamsSQL } from \"../get-filter-params-sql/get-filter-params-sql\";\nimport { getWrappedBaseQueryWithProjections } from \"../get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections\";\nimport { Query } from \"../types/cube-types/query\";\nimport { TableSchema } from \"../types/cube-types/table\";\n\nexport const getFinalBaseSQL = async ({\n query,\n getQueryOutput,\n tableSchema,\n}: { query: Query, tableSchema: TableSchema, getQueryOutput: (query: string) => Promise<any> }) => {\n /**\n * Apply transformation to the supplied base query.\n * This involves updating the filter placeholder with the actual filter values.\n */\n const baseFilterParamsSQL = await getFilterParamsSQL({\n query: query,\n tableSchema,\n filterType: 'BASE_FILTER',\n getQueryOutput,\n });\n const baseSQL = applyFilterParamsToBaseSQL(\n tableSchema.sql,\n baseFilterParamsSQL\n );\n const baseSQLWithFilterProjection = getWrappedBaseQueryWithProjections({\n baseQuery: baseSQL,\n tableSchema,\n query: query,\n });\n return baseSQLWithFilterProjection;\n};\n \n"],"names":["getFinalBaseSQL","query","getQueryOutput","tableSchema","baseFilterParamsSQL","getFilterParamsSQL","filterType","baseSQL","applyFilterParamsToBaseSQL","sql","baseSQLWithFilterProjection","getWrappedBaseQueryWithProjections","baseQuery"],"mappings":";+BAMaA;;;eAAAA;;;iCAN8B;oCACR;oDACgB;AAI5C,MAAMA,kBAAkB,OAAO,EACpCC,KAAK,EACLC,cAAc,EACdC,WAAW,EACiF;IAC5F;;;GAGC,GACD,MAAMC,sBAAsB,MAAMC,IAAAA,sCAAkB,EAAC;QACnDJ,OAAOA;QACPE;QACAG,YAAY;QACZJ;IACF;IACA,MAAMK,UAAUC,IAAAA,2CAA0B,EACxCL,YAAYM,GAAG,EACfL;IAEF,MAAMM,8BAA8BC,IAAAA,sEAAkC,EAAC;QACrEC,WAAWL;QACXJ;QACAF,OAAOA;IACT;IACA,OAAOS;AACT"}
package/src/index.d.ts CHANGED
@@ -1,14 +1,19 @@
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
8
  export { applyFilterParamsToBaseSQL, detectAllFilterParamsFromSQL, getFilterParamsAST, } from './filter-params/filter-params-ast';
9
+ export { getFilterParamsSQL } from './get-filter-params-sql/get-filter-params-sql';
10
+ export { getFinalBaseSQL } from './get-final-base-sql/get-final-base-sql';
7
11
  export { getWrappedBaseQueryWithProjections } from './get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections';
8
12
  export * from './joins/joins';
9
13
  export { FilterType } from './types/cube-types';
10
14
  export * from './types/cube-types/index';
11
15
  export * from './types/duckdb-serialization-types/index';
16
+ export * from './types/utils';
12
17
  export { BASE_TABLE_NAME } from './utils/base-ast';
13
18
  export * from './utils/cube-to-table-schema';
14
19
  export * from './utils/get-possible-nodes';
package/src/index.js CHANGED
@@ -18,6 +18,12 @@ _export(exports, {
18
18
  getFilterParamsAST: function() {
19
19
  return _filterparamsast.getFilterParamsAST;
20
20
  },
21
+ getFilterParamsSQL: function() {
22
+ return _getfilterparamssql.getFilterParamsSQL;
23
+ },
24
+ getFinalBaseSQL: function() {
25
+ return _getfinalbasesql.getFinalBaseSQL;
26
+ },
21
27
  getWrappedBaseQueryWithProjections: function() {
22
28
  return _getwrappedbasequerywithprojections.getWrappedBaseQueryWithProjections;
23
29
  },
@@ -37,15 +43,20 @@ _export(exports, {
37
43
  const _export_star = require("@swc/helpers/_/_export_star");
38
44
  _export_star._(require("./ast-builder/ast-builder"), exports);
39
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);
40
48
  const _contextparamsast = require("./context-params/context-params-ast");
41
49
  _export_star._(require("./cube-measure-transformer/cube-measure-transformer"), exports);
42
50
  _export_star._(require("./cube-to-duckdb/cube-filter-to-duckdb"), exports);
43
51
  const _filterparamsast = require("./filter-params/filter-params-ast");
52
+ const _getfilterparamssql = require("./get-filter-params-sql/get-filter-params-sql");
53
+ const _getfinalbasesql = require("./get-final-base-sql/get-final-base-sql");
44
54
  const _getwrappedbasequerywithprojections = require("./get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections");
45
55
  _export_star._(require("./joins/joins"), exports);
46
56
  const _cubetypes = require("./types/cube-types");
47
57
  _export_star._(require("./types/cube-types/index"), exports);
48
58
  _export_star._(require("./types/duckdb-serialization-types/index"), exports);
59
+ _export_star._(require("./types/utils"), exports);
49
60
  const _baseast = require("./utils/base-ast");
50
61
  _export_star._(require("./utils/cube-to-table-schema"), exports);
51
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,\n} from './filter-params/filter-params-ast';\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 { 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","getWrappedBaseQueryWithProjections","FilterType","BASE_TABLE_NAME","meerkatPlaceholderReplacer","memberKeyToSafeKey"],"mappings":";;;;;;;;IAESA,iCAAiC;eAAjCA,mDAAiC;;IAIxCC,0BAA0B;eAA1BA,2CAA0B;;IAC1BC,4BAA4B;eAA5BA,6CAA4B;;IAC5BC,kBAAkB;eAAlBA,mCAAkB;;IAEXC,kCAAkC;eAAlCA,sEAAkC;;IAElCC,UAAU;eAAVA,qBAAU;;IAGVC,eAAe;eAAfA,wBAAe;;IAGfC,0BAA0B;eAA1BA,sDAA0B;;IAC1BC,kBAAkB;eAAlBA,sCAAkB;;;;uBAnBb;uBACA;kCACoC;uBACpC;uBACA;iCAKP;oDAC4C;uBACrC;2BACa;uBACb;uBACA;yBACkB;uBAClB;uBACA;4CAC6B;oCACR"}
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;