diff --git a/fe/src/main/java/org/apache/impala/analysis/AnalysisContext.java b/fe/src/main/java/org/apache/impala/analysis/AnalysisContext.java index e20fd34af..e720867bd 100644 --- a/fe/src/main/java/org/apache/impala/analysis/AnalysisContext.java +++ b/fe/src/main/java/org/apache/impala/analysis/AnalysisContext.java @@ -335,7 +335,7 @@ public class AnalysisContext { public Set getAccessEvents() { return analyzer_.getAccessEvents(); } public boolean requiresSubqueryRewrite() { return analyzer_.containsSubquery() && !(stmt_ instanceof CreateViewStmt) - && !(stmt_ instanceof AlterViewStmt); + && !(stmt_ instanceof AlterViewStmt) && !(stmt_ instanceof ShowCreateTableStmt); } public boolean requiresExprRewrite() { return isQueryStmt() ||isInsertStmt() || isCreateTableAsSelectStmt() diff --git a/testdata/workloads/functional-query/queries/QueryTest/show-create-table.test b/testdata/workloads/functional-query/queries/QueryTest/show-create-table.test index 910f2d595..252cd9661 100644 --- a/testdata/workloads/functional-query/queries/QueryTest/show-create-table.test +++ b/testdata/workloads/functional-query/queries/QueryTest/show-create-table.test @@ -337,3 +337,12 @@ STORED AS PARQUET LOCATION '$$location_uri$$' TBLPROPERTIES () ==== +---- CREATE_VIEW +# Create view that contains a subquery (IMPALA-4579) +CREATE VIEW view_with_subquery AS SELECT * FROM functional.alltypestiny + WHERE id IN (SELECT id FROM functional.alltypesagg); +---- RESULTS +CREATE VIEW show_create_table_test_db.view_with_subquery +AS SELECT * FROM functional.alltypestiny +WHERE id IN (SELECT id FROM functional.alltypesagg) +====