aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorravipesala <ravindra.pesala@huawei.com>2014-11-03 13:07:41 -0800
committerMichael Armbrust <michael@databricks.com>2014-11-03 13:07:41 -0800
commit2b6e1ce6ee7b1ba8160bcbee97f5bbff5c46ca09 (patch)
treea1f67f08acdcd3504861039497310989df5b3f56 /sql
parentdf607da025488d6c924d3d70eddb67f5523080d3 (diff)
downloadspark-2b6e1ce6ee7b1ba8160bcbee97f5bbff5c46ca09.tar.gz
spark-2b6e1ce6ee7b1ba8160bcbee97f5bbff5c46ca09.tar.bz2
spark-2b6e1ce6ee7b1ba8160bcbee97f5bbff5c46ca09.zip
[SPARK-4207][SQL] Query which has syntax like 'not like' is not working in Spark SQL
Queries which has 'not like' is not working spark sql. sql("SELECT * FROM records where value not like 'val%'") same query works in Spark HiveQL Author: ravipesala <ravindra.pesala@huawei.com> Closes #3075 from ravipesala/SPARK-4207 and squashes the following commits: 35c11e7 [ravipesala] Supported 'not like' syntax in sql
Diffstat (limited to 'sql')
-rwxr-xr-xsql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala1
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala5
2 files changed, 6 insertions, 0 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
index 00fc4d75c9..5e613e0f18 100755
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
@@ -242,6 +242,7 @@ class SqlParser extends AbstractSparkSQLParser {
| termExpression ~ (RLIKE ~> termExpression) ^^ { case e1 ~ e2 => RLike(e1, e2) }
| termExpression ~ (REGEXP ~> termExpression) ^^ { case e1 ~ e2 => RLike(e1, e2) }
| termExpression ~ (LIKE ~> termExpression) ^^ { case e1 ~ e2 => Like(e1, e2) }
+ | termExpression ~ (NOT ~ LIKE ~> termExpression) ^^ { case e1 ~ e2 => Not(Like(e1, e2)) }
| termExpression ~ (IN ~ "(" ~> rep1sep(termExpression, ",")) <~ ")" ^^ {
case e1 ~ e2 => In(e1, e2)
}
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
index 6bf439377a..702714af53 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
@@ -938,4 +938,9 @@ class SQLQuerySuite extends QueryTest with BeforeAndAfterAll {
checkAnswer(sql("SELECT key FROM testData WHERE key not between 0 and 10 order by key"),
(11 to 100).map(i => Seq(i)))
}
+
+ test("SPARK-4207 Query which has syntax like 'not like' is not working in Spark SQL") {
+ checkAnswer(sql("SELECT key FROM testData WHERE value not like '100%' order by key"),
+ (1 to 99).map(i => Seq(i)))
+ }
}