Jungtaek Lim created SPARK-29281: ------------------------------------ Summary: Examples in Like/RLike doesn't consider the default value of spark.sql.parser.escapedStringLiterals Key: SPARK-29281 URL: https://issues.apache.org/jira/browse/SPARK-29281 Project: Spark Issue Type: Bug Components: SQL Affects Versions: 3.0.0 Reporter: Jungtaek Lim
Please take a look at example of `LIKE`: [https://github.com/apache/spark/blob/d72f39897b00d0bbd7a4db9de281a1256fcf908d/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/regexpExpressions.scala#L97-L106] If spark.sql.parser.escapedStringLiterals=false, then it should fail as there's `\U` in pattern (spark.sql.parser.escapedStringLiterals=false by default) but it doesn't fail. {quote}The escape character is '\'. If an escape character precedes a special symbol or another escape character, the following character is matched literally. It is invalid to escape any other character. {quote} For the query {code:java} SET spark.sql.parser.escapedStringLiterals=false; SELECT '%SystemDrive%\Users\John' like '\%SystemDrive\%\Users%'; {code} SQL parser removes single `\` (not sure that is intended) so the expressions of Like are constructed as following: {code:java} LIKE - left `%SystemDrive%UsersJohn` / right `\%SystemDrive\%Users%`{code} which are no longer having origin intention. Same happens on RLike example: {code:java} SET spark.sql.parser.escapedStringLiterals=false; SELECT '%SystemDrive%\Users\John' rlike '%SystemDrive%\Users.*'; {code} {code:java} RLIKE - left `%SystemDrive%UsersJohn` / right `%SystemDrive%Users.*`{code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org