@devrev/meerkat-core 0.0.84 → 0.0.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) 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 +4 -0
  9. package/src/ast-validator/index.js +25 -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 +2133 -0
  15. package/src/ast-validator/tests/test-data.js +2121 -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/base-condition-builder/base-condition-builder.js +3 -2
  24. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -1
  25. package/src/cube-filter-transformer/constant.d.ts +1 -0
  26. package/src/cube-filter-transformer/constant.js +10 -0
  27. package/src/cube-filter-transformer/constant.js.map +1 -0
  28. package/src/cube-filter-transformer/contains/contains.js +2 -1
  29. package/src/cube-filter-transformer/contains/contains.js.map +1 -1
  30. package/src/cube-filter-transformer/in/in.d.ts +1 -1
  31. package/src/cube-filter-transformer/in/in.js +22 -21
  32. package/src/cube-filter-transformer/in/in.js.map +1 -1
  33. package/src/cube-filter-transformer/not/not.d.ts +2 -2
  34. package/src/cube-filter-transformer/not/not.js.map +1 -1
  35. package/src/cube-filter-transformer/not-contains/not-contains.d.ts +1 -1
  36. package/src/cube-filter-transformer/not-contains/not-contains.js +2 -1
  37. package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -1
  38. package/src/cube-filter-transformer/not-in/not-in.d.ts +1 -1
  39. package/src/cube-filter-transformer/not-in/not-in.js +23 -22
  40. package/src/cube-filter-transformer/not-in/not-in.js.map +1 -1
  41. package/src/cube-filter-transformer/not-set/not-set.d.ts +1 -1
  42. package/src/cube-filter-transformer/not-set/not-set.js +6 -5
  43. package/src/cube-filter-transformer/not-set/not-set.js.map +1 -1
  44. package/src/cube-filter-transformer/set/set.d.ts +1 -1
  45. package/src/cube-filter-transformer/set/set.js +6 -5
  46. package/src/cube-filter-transformer/set/set.js.map +1 -1
  47. package/src/index.d.ts +4 -1
  48. package/src/index.js +3 -0
  49. package/src/index.js.map +1 -1
  50. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.d.ts +17 -0
  51. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -1
  52. package/src/types/utils.d.ts +19 -0
  53. package/src/types/utils.js +108 -0
  54. package/src/types/utils.js.map +1 -0
  55. package/src/utils/base-ast.js +2 -3
  56. package/src/utils/base-ast.js.map +1 -1
  57. package/src/utils/get-column-names-from-ast.d.ts +2 -0
  58. package/src/utils/get-column-names-from-ast.js +45 -0
  59. package/src/utils/get-column-names-from-ast.js.map +1 -0
@@ -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 columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type COLUMN_REF with alias',\n node: COLUMN_REF_NODE,\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\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 columnNames: [],\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_name1'],\n },\n cast_type: {\n id: 1,\n },\n try_cast: false,\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name1'],\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_name2'],\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 columnNames: ['column_name2'],\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with ROUND function and if it contains in validFunctions',\n columnNames: ['schema.column_name'],\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: ['schema', '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 columnNames: ['actual_close_date1', 'actual_close_date', 'created_date'],\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_date1'],\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 columnNames: [],\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 columnNames: ['column1'],\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 columnNames: ['column1'],\n },\n {\n description: 'node type FUNCTION with MAX and operator',\n columnNames: ['column1'],\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 columnNames: ['mtbf_hours', 'id'],\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 columnNames: ['modified_date', 'stage_json'],\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 columnNames: ['mean_reciprocal_rank', 'total_queries'],\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 columnNames: ['id', 'created_date', 'created_date1'],\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_date1'],\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 columnNames: ['amount'],\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 columnNames: ['column1'],\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: ['column1'],\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 columnNames: [\n 'id',\n 'sla_stage',\n 'first_resp_time_arr',\n 'total_first_resp_breaches_ever',\n ],\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","columnNames","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":";;;;;;;;IAOaA,qBAAqB;eAArBA;;IACAC,eAAe;eAAfA;;IAEAC,eAAe;eAAfA;;IAQAC,YAAY;eAAZA;;IAOAC,oBAAoB;eAApBA;;IAoMAC,kBAAkB;eAAlBA;;;0CAzNN;4BACyB;AAEzB,MAAML,wBAAwB,IAAIM;AAClC,MAAML,kBAAkB,IAAIK,IAAI;IAAC;IAAY;IAAS;CAAQ;AAE9D,MAAMJ,kBAAoC;IAC/CK,OAAOC,2BAAe,CAACC,UAAU;IACjCC,MAAMC,wCAAc,CAACF,UAAU;IAC/BG,OAAO;IACPC,gBAAgB;IAChBC,cAAc;QAAC;KAAc;AAC/B;AAEO,MAAMX,eAAiC;IAC5CI,OAAOC,2BAAe,CAACO,OAAO;IAC9BL,MAAMC,wCAAc,CAACI,OAAO;IAC5BH,OAAO;IACPC,gBAAgB;AAClB;AAEO,MAAMT,uBAAuB;IAClC;QACEY,aAAa;QACbC,MAAM;YACJV,OAAOC,2BAAe,CAACC,UAAU;YACjCC,MAAMC,wCAAc,CAACF,UAAU;YAC/BG,OAAO;YACPC,gBAAgB;YAChBC,cAAc;gBAAC;aAAc;QAC/B;QACAI,gBAAgBlB;QAChBmB,aAAa;YAAC;SAAc;QAC5BC,UAAU;IACZ;IACA;QACEJ,aAAa;QACbC,MAAMf;QACNgB,gBAAgBlB;QAChBmB,aAAa;YAAC;SAAc;QAC5BC,UAAU;IACZ;IACA;QACEJ,aAAa;QACbC,MAAM;YACJV,OAAOC,2BAAe,CAACa,QAAQ;YAC/BX,MAAMC,wCAAc,CAACW,cAAc;YACnCV,OAAO;YACPC,gBAAgB;YAChBU,OAAO;QACT;QACAJ,aAAa,EAAE;QACfD,gBAAgBlB;QAChBoB,UAAU;IACZ;IACA;QACEJ,aAAa;QACbC,MAAM;YACJV,OAAOC,2BAAe,CAACgB,IAAI;YAC3Bd,MAAMC,wCAAc,CAACc,aAAa;YAClCb,OAAO;YACPC,gBAAgB;YAChBa,OAAO;gBACLnB,OAAOC,2BAAe,CAACC,UAAU;gBACjCC,MAAMC,wCAAc,CAACF,UAAU;gBAC/BG,OAAO;gBACPC,gBAAgB;gBAChBC,cAAc;oBAAC;iBAAe;YAChC;YACAa,WAAW;gBACTC,IAAI;YACN;YACAC,UAAU;QACZ;QACAX,gBAAgBlB;QAChBmB,aAAa;YAAC;SAAe;QAC7BC,UAAU;IACZ;IACA;QACEJ,aAAa;QACbC,MAAM;YACJV,OAAOC,2BAAe,CAACsB,QAAQ;YAC/BpB,MAAMC,wCAAc,CAACoB,iBAAiB;YACtCnB,OAAO;YACPC,gBAAgB;YAChBmB,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAACC,UAAU;oBACjCC,MAAMC,wCAAc,CAACF,UAAU;oBAC/BG,OAAO;oBACPC,gBAAgB;oBAChBC,cAAc;wBAAC;qBAAe;gBAChC;gBACA;oBACEP,OAAOC,2BAAe,CAACa,QAAQ;oBAC/BX,MAAMC,wCAAc,CAACW,cAAc;oBACnCV,OAAO;oBACPC,gBAAgB;oBAChBU,OAAO;wBACLb,MAAM;4BACJkB,IAAI;4BACJK,WAAW;wBACb;wBACAC,SAAS;wBACTX,OAAO;oBACT;gBACF;aACD;QACH;QACAL,gBAAgBlB;QAChBmB,aAAa;YAAC;SAAe;QAC7BC,UAAU;IACZ;IACA;QACEJ,aACE;QACFG,aAAa;YAAC;SAAqB;QACnCF,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAACC,UAAU;oBACjCC,MAAMC,wCAAc,CAACF,UAAU;oBAC/BG,OAAO;oBACPC,gBAAgB;oBAChBC,cAAc;wBAAC;wBAAU;qBAAc;gBACzC;gBACA;oBACEP,OAAOC,2BAAe,CAACa,QAAQ;oBAC/BX,MAAMC,wCAAc,CAACW,cAAc;oBACnCV,OAAO;oBACPC,gBAAgB;oBAChBU,OAAO;wBACLb,MAAM;4BACJkB,IAAI;4BACJK,WAAW;wBACb;wBACAC,SAAS;wBACTX,OAAO;oBACT;gBACF;aACD;YACDe,QAAQ;YACRC,WAAW;gBACT7B,MAAM8B,4CAAkB,CAACC,cAAc;gBACvCC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;QAChB;QACA3B,gBAAgBjB;QAChBmB,UAAU;IACZ;IACA;QACEJ,aAAa;QACbG,aAAa;YAAC;YAAsB;YAAqB;SAAe;QACxEF,MAAM;YACJV,OAAOC,2BAAe,CAACsC,IAAI;YAC3BpC,MAAMC,wCAAc,CAACoC,SAAS;YAC9BnC,OAAO;YACPC,gBAAgB;YAChBmC,aAAa;gBACX;oBACEC,WAAW;wBACT1C,OAAOC,2BAAe,CAAC0C,UAAU;wBACjCxC,MAAMC,wCAAc,CAACwC,mBAAmB;wBACxCvC,OAAO;wBACPC,gBAAgB;wBAChBuC,MAAM;4BACJ7C,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAoB;wBACrC;wBACAuC,OAAO;4BACL9C,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAe;wBAChC;oBACF;oBACAwC,WAAW;wBACT/C,OAAOC,2BAAe,CAACC,UAAU;wBACjCC,MAAMC,wCAAc,CAACF,UAAU;wBAC/BG,OAAO;wBACPC,gBAAgB;wBAChBC,cAAc;4BAAC;yBAAqB;oBACtC;gBACF;aACD;YACDyC,WAAW;gBACThD,OAAOC,2BAAe,CAACa,QAAQ;gBAC/BX,MAAMC,wCAAc,CAACW,cAAc;gBACnCV,OAAO;gBACPC,gBAAgB;gBAChBU,OAAO;oBACLb,MAAM;wBACJkB,IAAI;wBACJK,WAAW;oBACb;oBACAC,SAAS;gBACX;YACF;QACF;QACAhB,gBAAgBlB;QAChBoB,UAAU;IACZ;CACD;AAEM,MAAMf,qBAAqB;IAChC;QACEW,aAAa;QACbwC,OAAO;QACPvC,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU,EAAE;QACd;QACAd,gBAAgB,IAAIZ,IAAI;YAAC;SAAa;QACtCmD,sBAAsBzD;QACtBmB,aAAa,EAAE;QACfC,UAAU;IACZ;IACA;QACEJ,aAAa;QACbwC,OAAO;QACPvC,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAACC,UAAU;oBACjCC,MAAMC,wCAAc,CAACF,UAAU;oBAC/BI,gBAAgB;oBAChBC,cAAc;wBAAC;qBAAU;gBAC3B;aACD;YACDwB,QAAQ;YACRC,WAAW;gBACT7B,MAAM8B,4CAAkB,CAACC,cAAc;gBACvCC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;QAChB;QACA3B,gBAAgB,IAAIZ,IAAI;YAAC;SAAM;QAC/BmD,sBAAsBzD;QACtBmB,aAAa;YAAC;SAAU;QACxBC,UAAU;IACZ;IACA;QACEJ,aAAa;QACbwC,OAAO;QACPvC,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAACC,UAAU;oBACjCC,MAAMC,wCAAc,CAACF,UAAU;oBAC/BI,gBAAgB;oBAChBC,cAAc;wBAAC;qBAAU;gBAC3B;aACD;YACDwB,QAAQ;YACRC,WAAW;gBACT7B,MAAM8B,4CAAkB,CAACC,cAAc;gBACvCC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;QAChB;QACA3B,gBAAgB,IAAIZ,IAAI;YAAC;SAAM;QAC/BmD,sBAAsB,IAAInD,IAAI;YAAC;SAAI;QACnCoD,OAAO;QACPtC,UAAU;QACVD,aAAa;YAAC;SAAU;IAC1B;IACA;QACEH,aAAa;QACbG,aAAa;YAAC;SAAU;QACxBqC,OAAO;QACPvC,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;oBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oBAC7BvB,OAAO;oBACPC,gBAAgB;oBAChBuB,eAAe;oBACfC,QAAQ;oBACRL,UAAU;wBACR;4BACEzB,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAU;wBAC3B;qBACD;oBACDwB,QAAQ;oBACRC,WAAW;wBACT7B,MAAM8B,4CAAkB,CAACC,cAAc;wBACvCC,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdc,SAAS;gBACX;gBACA;oBACEpD,OAAOC,2BAAe,CAACa,QAAQ;oBAC/BX,MAAMC,wCAAc,CAACW,cAAc;oBACnCV,OAAO;oBACPC,gBAAgB;oBAChBU,OAAO;wBACLb,MAAM;4BACJkB,IAAI;4BACJK,WAAW;wBACb;wBACAC,SAAS;wBACTX,OAAO;oBACT;gBACF;aACD;YACDe,QAAQ;YACRC,WAAW;gBACT7B,MAAM8B,4CAAkB,CAACC,cAAc;gBACvCC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdc,SAAS;QACX;QACAzC,gBAAgB,IAAIZ,IAAI;YAAC;SAAM;QAC/BmD,sBAAsB,IAAInD,IAAI;YAAC;SAAI;QACnCc,UAAU;IACZ;IACA;QACEJ,aAAa;QACbwC,OAAO;QACPrC,aAAa;YAAC;YAAc;SAAK;QACjCF,MAAM;YACJV,OAAOC,2BAAe,CAACsC,IAAI;YAC3BpC,MAAMC,wCAAc,CAACoC,SAAS;YAC9BnC,OAAO;YACPC,gBAAgB;YAChBmC,aAAa;gBACX;oBACEC,WAAW;wBACT1C,OAAOC,2BAAe,CAAC0C,UAAU;wBACjCxC,MAAMC,wCAAc,CAACwC,mBAAmB;wBACxCvC,OAAO;wBACPC,gBAAgB;wBAChBuC,MAAM;4BACJ7C,OAAOC,2BAAe,CAAC2B,QAAQ;4BAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;4BAC7BvB,OAAO;4BACPC,gBAAgB;4BAChBuB,eAAe;4BACfC,QAAQ;4BACRL,UAAU;gCACR;oCACEzB,OAAOC,2BAAe,CAACC,UAAU;oCACjCC,MAAMC,wCAAc,CAACF,UAAU;oCAC/BG,OAAO;oCACPC,gBAAgB;oCAChBC,cAAc;wCAAC;qCAAK;gCACtB;6BACD;4BACDwB,QAAQ;4BACRC,WAAW;gCACT7B,MAAM8B,4CAAkB,CAACC,cAAc;gCACvCC,QAAQ,EAAE;4BACZ;4BACAC,UAAU;4BACVC,aAAa;4BACbC,cAAc;4BACdc,SAAS;wBACX;wBACAN,OAAO;4BACL9C,OAAOC,2BAAe,CAACa,QAAQ;4BAC/BX,MAAMC,wCAAc,CAACW,cAAc;4BACnCV,OAAO;4BACPC,gBAAgB;4BAChBU,OAAO;gCACLb,MAAM;oCACJkB,IAAI;oCACJK,WAAW;gCACb;gCACAC,SAAS;gCACTX,OAAO;4BACT;wBACF;oBACF;oBACA+B,WAAW;wBACT/C,OAAOC,2BAAe,CAAC2B,QAAQ;wBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;wBAC7BvB,OAAO;wBACPC,gBAAgB;wBAChBuB,eAAe;wBACfC,QAAQ;wBACRL,UAAU;4BACR;gCACEzB,OAAOC,2BAAe,CAACC,UAAU;gCACjCC,MAAMC,wCAAc,CAACF,UAAU;gCAC/BG,OAAO;gCACPC,gBAAgB;gCAChBC,cAAc;oCAAC;iCAAa;4BAC9B;yBACD;wBACDwB,QAAQ;wBACRC,WAAW;4BACT7B,MAAM8B,4CAAkB,CAACC,cAAc;4BACvCC,QAAQ,EAAE;wBACZ;wBACAC,UAAU;wBACVC,aAAa;wBACbC,cAAc;wBACdc,SAAS;oBACX;gBACF;aACD;YACDJ,WAAW;gBACThD,OAAOC,2BAAe,CAACa,QAAQ;gBAC/BX,MAAMC,wCAAc,CAACW,cAAc;gBACnCV,OAAO;gBACPC,gBAAgB;gBAChBU,OAAO;oBACLb,MAAM;wBACJkB,IAAI;wBACJK,WAAW;oBACb;oBACAC,SAAS;gBACX;YACF;QACF;QACAhB,gBAAgB,IAAIZ,IAAI;YAAC;YAAS;SAAM;QACxCmD,sBAAsBzD;QACtBoB,UAAU;IACZ;IACA;QACEJ,aACE;QACFG,aAAa;YAAC;YAAiB;SAAa;QAC5CF,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAO;oBACPG,MAAM;oBACNE,OAAO;oBACPC,gBAAgB;oBAChBmC,aAAa;wBACX;4BACEC,WAAW;gCACT1C,OAAOC,2BAAe,CAAC0C,UAAU;gCACjCxC,MAAM;gCACNE,OAAO;gCACPC,gBAAgB;gCAChBuC,MAAM;oCACJ7C,OAAOC,2BAAe,CAAC2B,QAAQ;oCAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oCAC7BvB,OAAO;oCACPC,gBAAgB;oCAChBuB,eAAe;oCACfC,QAAQ;oCACRL,UAAU;wCACR;4CACEzB,OAAOC,2BAAe,CAACC,UAAU;4CACjCC,MAAMC,wCAAc,CAACF,UAAU;4CAC/BG,OAAO;4CACPC,gBAAgB;4CAChBC,cAAc;gDAAC;6CAAa;wCAC9B;wCACA;4CACEP,OAAOC,2BAAe,CAACa,QAAQ;4CAC/BX,MAAMC,wCAAc,CAACW,cAAc;4CACnCV,OAAO;4CACPC,gBAAgB;4CAChBU,OAAO;gDACLb,MAAM;oDACJkB,IAAI;oDACJK,WAAW;gDACb;gDACAC,SAAS;gDACTX,OAAO;4CACT;wCACF;qCACD;oCACDe,QAAQ;oCACRC,WAAW;wCACT7B,MAAM;wCACNgC,QAAQ,EAAE;oCACZ;oCACAC,UAAU;oCACVC,aAAa;oCACbC,cAAc;oCACdc,SAAS;gCACX;gCACAN,OAAO;oCACL9C,OAAOC,2BAAe,CAACa,QAAQ;oCAC/BX,MAAMC,wCAAc,CAACW,cAAc;oCACnCV,OAAO;oCACPC,gBAAgB;oCAChBU,OAAO;wCACLb,MAAM;4CACJkB,IAAI;4CACJK,WAAW;wCACb;wCACAC,SAAS;wCACTX,OAAO;oCACT;gCACF;4BACF;4BACA+B,WAAW;gCACT/C,OAAOC,2BAAe,CAACC,UAAU;gCACjCC,MAAMC,wCAAc,CAACF,UAAU;gCAC/BG,OAAO;gCACPC,gBAAgB;gCAChBC,cAAc;oCAAC;iCAAgB;4BACjC;wBACF;qBACD;oBACDyC,WAAW;wBACThD,OAAOC,2BAAe,CAACa,QAAQ;wBAC/BX,MAAMC,wCAAc,CAACW,cAAc;wBACnCV,OAAO;wBACPC,gBAAgB;wBAChBU,OAAO;4BACLb,MAAM;gCACJkB,IAAI;gCACJK,WAAW;4BACb;4BACAC,SAAS;wBACX;oBACF;gBACF;aACD;YACDI,QAAQ;YACRC,WAAW;gBACT7B,MAAM;gBACNgC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdc,SAAS;QACX;QACAzC,gBAAgB,IAAIZ,IAAI;YAAC;SAAM;QAC/BmD,sBAAsBzD;QACtBoB,UAAU;QACVoC,OACE;IACJ;IACA;QACExC,aACE;QACFG,aAAa;YAAC;YAAwB;SAAgB;QACtDF,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;oBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oBAC7BvB,OAAO;oBACPC,gBAAgB;oBAChBuB,eAAe;oBACfC,QAAQ;oBACRL,UAAU;wBACR;4BACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;4BAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;4BAC7BvB,OAAO;4BACPC,gBAAgB;4BAChBuB,eAAe;4BACfC,QAAQ;4BACRL,UAAU;gCACR;oCACEzB,OAAOC,2BAAe,CAACC,UAAU;oCACjCC,MAAMC,wCAAc,CAACF,UAAU;oCAC/BG,OAAO;oCACPC,gBAAgB;oCAChBC,cAAc;wCAAC;qCAAuB;gCACxC;gCACA;oCACEP,OAAOC,2BAAe,CAACC,UAAU;oCACjCC,MAAMC,wCAAc,CAACF,UAAU;oCAC/BG,OAAO;oCACPC,gBAAgB;oCAChBC,cAAc;wCAAC;qCAAgB;gCACjC;6BACD;4BACDwB,QAAQ;4BACRC,WAAW;gCACT7B,MAAM;gCACNgC,QAAQ,EAAE;4BACZ;4BACAC,UAAU;4BACVC,aAAa;4BACbC,cAAc;4BACdc,SAAS;wBACX;qBACD;oBACDrB,QAAQ;oBACRC,WAAW;wBACT7B,MAAM;wBACNgC,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdc,SAAS;gBACX;gBACA;oBACEpD,OAAOC,2BAAe,CAAC2B,QAAQ;oBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oBAC7BvB,OAAO;oBACPC,gBAAgB;oBAChBuB,eAAe;oBACfC,QAAQ;oBACRL,UAAU;wBACR;4BACEzB,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAgB;wBACjC;qBACD;oBACDwB,QAAQ;oBACRC,WAAW;wBACT7B,MAAM;wBACNgC,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdc,SAAS;gBACX;aACD;YACDrB,QAAQ;YACRC,WAAW;gBACT7B,MAAM;gBACNgC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdc,SAAS;QACX;QACAzC,gBAAgB,IAAIZ,IAAI;YAAC;SAAM;QAC/BmD,sBAAsB,IAAInD,IAAI;YAAC;YAAK;SAAI;QACxCc,UAAU;QACVoC,OAAO;IACT;IACA;QACExC,aAAa;QACbwC,OACE;QACFrC,aAAa;YAAC;YAAM;YAAgB;SAAgB;QACpDF,MAAM;YACJV,OAAOC,2BAAe,CAAC2B,QAAQ;YAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;YAC7BvB,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRL,UAAU;gBACR;oBACEzB,OAAO;oBACPG,MAAM;oBACNE,OAAO;oBACPC,gBAAgB;oBAChBa,OAAO;wBACLnB,OAAOC,2BAAe,CAAC2B,QAAQ;wBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;wBAC7BvB,OAAO;wBACPC,gBAAgB;wBAChBuB,eAAe;wBACfC,QAAQ;wBACRL,UAAU;4BACR;gCACEzB,OAAOC,2BAAe,CAACC,UAAU;gCACjCC,MAAMC,wCAAc,CAACF,UAAU;gCAC/BG,OAAO;gCACPC,gBAAgB;gCAChBC,cAAc;oCAAC;iCAAK;4BACtB;yBACD;wBACDwB,QAAQ;wBACRC,WAAW;4BACT7B,MAAM;4BACNgC,QAAQ,EAAE;wBACZ;wBACAC,UAAU;wBACVC,aAAa;wBACbC,cAAc;wBACdc,SAAS;oBACX;oBACAhC,WAAW;wBACTC,IAAI;wBACJK,WAAW;oBACb;oBACAJ,UAAU;gBACZ;gBACA;oBACEtB,OAAOC,2BAAe,CAAC2B,QAAQ;oBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oBAC7BvB,OAAO;oBACPC,gBAAgB;oBAChBuB,eAAe;oBACfC,QAAQ;oBACRL,UAAU;wBACR;4BACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;4BAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;4BAC7BvB,OAAO;4BACPC,gBAAgB;4BAChBuB,eAAe;4BACfC,QAAQ;4BACRL,UAAU;gCACR;oCACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;oCAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oCAC7BvB,OAAO;oCACPC,gBAAgB;oCAChBuB,eAAe;oCACfC,QAAQ;oCACRL,UAAU;wCACR;4CACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;4CAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;4CAC7BvB,OAAO;4CACPC,gBAAgB;4CAChBuB,eAAe;4CACfC,QAAQ;4CACRL,UAAU;gDACR;oDACEzB,OAAOC,2BAAe,CAACa,QAAQ;oDAC/BX,MAAMC,wCAAc,CAACW,cAAc;oDACnCV,OAAO;oDACPC,gBAAgB;oDAChBU,OAAO;wDACLb,MAAM;4DACJkB,IAAI;4DACJK,WAAW;wDACb;wDACAC,SAAS;wDACTX,OAAO;oDACT;gDACF;gDACA;oDACEhB,OAAOC,2BAAe,CAAC2B,QAAQ;oDAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oDAC7BvB,OAAO;oDACPC,gBAAgB;oDAChBuB,eAAe;oDACfC,QAAQ;oDACRL,UAAU;wDACR;4DACEzB,OAAOC,2BAAe,CAACC,UAAU;4DACjCC,MAAMC,wCAAc,CAACF,UAAU;4DAC/BG,OAAO;4DACPC,gBAAgB;4DAChBC,cAAc;gEAAC;6DAAe;wDAChC;qDACD;oDACDwB,QAAQ;oDACRC,WAAW;wDACT7B,MAAM;wDACNgC,QAAQ,EAAE;oDACZ;oDACAC,UAAU;oDACVC,aAAa;oDACbC,cAAc;oDACdc,SAAS;gDACX;gDACA;oDACEpD,OAAOC,2BAAe,CAAC2B,QAAQ;oDAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oDAC7BvB,OAAO;oDACPC,gBAAgB;oDAChBuB,eAAe;oDACfC,QAAQ;oDACRL,UAAU;wDACR;4DACEzB,OAAOC,2BAAe,CAACC,UAAU;4DACjCC,MAAMC,wCAAc,CAACF,UAAU;4DAC/BG,OAAO;4DACPC,gBAAgB;4DAChBC,cAAc;gEAAC;6DAAgB;wDACjC;qDACD;oDACDwB,QAAQ;oDACRC,WAAW;wDACT7B,MAAM;wDACNgC,QAAQ,EAAE;oDACZ;oDACAC,UAAU;oDACVC,aAAa;oDACbC,cAAc;oDACdc,SAAS;gDACX;6CACD;4CACDrB,QAAQ;4CACRC,WAAW;gDACT7B,MAAM;gDACNgC,QAAQ,EAAE;4CACZ;4CACAC,UAAU;4CACVC,aAAa;4CACbC,cAAc;4CACdc,SAAS;wCACX;wCACA;4CACEpD,OAAOC,2BAAe,CAACa,QAAQ;4CAC/BX,MAAMC,wCAAc,CAACW,cAAc;4CACnCV,OAAO;4CACPC,gBAAgB;4CAChBU,OAAO;gDACLb,MAAM;oDACJkB,IAAI;oDACJK,WAAW;gDACb;gDACAC,SAAS;gDACTX,OAAO;4CACT;wCACF;qCACD;oCACDe,QAAQ;oCACRC,WAAW;wCACT7B,MAAM;wCACNgC,QAAQ,EAAE;oCACZ;oCACAC,UAAU;oCACVC,aAAa;oCACbC,cAAc;oCACdc,SAAS;gCACX;gCACA;oCACEpD,OAAOC,2BAAe,CAACa,QAAQ;oCAC/BX,MAAMC,wCAAc,CAACW,cAAc;oCACnCV,OAAO;oCACPC,gBAAgB;oCAChBU,OAAO;wCACLb,MAAM;4CACJkB,IAAI;4CACJK,WAAW;wCACb;wCACAC,SAAS;wCACTX,OAAO;oCACT;gCACF;6BACD;4BACDe,QAAQ;4BACRC,WAAW;gCACT7B,MAAM;gCACNgC,QAAQ,EAAE;4BACZ;4BACAC,UAAU;4BACVC,aAAa;4BACbC,cAAc;4BACdc,SAAS;wBACX;wBACA;4BACEpD,OAAOC,2BAAe,CAACa,QAAQ;4BAC/BX,MAAMC,wCAAc,CAACW,cAAc;4BACnCV,OAAO;4BACPC,gBAAgB;4BAChBU,OAAO;gCACLb,MAAM;oCACJkB,IAAI;oCACJK,WAAW;gCACb;gCACAC,SAAS;gCACTX,OAAO;4BACT;wBACF;qBACD;oBACDe,QAAQ;oBACRC,WAAW;wBACT7B,MAAM;wBACNgC,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdc,SAAS;gBACX;aACD;YACDrB,QAAQ;YACRC,WAAW;gBACT7B,MAAM;gBACNgC,QAAQ,EAAE;YACZ;YACAC,UAAU;YACVC,aAAa;YACbC,cAAc;YACdc,SAAS;QACX;QACAzC,gBAAgB,IAAIZ,IAAI;YAAC;YAAS;YAAY;YAAO;SAAM;QAC3DmD,sBAAsB,IAAInD,IAAI;YAAC;YAAK;SAAI;QACxCc,UAAU;IACZ;IACA;QACEJ,aAAa;QACbwC,OAAO;QACPrC,aAAa;YAAC;SAAS;QACvBF,MAAM;YACJV,OAAOC,2BAAe,CAACsB,QAAQ;YAC/BpB,MAAMC,wCAAc,CAACoB,iBAAiB;YACtCnB,OAAO;YACPC,gBAAgB;YAChBmB,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;oBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oBAC7BvB,OAAO;oBACPC,gBAAgB;oBAChBuB,eAAe;oBACfC,QAAQ;oBACRL,UAAU;wBACR;4BACEzB,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAS;wBAC1B;qBACD;oBACDwB,QAAQ;wBACN/B,OAAOC,2BAAe,CAAC0C,UAAU;wBACjCxC,MAAMC,wCAAc,CAACiD,aAAa;wBAClChD,OAAO;wBACPC,gBAAgB;wBAChBuC,MAAM;4BACJ7C,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAY;wBAC7B;wBACAuC,OAAO;4BACL9C,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAS;wBAC1B;oBACF;oBACAyB,WAAW;wBACT7B,MAAM;wBACNgC,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdc,SAAS;gBACX;gBACA;oBACEpD,OAAOC,2BAAe,CAACa,QAAQ;oBAC/BX,MAAMC,wCAAc,CAACW,cAAc;oBACnCV,OAAO;oBACPC,gBAAgB;oBAChBU,OAAO;wBACLb,MAAM;4BACJkB,IAAI;4BACJK,WAAW;wBACb;wBACAC,SAAS;wBACTX,OAAO;oBACT;gBACF;aACD;QACH;QACAL,gBAAgB,IAAIZ,IAAI;YAAC;SAAM;QAC/BmD,sBAAsB,IAAInD,IAAI;YAAC;SAAI;QACnCc,UAAU;IACZ;IACA;QACEJ,aAAa;QACbwC,OACE;QACFrC,aAAa;YAAC;SAAU;QACxBF,MAAM;YACJV,OAAOC,2BAAe,CAACqD,MAAM;YAC7BnD,MAAMC,wCAAc,CAACmD,gBAAgB;YACrClD,OAAO;YACPC,gBAAgB;YAChBuB,eAAe;YACfC,QAAQ;YACRsB,SAAS;YACT3B,UAAU;gBACR;oBACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;oBAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oBAC7BvB,OAAO;oBACPC,gBAAgB;oBAChBuB,eAAe;oBACfC,QAAQ;oBACRL,UAAU;wBACR;4BACEzB,OAAOC,2BAAe,CAACC,UAAU;4BACjCC,MAAMC,wCAAc,CAACF,UAAU;4BAC/BG,OAAO;4BACPC,gBAAgB;4BAChBC,cAAc;gCAAC;6BAAU;wBAC3B;qBACD;oBACDwB,QAAQ;oBACRC,WAAW;wBACT7B,MAAM;wBACNgC,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdc,SAAS;gBACX;aACD;YACDI,YAAY,EAAE;YACdrB,QAAQ;gBACN;oBACEhC,MAAM;oBACNsD,YAAY;oBACZC,YAAY;wBACV1D,OAAO;wBACPG,MAAM;wBACNE,OAAO;wBACPC,gBAAgB;wBAChBmB,UAAU;4BACR;gCACEzB,OAAOC,2BAAe,CAACC,UAAU;gCACjCC,MAAMC,wCAAc,CAACF,UAAU;gCAC/BG,OAAO;gCACPC,gBAAgB;gCAChBC,cAAc;oCAAC;iCAAU;4BAC3B;4BACA;gCACEP,OAAOC,2BAAe,CAACa,QAAQ;gCAC/BX,MAAMC,wCAAc,CAACW,cAAc;gCACnCV,OAAO;gCACPC,gBAAgB;gCAChBU,OAAO;oCACLb,MAAM;wCACJkB,IAAI;wCACJK,WAAW;oCACb;oCACAC,SAAS;oCACTX,OAAO;gCACT;4BACF;yBACD;oBACH;gBACF;aACD;YACD2C,OAAO;YACPC,KAAK;YACLC,YAAY;gBACV7D,OAAOC,2BAAe,CAACa,QAAQ;gBAC/BX,MAAMC,wCAAc,CAACW,cAAc;gBACnCV,OAAO;gBACPC,gBAAgB;gBAChBU,OAAO;oBACLb,MAAM;wBACJkB,IAAI;wBACJK,WAAW;oBACb;oBACAC,SAAS;oBACTX,OAAO;gBACT;YACF;YACA8C,UAAU;YACVC,aAAa;YACbC,cAAc;YACdC,cAAc;YACdC,aAAa;YACbC,gBAAgB;YAChB/B,UAAU;QACZ;QACAzB,gBAAgB,IAAIZ,IAAI;YAAC;YAAO;SAAQ;QACxCmD,sBAAsB,IAAInD,IAAI;YAAC;SAAI;QACnCc,UAAU;IACZ;IACA;QACEJ,aAAa;QACbG,aAAa;YACX;YACA;YACA;YACA;SACD;QACDqC,OACE;QACFvC,MAAM;YACJV,OAAOC,2BAAe,CAACmE,QAAQ;YAC/BjE,MAAMC,wCAAc,CAACgE,QAAQ;YAC7B/D,OAAO;YACPC,gBAAgB;YAEhB+D,UAAU;gBACR3D,MAAM;oBACJP,MAAM;oBACNmE,WAAW,EAAE;oBACbC,SAAS;wBACPC,KAAK,EAAE;oBACT;oBACAC,aAAa;wBACX;4BACEzE,OAAOC,2BAAe,CAACsC,IAAI;4BAC3BpC,MAAMC,wCAAc,CAACoC,SAAS;4BAC9BnC,OAAO;4BACPC,gBAAgB;4BAChBmC,aAAa;gCACX;oCACEC,WAAW;wCACT1C,OAAOC,2BAAe,CAAC0C,UAAU;wCACjCxC,MAAMC,wCAAc,CAACwC,mBAAmB;wCACxCvC,OAAO;wCACPC,gBAAgB;wCAChBuC,MAAM;4CACJ7C,OAAOC,2BAAe,CAAC2B,QAAQ;4CAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;4CAC7BvB,OAAO;4CACPC,gBAAgB;4CAChBuB,eAAe;4CACfC,QAAQ;4CACRL,UAAU;gDACR;oDACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;oDAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oDAC7BvB,OAAO;oDACPC,gBAAgB;oDAChBuB,eAAe;oDACfC,QAAQ;oDACRL,UAAU;wDACR;4DACEzB,OAAOC,2BAAe,CAACsC,IAAI;4DAC3BpC,MAAMC,wCAAc,CAACoC,SAAS;4DAC9BnC,OAAO;4DACPC,gBAAgB;4DAChBmC,aAAa;gEACX;oEACEC,WAAW;wEACT1C,OAAOC,2BAAe,CAAC0C,UAAU;wEACjCxC,MAAMC,wCAAc,CAACiD,aAAa;wEAClChD,OAAO;wEACPC,gBAAgB;wEAChBuC,MAAM;4EACJ7C,OAAOC,2BAAe,CAACC,UAAU;4EACjCC,MAAMC,wCAAc,CAACF,UAAU;4EAC/BG,OAAO;4EACPC,gBAAgB;4EAChBC,cAAc;gFAAC;6EAAY;wEAC7B;wEACAuC,OAAO;4EACL9C,OAAOC,2BAAe,CAACa,QAAQ;4EAC/BX,MAAMC,wCAAc,CAACW,cAAc;4EACnCV,OAAO;4EACPC,gBAAgB;4EAChBU,OAAO;gFACLb,MAAM;oFACJkB,IAAI;oFACJK,WAAW;gFACb;gFACAC,SAAS;gFACTX,OAAO;4EACT;wEACF;oEACF;oEACA+B,WAAW;wEACT/C,OAAOC,2BAAe,CAACC,UAAU;wEACjCC,MAAMC,wCAAc,CAACF,UAAU;wEAC/BG,OAAO;wEACPC,gBAAgB;wEAChBC,cAAc;4EAAC;yEAAK;oEACtB;gEACF;6DACD;4DACDyC,WAAW;gEACThD,OAAOC,2BAAe,CAACa,QAAQ;gEAC/BX,MAAMC,wCAAc,CAACW,cAAc;gEACnCV,OAAO;gEACPC,gBAAgB;gEAChBU,OAAO;oEACLb,MAAM;wEACJkB,IAAI;wEACJK,WAAW;oEACb;oEACAC,SAAS;gEACX;4DACF;wDACF;qDACD;oDACDI,QAAQ;oDACRC,WAAW;wDACT7B,MAAM;wDACNgC,QAAQ,EAAE;oDACZ;oDACAC,UAAU;oDACVC,aAAa;oDACbC,cAAc;oDACdc,SAAS;gDACX;gDACA;oDACEpD,OAAOC,2BAAe,CAAC2B,QAAQ;oDAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;oDAC7BvB,OAAO;oDACPC,gBAAgB;oDAChBuB,eAAe;oDACfC,QAAQ;oDACRL,UAAU;wDACR;4DACEzB,OAAOC,2BAAe,CAACsC,IAAI;4DAC3BpC,MAAMC,wCAAc,CAACoC,SAAS;4DAC9BnC,OAAO;4DACPC,gBAAgB;4DAChBmC,aAAa;gEACX;oEACEC,WAAW;wEACT1C,OAAOC,2BAAe,CAACyE,WAAW;wEAClCvE,MAAMC,wCAAc,CAACuE,eAAe;wEACpCtE,OAAO;wEACPC,gBAAgB;wEAChBmB,UAAU;4EACR;gFACEzB,OAAOC,2BAAe,CAAC0C,UAAU;gFACjCxC,MAAMC,wCAAc,CAACiD,aAAa;gFAClChD,OAAO;gFACPC,gBAAgB;gFAChBuC,MAAM;oFACJ7C,OAAOC,2BAAe,CAACC,UAAU;oFACjCC,MAAMC,wCAAc,CAACF,UAAU;oFAC/BG,OAAO;oFACPC,gBAAgB;oFAChBC,cAAc;wFAAC;qFAAY;gFAC7B;gFACAuC,OAAO;oFACL9C,OAAOC,2BAAe,CAACa,QAAQ;oFAC/BX,MAAMC,wCAAc,CAACW,cAAc;oFACnCV,OAAO;oFACPC,gBAAgB;oFAChBU,OAAO;wFACLb,MAAM;4FACJkB,IAAI;4FACJK,WAAW;wFACb;wFACAC,SAAS;wFACTX,OAAO;oFACT;gFACF;4EACF;4EACA;gFACEhB,OAAOC,2BAAe,CAAC0C,UAAU;gFACjCxC,MAAM;gFACNE,OAAO;gFACPC,gBAAgB;gFAChBuC,MAAM;oFACJ7C,OAAO;oFACPG,MAAM;oFACNE,OAAO;oFACPC,gBAAgB;oFAChBuB,eAAe;oFACfC,QAAQ;oFACRL,UAAU;wFACR;4FACEzB,OAAOC,2BAAe,CAACC,UAAU;4FACjCC,MAAMC,wCAAc,CAACF,UAAU;4FAC/BG,OAAO;4FACPC,gBAAgB;4FAChBC,cAAc;gGACZ;6FACD;wFACH;qFACD;oFACDwB,QAAQ;oFACRC,WAAW;wFACT7B,MAAM;wFACNgC,QAAQ,EAAE;oFACZ;oFACAC,UAAU;oFACVC,aAAa;oFACbC,cAAc;oFACdc,SAAS;gFACX;gFACAN,OAAO;oFACL9C,OAAOC,2BAAe,CAACa,QAAQ;oFAC/BX,MAAMC,wCAAc,CAACW,cAAc;oFACnCV,OAAO;oFACPC,gBAAgB;oFAChBU,OAAO;wFACLb,MAAM;4FACJkB,IAAI;4FACJK,WAAW;wFACb;wFACAC,SAAS;wFACTX,OAAO;oFACT;gFACF;4EACF;4EACA;gFACEhB,OAAO;gFACPG,MAAM;gFACNE,OAAO;gFACPC,gBAAgB;gFAChBmB,UAAU;oFACR;wFACEzB,OAAOC,2BAAe,CAAC0C,UAAU;wFACjCxC,MAAM;wFACNE,OAAO;wFACPC,gBAAgB;wFAChBuC,MAAM;4FACJ7C,OAAOC,2BAAe,CAACC,UAAU;4FACjCC,MAAMC,wCAAc,CAACF,UAAU;4FAC/BG,OAAO;4FACPC,gBAAgB;4FAChBC,cAAc;gGACZ;6FACD;wFACH;wFACAuC,OAAO;4FACL9C,OAAOC,2BAAe,CAACa,QAAQ;4FAC/BX,MAAMC,wCAAc,CAACW,cAAc;4FACnCV,OAAO;4FACPC,gBAAgB;4FAChBU,OAAO;gGACLb,MAAM;oGACJkB,IAAI;oGACJK,WAAW;gGACb;gGACAC,SAAS;gGACTX,OAAO;4FACT;wFACF;oFACF;oFACA;wFACEhB,OAAO;wFACPG,MAAM;wFACNE,OAAO;wFACPC,gBAAgB;wFAChBmB,UAAU;4FACR;gGACEzB,OACEC,2BAAe,CAACC,UAAU;gGAC5BC,MAAMC,wCAAc,CAACF,UAAU;gGAC/BG,OAAO;gGACPC,gBAAgB;gGAChBC,cAAc;oGACZ;iGACD;4FACH;yFACD;oFACH;iFACD;4EACH;yEACD;oEACH;oEACAwC,WAAW;wEACT/C,OAAOC,2BAAe,CAACC,UAAU;wEACjCC,MAAMC,wCAAc,CAACF,UAAU;wEAC/BG,OAAO;wEACPC,gBAAgB;wEAChBC,cAAc;4EAAC;yEAAK;oEACtB;gEACF;6DACD;4DACDyC,WAAW;gEACThD,OAAOC,2BAAe,CAACa,QAAQ;gEAC/BX,MAAMC,wCAAc,CAACW,cAAc;gEACnCV,OAAO;gEACPC,gBAAgB;gEAChBU,OAAO;oEACLb,MAAM;wEACJkB,IAAI;wEACJK,WAAW;oEACb;oEACAC,SAAS;gEACX;4DACF;wDACF;qDACD;oDACDI,QAAQ;oDACRC,WAAW;wDACT7B,MAAM;wDACNgC,QAAQ,EAAE;oDACZ;oDACAC,UAAU;oDACVC,aAAa;oDACbC,cAAc;oDACdc,SAAS;gDACX;6CACD;4CACDrB,QAAQ;4CACRC,WAAW;gDACT7B,MAAM;gDACNgC,QAAQ,EAAE;4CACZ;4CACAC,UAAU;4CACVC,aAAa;4CACbC,cAAc;4CACdc,SAAS;wCACX;wCACAN,OAAO;4CACL9C,OAAOC,2BAAe,CAACa,QAAQ;4CAC/BX,MAAMC,wCAAc,CAACW,cAAc;4CACnCV,OAAO;4CACPC,gBAAgB;4CAChBU,OAAO;gDACLb,MAAM;oDACJkB,IAAI;oDACJK,WAAW;gDACb;gDACAC,SAAS;gDACTX,OAAO;4CACT;wCACF;oCACF;oCACA+B,WAAW;wCACT/C,OAAOC,2BAAe,CAAC2B,QAAQ;wCAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;wCAC7BvB,OAAO;wCACPC,gBAAgB;wCAChBuB,eAAe;wCACfC,QAAQ;wCACRL,UAAU;4CACR;gDACEzB,OAAOC,2BAAe,CAACa,QAAQ;gDAC/BX,MAAMC,wCAAc,CAACW,cAAc;gDACnCV,OAAO;gDACPC,gBAAgB;gDAChBU,OAAO;oDACLb,MAAM;wDACJkB,IAAI;wDACJK,WAAW;oDACb;oDACAC,SAAS;oDACTX,OAAO;gDACT;4CACF;4CACA;gDACEhB,OAAOC,2BAAe,CAAC2B,QAAQ;gDAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;gDAC7BvB,OAAO;gDACPC,gBAAgB;gDAChBuB,eAAe;gDACfC,QAAQ;gDACRL,UAAU;oDACR;wDACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;wDAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;wDAC7BvB,OAAO;wDACPC,gBAAgB;wDAChBuB,eAAe;wDACfC,QAAQ;wDACRL,UAAU;4DACR;gEACEzB,OAAOC,2BAAe,CAAC2B,QAAQ;gEAC/BzB,MAAMC,wCAAc,CAACwB,QAAQ;gEAC7BvB,OAAO;gEACPC,gBAAgB;gEAChBuB,eAAe;gEACfC,QAAQ;gEACRL,UAAU;oEACR;wEACEzB,OAAOC,2BAAe,CAACsC,IAAI;wEAC3BpC,MAAMC,wCAAc,CAACoC,SAAS;wEAC9BnC,OAAO;wEACPC,gBAAgB;wEAChBmC,aAAa;4EACX;gFACEC,WAAW;oFACT1C,OAAOC,2BAAe,CAAC0C,UAAU;oFACjCxC,MAAMC,wCAAc,CAACiD,aAAa;oFAClChD,OAAO;oFACPC,gBAAgB;oFAChBuC,MAAM;wFACJ7C,OAAOC,2BAAe,CAACC,UAAU;wFACjCC,MAAMC,wCAAc,CAACF,UAAU;wFAC/BG,OAAO;wFACPC,gBAAgB;wFAChBC,cAAc;4FAAC;yFAAY;oFAC7B;oFACAuC,OAAO;wFACL9C,OAAOC,2BAAe,CAACa,QAAQ;wFAC/BX,MAAMC,wCAAc,CAACW,cAAc;wFACnCV,OAAO;wFACPC,gBAAgB;wFAChBU,OAAO;4FACLb,MAAM;gGACJkB,IAAI;gGACJK,WAAW;4FACb;4FACAC,SAAS;4FACTX,OAAO;wFACT;oFACF;gFACF;gFACA+B,WAAW;oFACT/C,OAAOC,2BAAe,CAACC,UAAU;oFACjCC,MAAMC,wCAAc,CAACF,UAAU;oFAC/BG,OAAO;oFACPC,gBAAgB;oFAChBC,cAAc;wFAAC;qFAAK;gFACtB;4EACF;yEACD;wEACDyC,WAAW;4EACThD,OAAOC,2BAAe,CAACa,QAAQ;4EAC/BX,MAAMC,wCAAc,CAACW,cAAc;4EACnCV,OAAO;4EACPC,gBAAgB;4EAChBU,OAAO;gFACLb,MAAM;oFACJkB,IAAI;oFACJK,WAAW;gFACb;gFACAC,SAAS;4EACX;wEACF;oEACF;iEACD;gEACDI,QAAQ;gEACRC,WAAW;oEACT7B,MAAM;oEACNgC,QAAQ,EAAE;gEACZ;gEACAC,UAAU;gEACVC,aAAa;gEACbC,cAAc;gEACdc,SAAS;4DACX;4DACA;gEACEpD,OAAOC,2BAAe,CAACa,QAAQ;gEAC/BX,MAAMC,wCAAc,CAACW,cAAc;gEACnCV,OAAO;gEACPC,gBAAgB;gEAChBU,OAAO;oEACLb,MAAM;wEACJkB,IAAI;wEACJK,WAAW;4EACTvB,MAAM;4EACNE,OAAO;4EACPiE,WAAW,EAAE;4EACbM,OAAO;4EACPC,OAAO;wEACT;oEACF;oEACAlD,SAAS;oEACTX,OAAO;gEACT;4DACF;yDACD;wDACDe,QAAQ;wDACRC,WAAW;4DACT7B,MAAM;4DACNgC,QAAQ,EAAE;wDACZ;wDACAC,UAAU;wDACVC,aAAa;wDACbC,cAAc;wDACdc,SAAS;oDACX;oDACA;wDACEpD,OAAO;wDACPG,MAAM;wDACNE,OAAO;wDACPC,gBAAgB;wDAChBuB,eAAe;wDACfC,QAAQ;wDACRL,UAAU;4DACR;gEACEzB,OAAO;gEACPG,MAAM;gEACNE,OAAO;gEACPC,gBAAgB;gEAChBuB,eAAe;gEACfC,QAAQ;gEACRL,UAAU;oEACR;wEACEzB,OAAO;wEACPG,MAAM;wEACNE,OAAO;wEACPC,gBAAgB;wEAChBmC,aAAa;4EACX;gFACEC,WAAW;oFACT1C,OAAOC,2BAAe,CAAC0C,UAAU;oFACjCxC,MAAM;oFACNE,OAAO;oFACPC,gBAAgB;oFAChBuC,MAAM;wFACJ7C,OAAOC,2BAAe,CAACC,UAAU;wFACjCC,MAAMC,wCAAc,CAACF,UAAU;wFAC/BG,OAAO;wFACPC,gBAAgB;wFAChBC,cAAc;4FAAC;yFAAY;oFAC7B;oFACAuC,OAAO;wFACL9C,OAAOC,2BAAe,CAACa,QAAQ;wFAC/BX,MAAMC,wCAAc,CAACW,cAAc;wFACnCV,OAAO;wFACPC,gBAAgB;wFAChBU,OAAO;4FACLb,MAAM;gGACJkB,IAAI;gGACJK,WAAW;4FACb;4FACAC,SAAS;4FACTX,OAAO;wFACT;oFACF;gFACF;gFACA+B,WAAW;oFACT/C,OAAOC,2BAAe,CAACC,UAAU;oFACjCC,MAAMC,wCAAc,CAACF,UAAU;oFAC/BG,OAAO;oFACPC,gBAAgB;oFAChBC,cAAc;wFAAC;qFAAK;gFACtB;4EACF;yEACD;wEACDyC,WAAW;4EACThD,OAAOC,2BAAe,CAACa,QAAQ;4EAC/BX,MAAMC,wCAAc,CAACW,cAAc;4EACnCV,OAAO;4EACPC,gBAAgB;4EAChBU,OAAO;gFACLb,MAAM;oFACJkB,IAAI;oFACJK,WAAW;gFACb;gFACAC,SAAS;4EACX;wEACF;oEACF;iEACD;gEACDI,QAAQ;gEACRC,WAAW;oEACT7B,MAAM;oEACNgC,QAAQ,EAAE;gEACZ;gEACAC,UAAU;gEACVC,aAAa;gEACbC,cAAc;gEACdc,SAAS;4DACX;4DACA;gEACEpD,OAAO;gEACPG,MAAM;gEACNE,OAAO;gEACPC,gBAAgB;gEAChBuB,eAAe;gEACfC,QAAQ;gEACRL,UAAU;oEACR;wEACEzB,OAAO;wEACPG,MAAM;wEACNE,OAAO;wEACPC,gBAAgB;wEAChBmC,aAAa;4EACX;gFACEC,WAAW;oFACT1C,OAAO;oFACPG,MAAM;oFACNE,OAAO;oFACPC,gBAAgB;oFAChBmB,UAAU;wFACR;4FACEzB,OAAOC,2BAAe,CAAC0C,UAAU;4FACjCxC,MAAM;4FACNE,OAAO;4FACPC,gBAAgB;4FAChBuC,MAAM;gGACJ7C,OACEC,2BAAe,CAACC,UAAU;gGAC5BC,MAAMC,wCAAc,CAACF,UAAU;gGAC/BG,OAAO;gGACPC,gBAAgB;gGAChBC,cAAc;oGAAC;iGAAY;4FAC7B;4FACAuC,OAAO;gGACL9C,OAAOC,2BAAe,CAACa,QAAQ;gGAC/BX,MAAMC,wCAAc,CAACW,cAAc;gGACnCV,OAAO;gGACPC,gBAAgB;gGAChBU,OAAO;oGACLb,MAAM;wGACJkB,IAAI;wGACJK,WAAW;oGACb;oGACAC,SAAS;oGACTX,OAAO;gGACT;4FACF;wFACF;wFACA;4FACEhB,OAAOC,2BAAe,CAAC0C,UAAU;4FACjCxC,MAAM;4FACNE,OAAO;4FACPC,gBAAgB;4FAChBuC,MAAM;gGACJ7C,OAAO;gGACPG,MAAM;gGACNE,OAAO;gGACPC,gBAAgB;gGAChBuB,eAAe;gGACfC,QAAQ;gGACRL,UAAU;oGACR;wGACEzB,OACEC,2BAAe,CAACC,UAAU;wGAC5BC,MAAMC,wCAAc,CAACF,UAAU;wGAC/BG,OAAO;wGACPC,gBAAgB;wGAChBC,cAAc;4GACZ;yGACD;oGACH;iGACD;gGACDwB,QAAQ;gGACRC,WAAW;oGACT7B,MAAM;oGACNgC,QAAQ,EAAE;gGACZ;gGACAC,UAAU;gGACVC,aAAa;gGACbC,cAAc;gGACdc,SAAS;4FACX;4FACAN,OAAO;gGACL9C,OAAOC,2BAAe,CAACa,QAAQ;gGAC/BX,MAAMC,wCAAc,CAACW,cAAc;gGACnCV,OAAO;gGACPC,gBAAgB;gGAChBU,OAAO;oGACLb,MAAM;wGACJkB,IAAI;wGACJK,WAAW;oGACb;oGACAC,SAAS;oGACTX,OAAO;gGACT;4FACF;wFACF;wFACA;4FACEhB,OAAO;4FACPG,MAAM;4FACNE,OAAO;4FACPC,gBAAgB;4FAChBmB,UAAU;gGACR;oGACEzB,OACEC,2BAAe,CAAC0C,UAAU;oGAC5BxC,MAAM;oGACNE,OAAO;oGACPC,gBAAgB;oGAChBuC,MAAM;wGACJ7C,OACEC,2BAAe,CAACC,UAAU;wGAC5BC,MAAMC,wCAAc,CAACF,UAAU;wGAC/BG,OAAO;wGACPC,gBAAgB;wGAChBC,cAAc;4GACZ;yGACD;oGACH;oGACAuC,OAAO;wGACL9C,OACEC,2BAAe,CAACa,QAAQ;wGAC1BX,MAAMC,wCAAc,CAACW,cAAc;wGACnCV,OAAO;wGACPC,gBAAgB;wGAChBU,OAAO;4GACLb,MAAM;gHACJkB,IAAI;gHACJK,WAAW;4GACb;4GACAC,SAAS;4GACTX,OAAO;wGACT;oGACF;gGACF;gGACA;oGACEhB,OAAO;oGACPG,MAAM;oGACNE,OAAO;oGACPC,gBAAgB;oGAChBmB,UAAU;wGACR;4GACEzB,OACEC,2BAAe,CAACC,UAAU;4GAC5BC,MAAMC,wCAAc,CAACF,UAAU;4GAC/BG,OAAO;4GACPC,gBAAgB;4GAChBC,cAAc;gHACZ;6GACD;wGACH;qGACD;gGACH;6FACD;wFACH;qFACD;gFACH;gFACAwC,WAAW;oFACT/C,OAAOC,2BAAe,CAACC,UAAU;oFACjCC,MAAMC,wCAAc,CAACF,UAAU;oFAC/BG,OAAO;oFACPC,gBAAgB;oFAChBC,cAAc;wFAAC;qFAAK;gFACtB;4EACF;yEACD;wEACDyC,WAAW;4EACThD,OAAOC,2BAAe,CAACa,QAAQ;4EAC/BX,MAAMC,wCAAc,CAACW,cAAc;4EACnCV,OAAO;4EACPC,gBAAgB;4EAChBU,OAAO;gFACLb,MAAM;oFACJkB,IAAI;oFACJK,WAAW;gFACb;gFACAC,SAAS;4EACX;wEACF;oEACF;iEACD;gEACDI,QAAQ;gEACRC,WAAW;oEACT7B,MAAM;oEACNgC,QAAQ,EAAE;gEACZ;gEACAC,UAAU;gEACVC,aAAa;gEACbC,cAAc;gEACdc,SAAS;4DACX;yDACD;wDACDrB,QAAQ;wDACRC,WAAW;4DACT7B,MAAM;4DACNgC,QAAQ,EAAE;wDACZ;wDACAC,UAAU;wDACVC,aAAa;wDACbC,cAAc;wDACdc,SAAS;oDACX;iDACD;gDACDrB,QAAQ;gDACRC,WAAW;oDACT7B,MAAM;oDACNgC,QAAQ,EAAE;gDACZ;gDACAC,UAAU;gDACVC,aAAa;gDACbC,cAAc;gDACdc,SAAS;4CACX;yCACD;wCACDrB,QAAQ;wCACRC,WAAW;4CACT7B,MAAM;4CACNgC,QAAQ,EAAE;wCACZ;wCACAC,UAAU;wCACVC,aAAa;wCACbC,cAAc;wCACdc,SAAS;oCACX;gCACF;6BACD;4BACDJ,WAAW;gCACThD,OAAOC,2BAAe,CAACa,QAAQ;gCAC/BX,MAAMC,wCAAc,CAACW,cAAc;gCACnCV,OAAO;gCACPC,gBAAgB;gCAChBU,OAAO;oCACLb,MAAM;wCACJkB,IAAI;wCACJK,WAAW;oCACb;oCACAC,SAAS;gCACX;4BACF;wBACF;qBACD;oBACDmD,YAAY;wBACV3E,MAAM;wBACNE,OAAO;wBACP0E,QAAQ;wBACRzE,gBAAgB;oBAClB;oBACA0E,cAAc;oBACdC,mBAAmB,EAAE;oBACrBC,YAAY,EAAE;oBACdC,oBAAoB;oBACpBC,QAAQ;oBACRL,QAAQ;oBACRM,SAAS;gBACX;YACF;YACAlE,OAAO;YACPmE,iBAAiB;QACnB;QACA3E,gBAAgB,IAAIZ,IAAI;YAAC;YAAS;SAAa;QAC/CmD,sBAAsB,IAAInD,IAAI;YAAC;YAAK;YAAK;YAAK;SAAI;QAClDc,UAAU;IACZ;CACD"}
@@ -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"}
@@ -19,6 +19,7 @@ _export(exports, {
19
19
  const _index = require("../../types/duckdb-serialization-types/index");
20
20
  const _cubetypetoduckdbtype = require("../../utils/cube-type-to-duckdb-type");
21
21
  const _gettypeinfo = require("../../utils/get-type-info");
22
+ const _constant = require("../constant");
22
23
  const baseDuckdbCondition = (columnName, type, value, memberInfo)=>{
23
24
  return {
24
25
  class: _index.ExpressionClass.COMPARISON,
@@ -28,7 +29,7 @@ const baseDuckdbCondition = (columnName, type, value, memberInfo)=>{
28
29
  class: _index.ExpressionClass.COLUMN_REF,
29
30
  type: _index.ExpressionType.COLUMN_REF,
30
31
  alias: '',
31
- column_names: columnName.split('.')
32
+ column_names: columnName.split(_constant.COLUMN_NAME_DELIMITER)
32
33
  },
33
34
  right: {
34
35
  class: _index.ExpressionClass.CONSTANT,
@@ -63,7 +64,7 @@ const baseArrayDuckdbCondition = (columnName, type, value, memberInfo)=>{
63
64
  class: _index.ExpressionClass.COLUMN_REF,
64
65
  type: _index.ExpressionType.COLUMN_REF,
65
66
  alias: '',
66
- column_names: columnName.split('.')
67
+ column_names: columnName.split(_constant.COLUMN_NAME_DELIMITER)
67
68
  }
68
69
  ],
69
70
  filter: null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-builder.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/index';\n\nimport {\n ExpressionClass,\n ExpressionType,\n QueryNodeType,\n SubqueryType,\n} from '../../types/duckdb-serialization-types/index';\nimport { CUBE_TYPE_TO_DUCKDB_TYPE } from '../../utils/cube-type-to-duckdb-type';\nimport { convertFloatToInt, getTypeInfo } from '../../utils/get-type-info';\n\nexport const baseDuckdbCondition = (\n columnName: string,\n type: ExpressionType,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.COMPARISON,\n type: type,\n alias: '',\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split('.'),\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n },\n };\n};\n\nexport const baseArrayDuckdbCondition = (\n columnName: string,\n type: ExpressionType,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n subquery_type: SubqueryType.ANY,\n subquery: {\n node: {\n type: QueryNodeType.SELECT_NODE,\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: 'unnest',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split('.'),\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 from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\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: {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(value, memberInfo),\n },\n comparison_type: type,\n };\n};\n\nexport const valueBuilder = (\n value: string,\n memberInfo: Measure | Dimension\n) => {\n switch (memberInfo.type) {\n case 'string':\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n\n case 'number': {\n const parsedValue = parseFloat(value);\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: getTypeInfo(parsedValue),\n },\n is_null: false,\n value: convertFloatToInt(parsedValue),\n };\n }\n case 'boolean': {\n const parsedValue = value === 'true';\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: parsedValue,\n };\n }\n case 'time':\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n\n default:\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE.string,\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n }\n};\n"],"names":["baseDuckdbCondition","baseArrayDuckdbCondition","valueBuilder","columnName","type","value","memberInfo","class","ExpressionClass","COMPARISON","alias","left","COLUMN_REF","ExpressionType","column_names","split","right","CONSTANT","VALUE_CONSTANT","SUBQUERY","subquery_type","SubqueryType","ANY","subquery","node","QueryNodeType","SELECT_NODE","modifiers","cte_map","map","select_list","FUNCTION","function_name","schema","children","filter","order_bys","orders","distinct","is_operator","export_state","catalog","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","child","comparison_type","id","CUBE_TYPE_TO_DUCKDB_TYPE","type_info","is_null","parsedValue","parseFloat","getTypeInfo","convertFloatToInt","string"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-builder.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/index';\n\nimport {\n ExpressionClass,\n ExpressionType,\n QueryNodeType,\n SubqueryType,\n} from '../../types/duckdb-serialization-types/index';\nimport { CUBE_TYPE_TO_DUCKDB_TYPE } from '../../utils/cube-type-to-duckdb-type';\nimport { convertFloatToInt, getTypeInfo } from '../../utils/get-type-info';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\n\nexport const baseDuckdbCondition = (\n columnName: string,\n type: ExpressionType,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.COMPARISON,\n type: type,\n alias: '',\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n },\n };\n};\n\nexport const baseArrayDuckdbCondition = (\n columnName: string,\n type: ExpressionType,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n subquery_type: SubqueryType.ANY,\n subquery: {\n node: {\n type: QueryNodeType.SELECT_NODE,\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: 'unnest',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\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 from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\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: {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(value, memberInfo),\n },\n comparison_type: type,\n };\n};\n\nexport const valueBuilder = (\n value: string,\n memberInfo: Measure | Dimension\n) => {\n switch (memberInfo.type) {\n case 'string':\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n\n case 'number': {\n const parsedValue = parseFloat(value);\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: getTypeInfo(parsedValue),\n },\n is_null: false,\n value: convertFloatToInt(parsedValue),\n };\n }\n case 'boolean': {\n const parsedValue = value === 'true';\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: parsedValue,\n };\n }\n case 'time':\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n\n default:\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE.string,\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n }\n};\n"],"names":["baseDuckdbCondition","baseArrayDuckdbCondition","valueBuilder","columnName","type","value","memberInfo","class","ExpressionClass","COMPARISON","alias","left","COLUMN_REF","ExpressionType","column_names","split","COLUMN_NAME_DELIMITER","right","CONSTANT","VALUE_CONSTANT","SUBQUERY","subquery_type","SubqueryType","ANY","subquery","node","QueryNodeType","SELECT_NODE","modifiers","cte_map","map","select_list","FUNCTION","function_name","schema","children","filter","order_bys","orders","distinct","is_operator","export_state","catalog","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","child","comparison_type","id","CUBE_TYPE_TO_DUCKDB_TYPE","type_info","is_null","parsedValue","parseFloat","getTypeInfo","convertFloatToInt","string"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const COLUMN_NAME_DELIMITER = ".";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "COLUMN_NAME_DELIMITER", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return COLUMN_NAME_DELIMITER;
6
+ }
7
+ });
8
+ const COLUMN_NAME_DELIMITER = '.';
9
+
10
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/constant.ts"],"sourcesContent":["export const COLUMN_NAME_DELIMITER = '.';\n"],"names":["COLUMN_NAME_DELIMITER"],"mappings":";+BAAaA;;;eAAAA;;;AAAN,MAAMA,wBAAwB"}
@@ -15,6 +15,7 @@ _export(exports, {
15
15
  });
16
16
  const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
17
17
  const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
18
+ const _constant = require("../constant");
18
19
  const _or = require("../or/or");
19
20
  const containsDuckdbCondition = (columnName, value, memberInfo)=>{
20
21
  return {
@@ -28,7 +29,7 @@ const containsDuckdbCondition = (columnName, value, memberInfo)=>{
28
29
  class: 'COLUMN_REF',
29
30
  type: 'COLUMN_REF',
30
31
  alias: '',
31
- column_names: columnName.split('.')
32
+ column_names: columnName.split(_constant.COLUMN_NAME_DELIMITER)
32
33
  },
33
34
  {
34
35
  class: 'CONSTANT',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/contains/contains.ts"],"sourcesContent":["import { Member, QueryFilter } from '../../types/cube-types/query';\nimport { Dimension, Measure } from '../../types/cube-types/table';\n\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport interface ContainsFilters extends QueryFilter {\n member: Member;\n operator: 'contains';\n values: string[];\n}\n\nexport const containsDuckdbCondition = (\n columnName: string,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '~~*',\n schema: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split('.'),\n },\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(`%${value}%`, memberInfo),\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n};\n\nexport const containsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Contains filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple Contains condition\n */\n if (values.length === 1) {\n return containsDuckdbCondition(member, values[0], memberInfo);\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n containsDuckdbCondition(member, value, memberInfo)\n );\n });\n return orCondition;\n};\n"],"names":["containsDuckdbCondition","containsTransform","columnName","value","memberInfo","class","ExpressionClass","FUNCTION","type","ExpressionType","alias","function_name","schema","children","column_names","split","valueBuilder","filter","order_bys","orders","distinct","is_operator","export_state","catalog","query","member","values","length","Error","orCondition","orDuckdbCondition","forEach","push"],"mappings":";;;;;;;;IAiBaA,uBAAuB;eAAvBA;;IAqCAC,iBAAiB;eAAjBA;;;4BAhDN;sCACsB;oBAEK;AAQ3B,MAAMD,0BAA0B,CACrCE,YACAC,OACAC;IAEA,OAAO;QACLC,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACF,QAAQ;QAC7BG,OAAO;QACPC,eAAe;QACfC,QAAQ;QACRC,UAAU;YACR;gBACER,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPI,cAAcZ,WAAWa,KAAK,CAAC;YACjC;YACA;gBACEV,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPP,OAAOa,IAAAA,kCAAY,EAAC,CAAC,CAAC,EAAEb,MAAM,CAAC,CAAC,EAAEC;YACpC;SACD;QACDa,QAAQ;QACRC,WAAW;YACTV,MAAM;YACNW,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;AACF;AAEO,MAAMtB,oBAAoD,CAACuB;IAChE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEtB,UAAU,EAAE,GAAGoB;IAEvC,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAO3B,wBAAwByB,QAAQC,MAAM,CAAC,EAAE,EAAEtB;IACpD;IAEA;;GAEC,GACD,MAAMyB,cAAcC,IAAAA,qBAAiB;IACrCJ,OAAOK,OAAO,CAAC,CAAC5B;QACd0B,YAAYhB,QAAQ,CAACmB,IAAI,CACvBhC,wBAAwByB,QAAQtB,OAAOC;IAE3C;IACA,OAAOyB;AACT"}
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/contains/contains.ts"],"sourcesContent":["import { Member, QueryFilter } from '../../types/cube-types/query';\nimport { Dimension, Measure } from '../../types/cube-types/table';\n\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport interface ContainsFilters extends QueryFilter {\n member: Member;\n operator: 'contains';\n values: string[];\n}\n\nexport const containsDuckdbCondition = (\n columnName: string,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '~~*',\n schema: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(`%${value}%`, memberInfo),\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n};\n\nexport const containsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Contains filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple Contains condition\n */\n if (values.length === 1) {\n return containsDuckdbCondition(member, values[0], memberInfo);\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n containsDuckdbCondition(member, value, memberInfo)\n );\n });\n return orCondition;\n};\n"],"names":["containsDuckdbCondition","containsTransform","columnName","value","memberInfo","class","ExpressionClass","FUNCTION","type","ExpressionType","alias","function_name","schema","children","column_names","split","COLUMN_NAME_DELIMITER","valueBuilder","filter","order_bys","orders","distinct","is_operator","export_state","catalog","query","member","values","length","Error","orCondition","orDuckdbCondition","forEach","push"],"mappings":";;;;;;;;IAkBaA,uBAAuB;eAAvBA;;IAqCAC,iBAAiB;eAAjBA;;;4BAjDN;sCACsB;0BACS;oBAEJ;AAQ3B,MAAMD,0BAA0B,CACrCE,YACAC,OACAC;IAEA,OAAO;QACLC,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACF,QAAQ;QAC7BG,OAAO;QACPC,eAAe;QACfC,QAAQ;QACRC,UAAU;YACR;gBACER,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPI,cAAcZ,WAAWa,KAAK,CAACC,+BAAqB;YACtD;YACA;gBACEX,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPP,OAAOc,IAAAA,kCAAY,EAAC,CAAC,CAAC,EAAEd,MAAM,CAAC,CAAC,EAAEC;YACpC;SACD;QACDc,QAAQ;QACRC,WAAW;YACTX,MAAM;YACNY,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;AACF;AAEO,MAAMvB,oBAAoD,CAACwB;IAChE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEvB,UAAU,EAAE,GAAGqB;IAEvC,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAO5B,wBAAwB0B,QAAQC,MAAM,CAAC,EAAE,EAAEvB;IACpD;IAEA;;GAEC,GACD,MAAM0B,cAAcC,IAAAA,qBAAiB;IACrCJ,OAAOK,OAAO,CAAC,CAAC7B;QACd2B,YAAYjB,QAAQ,CAACoB,IAAI,CACvBjC,wBAAwB0B,QAAQvB,OAAOC;IAE3C;IACA,OAAO0B;AACT"}
@@ -1,2 +1,2 @@
1
- import { CubeToParseExpressionTransform } from "../factory";
1
+ import { CubeToParseExpressionTransform } from '../factory';
2
2
  export declare const inTransform: CubeToParseExpressionTransform;
@@ -7,49 +7,50 @@ Object.defineProperty(exports, "inTransform", {
7
7
  });
8
8
  const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
9
  const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
10
+ const _constant = require("../constant");
10
11
  const inDuckDbCondition = (columnName, values, memberInfo)=>{
11
12
  const sqlTreeValues = values.map((value)=>{
12
13
  return {
13
14
  class: _Expression.ExpressionClass.CONSTANT,
14
15
  type: _Expression.ExpressionType.VALUE_CONSTANT,
15
- alias: "",
16
+ alias: '',
16
17
  value: (0, _baseconditionbuilder.valueBuilder)(value, memberInfo)
17
18
  };
18
19
  });
19
20
  const columnRef = {
20
- class: "COLUMN_REF",
21
- type: "COLUMN_REF",
22
- alias: "",
23
- column_names: columnName.split('.')
21
+ class: 'COLUMN_REF',
22
+ type: 'COLUMN_REF',
23
+ alias: '',
24
+ column_names: columnName.split(_constant.COLUMN_NAME_DELIMITER)
24
25
  };
25
26
  switch(memberInfo.type){
26
27
  case 'number_array':
27
28
  case 'string_array':
28
29
  {
29
30
  return {
30
- "class": _Expression.ExpressionClass.FUNCTION,
31
- "type": _Expression.ExpressionType.FUNCTION,
32
- "alias": "",
33
- "function_name": "&&",
34
- "schema": "",
35
- "children": [
31
+ class: _Expression.ExpressionClass.FUNCTION,
32
+ type: _Expression.ExpressionType.FUNCTION,
33
+ alias: '',
34
+ function_name: '&&',
35
+ schema: '',
36
+ children: [
36
37
  columnRef,
37
38
  {
38
39
  class: _Expression.ExpressionClass.OPERATOR,
39
40
  type: _Expression.ExpressionType.ARRAY_CONSTRUCTOR,
40
- alias: "",
41
+ alias: '',
41
42
  children: sqlTreeValues
42
43
  }
43
44
  ],
44
- "filter": null,
45
- "order_bys": {
46
- "type": "ORDER_MODIFIER",
47
- "orders": []
45
+ filter: null,
46
+ order_bys: {
47
+ type: 'ORDER_MODIFIER',
48
+ orders: []
48
49
  },
49
- "distinct": false,
50
- "is_operator": true,
51
- "export_state": false,
52
- "catalog": ""
50
+ distinct: false,
51
+ is_operator: true,
52
+ export_state: false,
53
+ catalog: ''
53
54
  };
54
55
  }
55
56
  default:
@@ -57,7 +58,7 @@ const inDuckDbCondition = (columnName, values, memberInfo)=>{
57
58
  return {
58
59
  class: _Expression.ExpressionClass.OPERATOR,
59
60
  type: _Expression.ExpressionType.COMPARE_IN,
60
- alias: "",
61
+ alias: '',
61
62
  children: [
62
63
  columnRef,
63
64
  ...sqlTreeValues
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/in/in.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/table';\nimport {\n ExpressionClass,\n ExpressionType\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from \"../base-condition-builder/base-condition-builder\";\nimport { CubeToParseExpressionTransform } from \"../factory\";\n\n\nconst inDuckDbCondition = (\n columnName: string,\n values: string[],\n memberInfo: Measure | Dimension\n) => {\n const sqlTreeValues = values.map((value) => {\n return {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: \"\",\n value: valueBuilder(value, memberInfo)\n }\n })\n const columnRef = {\n class: \"COLUMN_REF\",\n type: \"COLUMN_REF\",\n alias: \"\",\n column_names: columnName.split('.')\n }\n switch (memberInfo.type) {\n case 'number_array':\n case 'string_array': {\n return {\n \"class\": ExpressionClass.FUNCTION,\n \"type\": ExpressionType.FUNCTION,\n \"alias\": \"\",\n \"function_name\": \"&&\",\n \"schema\": \"\",\n \"children\": [\n columnRef,\n {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.ARRAY_CONSTRUCTOR,\n alias: \"\",\n children: sqlTreeValues,\n }\n ],\n \"filter\": null,\n \"order_bys\": {\n \"type\": \"ORDER_MODIFIER\",\n \"orders\": []\n },\n \"distinct\": false,\n \"is_operator\": true,\n \"export_state\": false,\n \"catalog\": \"\"\n }\n }\n default: {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.COMPARE_IN,\n alias: \"\",\n children: [\n columnRef,\n ...sqlTreeValues\n ]\n }\n }\n }\n \n}\n\n\nexport const inTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n if (!values) {\n throw new Error('In filter must have at least one value');\n }\n return inDuckDbCondition(member, values, memberInfo);\n}\n"],"names":["inTransform","inDuckDbCondition","columnName","values","memberInfo","sqlTreeValues","map","value","class","ExpressionClass","CONSTANT","type","ExpressionType","VALUE_CONSTANT","alias","valueBuilder","columnRef","column_names","split","FUNCTION","OPERATOR","ARRAY_CONSTRUCTOR","children","COMPARE_IN","query","member","Error"],"mappings":";+BAyEaA;;;eAAAA;;;4BArEN;sCACsB;AAI7B,MAAMC,oBAAoB,CACtBC,YACAC,QACAC;IAEA,MAAMC,gBAAgBF,OAAOG,GAAG,CAAC,CAACC;QAC9B,OAAO;YACHC,OAAOC,2BAAe,CAACC,QAAQ;YAC/BC,MAAMC,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPP,OAAOQ,IAAAA,kCAAY,EAACR,OAAOH;QAC/B;IACJ;IACA,MAAMY,YAAY;QACdR,OAAO;QACPG,MAAM;QACNG,OAAO;QACPG,cAAcf,WAAWgB,KAAK,CAAC;IACnC;IACA,OAAQd,WAAWO,IAAI;QACnB,KAAK;QACL,KAAK;YAAgB;gBACjB,OAAO;oBACH,SAASF,2BAAe,CAACU,QAAQ;oBACjC,QAAQP,0BAAc,CAACO,QAAQ;oBAC/B,SAAS;oBACT,iBAAiB;oBACjB,UAAU;oBACV,YAAY;wBACRH;wBACA;4BACIR,OAAOC,2BAAe,CAACW,QAAQ;4BAC/BT,MAAMC,0BAAc,CAACS,iBAAiB;4BACtCP,OAAO;4BACPQ,UAAUjB;wBACd;qBACH;oBACD,UAAU;oBACV,aAAa;wBACT,QAAQ;wBACR,UAAU,EAAE;oBAChB;oBACA,YAAY;oBACZ,eAAe;oBACf,gBAAgB;oBAChB,WAAW;gBACf;YACJ;QACA;YAAS;gBACL,OAAO;oBACHG,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACW,UAAU;oBAC/BT,OAAO;oBACPQ,UAAU;wBACNN;2BACGX;qBACN;gBACL;YACJ;IACJ;AAEJ;AAGO,MAAML,cAA8C,CAACwB;IAC1D,MAAM,EAAEC,MAAM,EAAEtB,MAAM,EAAEC,UAAU,EAAE,GAAGoB;IACvC,IAAI,CAACrB,QAAQ;QACX,MAAM,IAAIuB,MAAM;IAClB;IACA,OAAOzB,kBAAkBwB,QAAQtB,QAAQC;AAC3C"}
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/in/in.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/table';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { COLUMN_NAME_DELIMITER } from '../constant';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nconst inDuckDbCondition = (\n columnName: string,\n values: string[],\n memberInfo: Measure | Dimension\n) => {\n const sqlTreeValues = values.map((value) => {\n return {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n };\n });\n const columnRef = {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n };\n switch (memberInfo.type) {\n case 'number_array':\n case 'string_array': {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '&&',\n schema: '',\n children: [\n columnRef,\n {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.ARRAY_CONSTRUCTOR,\n alias: '',\n children: sqlTreeValues,\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n }\n default: {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.COMPARE_IN,\n alias: '',\n children: [columnRef, ...sqlTreeValues],\n };\n }\n }\n};\n\nexport const inTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n if (!values) {\n throw new Error('In filter must have at least one value');\n }\n return inDuckDbCondition(member, values, memberInfo);\n};\n"],"names":["inTransform","inDuckDbCondition","columnName","values","memberInfo","sqlTreeValues","map","value","class","ExpressionClass","CONSTANT","type","ExpressionType","VALUE_CONSTANT","alias","valueBuilder","columnRef","column_names","split","COLUMN_NAME_DELIMITER","FUNCTION","function_name","schema","children","OPERATOR","ARRAY_CONSTRUCTOR","filter","order_bys","orders","distinct","is_operator","export_state","catalog","COMPARE_IN","query","member","Error"],"mappings":";+BAoEaA;;;eAAAA;;;4BAhEN;sCACsB;0BACS;AAGtC,MAAMC,oBAAoB,CACxBC,YACAC,QACAC;IAEA,MAAMC,gBAAgBF,OAAOG,GAAG,CAAC,CAACC;QAChC,OAAO;YACLC,OAAOC,2BAAe,CAACC,QAAQ;YAC/BC,MAAMC,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPP,OAAOQ,IAAAA,kCAAY,EAACR,OAAOH;QAC7B;IACF;IACA,MAAMY,YAAY;QAChBR,OAAO;QACPG,MAAM;QACNG,OAAO;QACPG,cAAcf,WAAWgB,KAAK,CAACC,+BAAqB;IACtD;IACA,OAAQf,WAAWO,IAAI;QACrB,KAAK;QACL,KAAK;YAAgB;gBACnB,OAAO;oBACLH,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACQ,QAAQ;oBAC7BN,OAAO;oBACPO,eAAe;oBACfC,QAAQ;oBACRC,UAAU;wBACRP;wBACA;4BACER,OAAOC,2BAAe,CAACe,QAAQ;4BAC/Bb,MAAMC,0BAAc,CAACa,iBAAiB;4BACtCX,OAAO;4BACPS,UAAUlB;wBACZ;qBACD;oBACDqB,QAAQ;oBACRC,WAAW;wBACThB,MAAM;wBACNiB,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdC,SAAS;gBACX;YACF;QACA;YAAS;gBACP,OAAO;oBACLxB,OAAOC,2BAAe,CAACe,QAAQ;oBAC/Bb,MAAMC,0BAAc,CAACqB,UAAU;oBAC/BnB,OAAO;oBACPS,UAAU;wBAACP;2BAAcX;qBAAc;gBACzC;YACF;IACF;AACF;AAEO,MAAML,cAA8C,CAACkC;IAC1D,MAAM,EAAEC,MAAM,EAAEhC,MAAM,EAAEC,UAAU,EAAE,GAAG8B;IACvC,IAAI,CAAC/B,QAAQ;QACX,MAAM,IAAIiC,MAAM;IAClB;IACA,OAAOnC,kBAAkBkC,QAAQhC,QAAQC;AAC3C"}
@@ -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"}
@@ -1,5 +1,5 @@
1
- import { Dimension, Measure } from '../../types/cube-types/table';
2
1
  import { Member, QueryFilter } from '../../types/cube-types/query';
2
+ import { Dimension, Measure } from '../../types/cube-types/table';
3
3
  import { ExpressionClass, ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';
4
4
  import { CubeToParseExpressionTransform } from '../factory';
5
5
  export interface NotContainsFilters extends QueryFilter {