Skip to content

Commit 95de355

Browse files
fix another case
1 parent eeebd7b commit 95de355

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/Planner/PlannerJoinTree.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,19 +1837,27 @@ JoinTreeQueryPlan buildQueryPlanForJoinNodeLegacy(
18371837
auto & inner_columns_list = join_node_using_column_node.getExpressionOrThrow()->as<ListNode &>();
18381838

18391839
auto & left_inner_column_node = inner_columns_list.getNodes().at(0);
1840-
auto & left_inner_column = left_inner_column_node->as<ColumnNode &>();
1840+
auto * left_inner_column = left_inner_column_node->as<ColumnNode>();
1841+
if (!left_inner_column)
1842+
throw Exception(ErrorCodes::BAD_ARGUMENTS,
1843+
"JOIN USING clause expected column identifier. Actual {}",
1844+
left_inner_column_node->formatASTForErrorMessage());
18411845

18421846
auto & right_inner_column_node = inner_columns_list.getNodes().at(1);
1843-
auto & right_inner_column = right_inner_column_node->as<ColumnNode &>();
1847+
auto * right_inner_column = right_inner_column_node->as<ColumnNode>();
1848+
if (!right_inner_column)
1849+
throw Exception(ErrorCodes::BAD_ARGUMENTS,
1850+
"JOIN USING clause expected column identifier. Actual {}",
1851+
right_inner_column_node->formatASTForErrorMessage());
18441852

18451853
const auto & join_node_using_column_node_type = join_node_using_column_node.getColumnType();
1846-
if (!left_inner_column.getColumnType()->equals(*join_node_using_column_node_type))
1854+
if (!left_inner_column->getColumnType()->equals(*join_node_using_column_node_type))
18471855
{
18481856
const auto & left_inner_column_identifier = planner_context->getColumnNodeIdentifierOrThrow(left_inner_column_node);
18491857
left_plan_column_name_to_cast_type.emplace(left_inner_column_identifier, join_node_using_column_node_type);
18501858
}
18511859

1852-
if (!right_inner_column.getColumnType()->equals(*join_node_using_column_node_type))
1860+
if (!right_inner_column->getColumnType()->equals(*join_node_using_column_node_type))
18531861
{
18541862
const auto & right_inner_column_identifier = planner_context->getColumnNodeIdentifierOrThrow(right_inner_column_node);
18551863
right_plan_column_name_to_cast_type.emplace(right_inner_column_identifier, join_node_using_column_node_type);

tests/queries/0_stateless/03402_join_using_alias.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ DROP TABLE IF EXISTS t0;
55
CREATE TABLE t0 (c0 Int, c1 Int ALIAS 1) ENGINE = Memory;
66
SELECT c0 FROM remote('localhost', currentDatabase(), 't0') tx JOIN t0 USING (c1); -- { serverError BAD_ARGUMENTS }
77

8+
SELECT c0 FROM remote('localhost', currentDatabase(), 't0') tx JOIN t0 USING (c1) SETTINGS query_plan_use_new_logical_join_step=0; -- { serverError BAD_ARGUMENTS }
9+
810
DROP TABLE IF EXISTS t0;

0 commit comments

Comments
 (0)