You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by rx...@apache.org on 2015/12/16 07:30:39 UTC

spark git commit: [SPARK-12315][SQL] isnotnull operator not pushed down for JDBC datasource.

Repository: spark
Updated Branches:
  refs/heads/master 7f443a687 -> 2aad2d372


[SPARK-12315][SQL] isnotnull operator not pushed down for JDBC datasource.

https://issues.apache.org/jira/browse/SPARK-12315
`IsNotNull` filter is not being pushed down for JDBC datasource.

It looks it is SQL standard according to [SQL-92](http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt), SQL:1999, [SQL:2003](http://www.wiscorp.com/sql_2003_standard.zip) and [SQL:201x](http://www.wiscorp.com/sql20nn.zip) and I believe most databases support this.

In this PR, I simply added the case for `IsNotNull` filter to produce a proper filter string.

Author: hyukjinkwon <gu...@gmail.com>

This patch had conflicts when merged, resolved by
Committer: Reynold Xin <rx...@databricks.com>

Closes #10287 from HyukjinKwon/SPARK-12315.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/2aad2d37
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/2aad2d37
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/2aad2d37

Branch: refs/heads/master
Commit: 2aad2d372469aaf2773876cae98ef002fef03aa3
Parents: 7f443a6
Author: hyukjinkwon <gu...@gmail.com>
Authored: Tue Dec 15 22:30:35 2015 -0800
Committer: Reynold Xin <rx...@databricks.com>
Committed: Tue Dec 15 22:30:35 2015 -0800

----------------------------------------------------------------------
 .../org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala  | 1 +
 sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala  | 2 ++
 2 files changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/2aad2d37/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala
index 3271b46..2d38562 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala
@@ -287,6 +287,7 @@ private[sql] class JDBCRDD(
     case LessThanOrEqual(attr, value) => s"$attr <= ${compileValue(value)}"
     case GreaterThanOrEqual(attr, value) => s"$attr >= ${compileValue(value)}"
     case IsNull(attr) => s"$attr IS NULL"
+    case IsNotNull(attr) => s"$attr IS NOT NULL"
     case _ => null
   }
 

http://git-wip-us.apache.org/repos/asf/spark/blob/2aad2d37/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala
----------------------------------------------------------------------
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala
index 0305667..d6aeb52 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala
@@ -183,6 +183,8 @@ class JDBCSuite extends SparkFunSuite with BeforeAndAfter with SharedSQLContext
     assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE NAME > 'fred'")).collect().size === 2)
     assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE NAME != 'fred'")).collect().size === 2)
     assert(stripSparkFilter(sql("SELECT * FROM nulltypes WHERE A IS NULL")).collect().size === 1)
+    assert(stripSparkFilter(
+      sql("SELECT * FROM nulltypes WHERE A IS NOT NULL")).collect().size === 0)
   }
 
   test("SELECT * WHERE (quoted strings)") {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org