aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src/main/scala
diff options
context:
space:
mode:
Diffstat (limited to 'sql/catalyst/src/main/scala')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/regexpExpressions.scala2
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala2
2 files changed, 2 insertions, 2 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/regexpExpressions.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/regexpExpressions.scala
index 4b7652fc7d..5bdc95357f 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/regexpExpressions.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/regexpExpressions.scala
@@ -82,7 +82,7 @@ trait StringRegexExpression extends ImplicitCastInputTypes {
"escape character is treated literally. I.e. '\\%' would match '%', whereas '\\a' matches " +
"'\\a'.\n\n" +
"Use RLIKE to match with standard regular expressions.")
-case class Like(left: Expression, right: Expression)
+case class Like(left: Expression, right: Expression, escapeChar: Expression)
extends BinaryExpression with StringRegexExpression {
override def escape(v: String): String = StringUtils.escapeLikeRegex(v)
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala
index 9e30634154..5b2eff8f4a 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala
@@ -930,7 +930,7 @@ class AstBuilder extends SqlBaseBaseVisitor[AnyRef] with Logging {
case SqlBaseParser.IN =>
invertIfNotDefined(In(e, ctx.expression.asScala.map(expression)))
case SqlBaseParser.LIKE =>
- invertIfNotDefined(Like(e, expression(ctx.pattern)))
+ invertIfNotDefined(Like(e, expression(ctx.pattern), expression(ctx.escapeChar)))
case SqlBaseParser.RLIKE =>
invertIfNotDefined(RLike(e, expression(ctx.pattern)))
case SqlBaseParser.NULL if ctx.NOT != null =>