From 405b63bdceb6ff26864e65b84da4cd5af45aec48 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Thu, 13 Oct 2016 11:36:43 -0700 Subject: Add more documentation --- .../expressions/RegexpExpressionsSuite.scala | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'sql/catalyst/src/test') diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala index 9316f76190..9db3abacfa 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/RegexpExpressionsSuite.scala @@ -19,7 +19,7 @@ package org.apache.spark.sql.catalyst.expressions import org.apache.spark.SparkFunSuite import org.apache.spark.sql.catalyst.dsl.expressions._ -import org.apache.spark.sql.types.StringType +import org.apache.spark.sql.types.{IntegerType, StringType} /** * Unit tests for regular expression (regexp) related SQL expressions. @@ -54,6 +54,7 @@ class RegexpExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper { checkEvaluation("ab" like "a%b", true) checkEvaluation("a\nb" like "a%b", true) + // SI-17647 double-escaping backslash checkEvaluation("""\\\\""" like """%\\%""", true) // triple quotes to avoid java string escaping checkEvaluation("""\_%""" like """%\\__""", true) checkEvaluation("""\_%""" like "%\\\\__", true) @@ -63,12 +64,9 @@ class RegexpExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper { checkEvaluation("\\\n\n%\\" like "\\\\___\\\\", true) checkEvaluation("""%%""" like """%%""", true) checkEvaluation("""\__""" like """\\\__""", true) - checkEvaluation("""\\\__""" like """%\\%\%""", false) - checkEvaluation("""\_""" like """\_\_""", false) checkEvaluation("""_\\\%""" like """%\\""", false) - checkEvaluation("""_\\__""" like """_\___""", false) - + } test("LIKE Non-literal Regular Expression") { @@ -90,6 +88,20 @@ class RegexpExpressionsSuite extends SparkFunSuite with ExpressionEvalHelper { checkEvaluation("a\nb" like regEx, true, create_row("a%b")) checkEvaluation(Literal.create(null, StringType) like regEx, null, create_row("bc%")) + + + checkEvaluation("""\\\\""" like regEx, true, create_row("""%\\%""")) + checkEvaluation("""\_%""" like regEx, true, create_row("""%\\__""")) + checkEvaluation("""\_%""" like regEx, true, create_row("%\\\\__")) + checkEvaluation("""\_%""" like regEx, true, create_row("""%\\_%""")) + checkEvaluation("""\\\\%%""" like regEx, true, create_row("""\\%""")) + checkEvaluation("""\%\""" like regEx, true, create_row("""%\%%""")) + checkEvaluation("\\\n\n%\\" like regEx, true, create_row("\\\\___\\\\")) + checkEvaluation("""%%""" like regEx, true, create_row("""%%""")) + checkEvaluation("""\__""" like regEx, true, create_row("""\\\__""")) + checkEvaluation("""\\\__""" like regEx, false, create_row("""%\\%\%""")) + checkEvaluation("""_\\\%""" like regEx, false, create_row("""%\\""")) + } test("RLIKE literal Regular Expression") { -- cgit v1.2.3