-
- Downloads
[SPARK-21335][SQL] support un-aliased subquery
## What changes were proposed in this pull request? un-aliased subquery is supported by Spark SQL for a long time. Its semantic was not well defined and had confusing behaviors, and it's not a standard SQL syntax, so we disallowed it in https://issues.apache.org/jira/browse/SPARK-20690 . However, this is a breaking change, and we do have existing queries using un-aliased subquery. We should add the support back and fix its semantic. This PR fixes the un-aliased subquery by assigning a default alias name. After this PR, there is no syntax change from branch 2.2 to master, but we invalid a weird use case: `SELECT v.i from (SELECT i FROM v)`. Now this query will throw analysis exception because users should not be able to use the qualifier inside a subquery. ## How was this patch tested? new regression test Author: Wenchen Fan <wenchen@databricks.com> Closes #18559 from cloud-fan/sub-query.
Showing
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala 9 additions, 7 deletions...ala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala 1 addition, 1 deletion...apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/PlanParserSuite.scala 0 additions, 13 deletions...rg/apache/spark/sql/catalyst/parser/PlanParserSuite.scala
- sql/core/src/test/resources/sql-tests/inputs/group-by.sql 1 addition, 1 deletionsql/core/src/test/resources/sql-tests/inputs/group-by.sql
- sql/core/src/test/resources/sql-tests/inputs/limit.sql 1 addition, 1 deletionsql/core/src/test/resources/sql-tests/inputs/limit.sql
- sql/core/src/test/resources/sql-tests/inputs/string-functions.sql 1 addition, 1 deletion.../src/test/resources/sql-tests/inputs/string-functions.sql
- sql/core/src/test/resources/sql-tests/inputs/subquery/in-subquery/in-set-operations.sql 1 addition, 1 deletion...l-tests/inputs/subquery/in-subquery/in-set-operations.sql
- sql/core/src/test/resources/sql-tests/inputs/subquery/negative-cases/invalid-correlation.sql 1 addition, 1 deletion...ts/inputs/subquery/negative-cases/invalid-correlation.sql
- sql/core/src/test/resources/sql-tests/inputs/subquery/scalar-subquery/scalar-subquery-predicate.sql 1 addition, 1 deletion...ts/subquery/scalar-subquery/scalar-subquery-predicate.sql
- sql/core/src/test/resources/sql-tests/inputs/union.sql 2 additions, 2 deletionssql/core/src/test/resources/sql-tests/inputs/union.sql
- sql/core/src/test/resources/sql-tests/results/columnresolution-negative.sql.out 8 additions, 8 deletions...urces/sql-tests/results/columnresolution-negative.sql.out
- sql/core/src/test/resources/sql-tests/results/group-by.sql.out 1 addition, 1 deletion...ore/src/test/resources/sql-tests/results/group-by.sql.out
- sql/core/src/test/resources/sql-tests/results/limit.sql.out 1 addition, 1 deletionsql/core/src/test/resources/sql-tests/results/limit.sql.out
- sql/core/src/test/resources/sql-tests/results/string-functions.sql.out 3 additions, 3 deletions...test/resources/sql-tests/results/string-functions.sql.out
- sql/core/src/test/resources/sql-tests/results/subquery/in-subquery/in-set-operations.sql.out 1 addition, 1 deletion...ts/results/subquery/in-subquery/in-set-operations.sql.out
- sql/core/src/test/resources/sql-tests/results/subquery/negative-cases/invalid-correlation.sql.out 1 addition, 1 deletion...sults/subquery/negative-cases/invalid-correlation.sql.out
- sql/core/src/test/resources/sql-tests/results/subquery/scalar-subquery/scalar-subquery-predicate.sql.out 1 addition, 1 deletion...ubquery/scalar-subquery/scalar-subquery-predicate.sql.out
- sql/core/src/test/resources/sql-tests/results/subquery/subquery-in-from.sql.out 4 additions, 16 deletions...urces/sql-tests/results/subquery/subquery-in-from.sql.out
- sql/core/src/test/resources/sql-tests/results/union.sql.out 2 additions, 2 deletionssql/core/src/test/resources/sql-tests/results/union.sql.out
- sql/core/src/test/scala/org/apache/spark/sql/CachedTableSuite.scala 26 additions, 56 deletions...rc/test/scala/org/apache/spark/sql/CachedTableSuite.scala
Loading
Please register or sign in to comment