From 0f82ae8b737ba856401ffc180c7d9dd6ef47bc96 Mon Sep 17 00:00:00 2001 From: morrySnow Date: Tue, 27 Dec 2022 23:44:51 +0800 Subject: [PATCH] [fix](Nereids) Generate is missing on alias query --- .../nereids/parser/LogicalPlanBuilder.java | 6 +++- .../data/nereids_syntax_p0/lateral_view.out | 34 +++++++++++++++++++ .../nereids_syntax_p0/lateral_view.groovy | 8 +++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java index 269704fe1590a3..d063f131d422f7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java @@ -450,7 +450,11 @@ public LogicalPlan visitTableName(TableNameContext ctx) { @Override public LogicalPlan visitAliasedQuery(AliasedQueryContext ctx) { - return withTableAlias(visitQuery(ctx.query()), ctx.tableAlias()); + LogicalPlan plan = withTableAlias(visitQuery(ctx.query()), ctx.tableAlias()); + for (LateralViewContext lateralViewContext : ctx.lateralView()) { + plan = withGenerate(plan, lateralViewContext); + } + return plan; } @Override diff --git a/regression-test/data/nereids_syntax_p0/lateral_view.out b/regression-test/data/nereids_syntax_p0/lateral_view.out index 553afb4e527740..ee4cb2b69237de 100644 --- a/regression-test/data/nereids_syntax_p0/lateral_view.out +++ b/regression-test/data/nereids_syntax_p0/lateral_view.out @@ -89,3 +89,37 @@ 3 1 ["abc", "def"] valid 3 2 ["abc", "def"] valid +-- !alias_query -- +0 1 ["abc", "def"] [1.1,2.2] +0 1 ["abc", "def"] [1.1,2.2] +0 2 ["abc", "def"] [1.1,2.2] +0 2 ["abc", "def"] [1.1,2.2] +0 1 ["abc", "def"] [1.1,2.2] +0 1 ["abc", "def"] [1.1,2.2] +0 2 ["abc", "def"] [1.1,2.2] +0 2 ["abc", "def"] [1.1,2.2] +0 1 valid [1.1,2.2] +0 1 valid [1.1,2.2] +0 2 valid [1.1,2.2] +0 2 valid [1.1,2.2] +1 1 valid [1.1,2.2] +1 1 valid [1.1,2.2] +1 2 valid [1.1,2.2] +1 2 valid [1.1,2.2] +0 1 ["abc", "def"] valid +0 2 ["abc", "def"] valid +0 1 ["abc", "def"] valid +0 2 ["abc", "def"] valid +1 1 ["abc", "def"] valid +1 2 ["abc", "def"] valid +1 1 ["abc", "def"] valid +1 2 ["abc", "def"] valid +2 1 ["abc", "def"] valid +2 2 ["abc", "def"] valid +2 1 ["abc", "def"] valid +2 2 ["abc", "def"] valid +3 1 ["abc", "def"] valid +3 2 ["abc", "def"] valid +3 1 ["abc", "def"] valid +3 2 ["abc", "def"] valid + diff --git a/regression-test/suites/nereids_syntax_p0/lateral_view.groovy b/regression-test/suites/nereids_syntax_p0/lateral_view.groovy index af7410a3223dd8..2c1cd9f1f5d4b5 100644 --- a/regression-test/suites/nereids_syntax_p0/lateral_view.groovy +++ b/regression-test/suites/nereids_syntax_p0/lateral_view.groovy @@ -63,4 +63,12 @@ suite("nereids_lateral_view") { LATERAL VIEW explode_json_array_int(c3) lv3 AS clv3 LATERAL VIEW explode_json_array_double_outer(c4) lv4 AS clv4 """ + + qt_alias_query """ + SELECT clv1, clv3, c2, c4 FROM (SELECT * FROM nlv_test) tmp + LATERAL VIEW explode_numbers(c1) lv1 AS clv1 + LATERAL VIEW explode_json_array_string_outer(c2) lv2 AS clv2 + LATERAL VIEW explode_json_array_int(c3) lv3 AS clv3 + LATERAL VIEW explode_json_array_double_outer(c4) lv4 AS clv4 + """ }