Skip to content

Commit

Permalink
Merge pull request #1068 from mabel-dev/#1017/13
Browse files Browse the repository at this point in the history
  • Loading branch information
joocer committed Jun 10, 2023
2 parents 8be4e78 + a96a608 commit 679b271
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
4 changes: 2 additions & 2 deletions opteryx/components/v2/logical_planner.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def __str__(self):
return f"{self.type.upper()} (USING {','.join(format_expression(self.using))})"
return self.type.upper()
if node_type == LogicalPlanStepType.Order:
return f"ORDER BY ({', '.join(item[0] + (' DESC' if not item[1] else '') for item in self.order_by)})"
return f"ORDER BY ({', '.join(format_expression(item[0]) + (' DESC' if not item[1] else '') for item in self.order_by)})"
if node_type == LogicalPlanStepType.Project:
return f"PROJECT ({', '.join(format_expression(col) for col in self.columns)})"
if node_type == LogicalPlanStepType.Scan:
Expand Down Expand Up @@ -281,7 +281,7 @@ def inner_query_planner(ast_branch):
if _order_by:
order_step = LogicalPlanNode(node_type=LogicalPlanStepType.Order)
order_step.order_by = [
(logical_planner_builders.build(item["expr"]).value, not bool(item["asc"]))
(logical_planner_builders.build(item["expr"]), not bool(item["asc"]))
for item in _order_by
]
previous_step_id, step_id = step_id, random_string()
Expand Down
4 changes: 3 additions & 1 deletion opteryx/components/v2/temporary_physical_planner.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def create_physical_plan(logical_plan):
elif node_type == LogicalPlanStepType.Fake:
node = operators.NoOpNode(query_properties, **node_config)
elif node_type == LogicalPlanStepType.Filter:
node = operators.NoOpNode(query_properties, **node_config)
node = operators.SelectionNode(query_properties, filter=node_config["condition"])
elif node_type == LogicalPlanStepType.GenerateSeries:
node = operators.NoOpNode(query_properties, **node_config)
elif node_type == LogicalPlanStepType.Group:
Expand All @@ -49,6 +49,8 @@ def create_physical_plan(logical_plan):
node = operators.NoOpNode(query_properties, **node_config)
elif node_type == LogicalPlanStepType.Order:
node = operators.NoOpNode(query_properties, **node_config)
# we need a gen 2 order by that doesn't rely on the columns object
# node = operators.SortNode(query_properties, order=node_config["order_by"])
elif node_type == LogicalPlanStepType.Project:
node = operators.NoOpNode(query_properties, **node_config)
elif node_type == LogicalPlanStepType.Scan:
Expand Down
1 change: 1 addition & 0 deletions tests/sql_battery/test_shapes_and_errors_battery.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@
("SELECT TRY_CAST(planetId AS VARCHAR) FROM $satellites", 177, 1, None),
("SELECT TRY_CAST(planetId AS TIMESTAMP) FROM $satellites", 177, 1, None),
("SELECT TRY_CAST(planetId AS NUMERIC) FROM $satellites", 177, 1, None),
("SELECT * FROM $planets WHERE id = GET(STRUCT('{\"a\":1,\"b\":\"c\"}'), 'a')", 1, 20, None),

("SELECT PI()", 1, 1, None),
("SELECT E()", 1, 1, None),
Expand Down

0 comments on commit 679b271

Please sign in to comment.