diff options
author | Dongjoon Hyun <dongjoon@apache.org> | 2016-07-25 19:52:17 -0700 |
---|---|---|
committer | Reynold Xin <rxin@databricks.com> | 2016-07-25 19:52:17 -0700 |
commit | 8a8d26f1e27db5c2228307b1c3609b4713b9d0db (patch) | |
tree | 5c125cdb814b3b8681182e4bfda9bc228fefcfbd /sql/hive/src/test/resources | |
parent | ba0aade6d517364363e07ed09278c2b44110c33b (diff) | |
download | spark-8a8d26f1e27db5c2228307b1c3609b4713b9d0db.tar.gz spark-8a8d26f1e27db5c2228307b1c3609b4713b9d0db.tar.bz2 spark-8a8d26f1e27db5c2228307b1c3609b4713b9d0db.zip |
[SPARK-16672][SQL] SQLBuilder should not raise exceptions on EXISTS queries
## What changes were proposed in this pull request?
Currently, `SQLBuilder` raises `empty.reduceLeft` exceptions on *unoptimized* `EXISTS` queries. We had better prevent this.
```scala
scala> sql("CREATE TABLE t1(a int)")
scala> val df = sql("select * from t1 b where exists (select * from t1 a)")
scala> new org.apache.spark.sql.catalyst.SQLBuilder(df).toSQL
java.lang.UnsupportedOperationException: empty.reduceLeft
```
## How was this patch tested?
Pass the Jenkins tests with a new test suite.
Author: Dongjoon Hyun <dongjoon@apache.org>
Closes #14307 from dongjoon-hyun/SPARK-16672.
Diffstat (limited to 'sql/hive/src/test/resources')
-rw-r--r-- | sql/hive/src/test/resources/sqlgen/predicate_subquery.sql | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql b/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql new file mode 100644 index 0000000000..2e06b4fe77 --- /dev/null +++ b/sql/hive/src/test/resources/sqlgen/predicate_subquery.sql @@ -0,0 +1,4 @@ +-- This file is automatically generated by LogicalPlanToSQLSuite. +select * from t1 b where exists (select * from t1 a) +-------------------------------------------------------------------------------- +SELECT `gen_attr` AS `a` FROM (SELECT `gen_attr` FROM (SELECT `a` AS `gen_attr` FROM `default`.`t1`) AS gen_subquery_0 WHERE EXISTS(SELECT `gen_attr` AS `a` FROM ((SELECT `gen_attr` FROM (SELECT `a` AS `gen_attr` FROM `default`.`t1`) AS gen_subquery_0) AS gen_subquery_1) AS gen_subquery_1)) AS b |