IMPALA-4579: SHOW CREATE VIEW fails for view containing a subquery

This commit fixes an issue where a SHOW CREATE VIEW statement throws an
analysis error if the view contains a subquery.

Change-Id: I4a89e46a022f0ccec198b6e3e2b30230103831ce
Reviewed-on: http://gerrit.cloudera.org:8080/5333
Reviewed-by: Dimitris Tsirogiannis <dtsirogiannis@cloudera.com>
Tested-by: Internal Jenkins
This commit is contained in:
Dimitris Tsirogiannis
2016-12-02 14:53:15 -08:00
committed by Internal Jenkins
parent ff629c2deb
commit 1da57019ad
2 changed files with 10 additions and 1 deletions

View File

@@ -335,7 +335,7 @@ public class AnalysisContext {
public Set<TAccessEvent> 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()

View File

@@ -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)
====