Skip to content

Commit 0f6936b

Browse files
HyukjinKwonrxin
authored andcommitted
[SPARK-12249][SQL] JDBC non-equality comparison operator not pushed down.
https://issues.apache.org/jira/browse/SPARK-12249 Currently `!=` operator is not pushed down correctly. I simply added a case for this. Author: hyukjinkwon <[email protected]> Closes #10233 from HyukjinKwon/SPARK-12249.
1 parent d52bf47 commit 0f6936b

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JDBCRDD.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ private[sql] class JDBCRDD(
281281
*/
282282
private def compileFilter(f: Filter): String = f match {
283283
case EqualTo(attr, value) => s"$attr = ${compileValue(value)}"
284+
case Not(EqualTo(attr, value)) => s"$attr != ${compileValue(value)}"
284285
case LessThan(attr, value) => s"$attr < ${compileValue(value)}"
285286
case GreaterThan(attr, value) => s"$attr > ${compileValue(value)}"
286287
case LessThanOrEqual(attr, value) => s"$attr <= ${compileValue(value)}"

sql/core/src/test/scala/org/apache/spark/sql/jdbc/JDBCSuite.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,11 @@ class JDBCSuite extends SparkFunSuite with BeforeAndAfter with SharedSQLContext
177177

178178
test("SELECT * WHERE (simple predicates)") {
179179
assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE THEID < 1")).collect().size === 0)
180+
assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE THEID != 2")).collect().size === 2)
180181
assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE THEID = 1")).collect().size === 1)
181182
assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE NAME = 'fred'")).collect().size === 1)
182183
assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE NAME > 'fred'")).collect().size === 2)
184+
assert(stripSparkFilter(sql("SELECT * FROM foobar WHERE NAME != 'fred'")).collect().size === 2)
183185
}
184186

185187
test("SELECT * WHERE (quoted strings)") {

0 commit comments

Comments
 (0)