You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "jiaan.geng (Jira)" <ji...@apache.org> on 2020/03/21 03:14:00 UTC

[jira] [Comment Edited] (SPARK-31210) An issue for Spark SQL LIKE-with-ESCAPE clause

    [ https://issues.apache.org/jira/browse/SPARK-31210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17063738#comment-17063738 ] 

jiaan.geng edited comment on SPARK-31210 at 3/21/20, 3:13 AM:
--------------------------------------------------------------

You not need use '^' as escaped char.

spark-sql> select '100 times' like '100%';

true

spark-sql> select '1000 times' like '100%';

true

spark-sql> select '100%' like '100%';

true

spark-sql> select '100 times' like '100#%' escape '#';

false

spark-sql> select '100%' like '100#%' escape '#';

true

'%' is a wildcard matches zero or more characters in the input. If an escape character precedes a special symbol or another escape character, the following character is matched literally.


was (Author: beliefer):
You not need use '^' as escaped char.

spark-sql> select '100 times' like '100%';

true

spark-sql> select '1000 times' like '100%';

true

spark-sql> select '100%' like '100%';

true

'%' is a wildcard matches zero or more characters in the input. If an escape character precedes a special symbol or another escape character, the following character is matched literally.

> An issue for Spark SQL LIKE-with-ESCAPE clause
> ----------------------------------------------
>
>                 Key: SPARK-31210
>                 URL: https://issues.apache.org/jira/browse/SPARK-31210
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 3.0.0
>            Reporter: Mingli Rui
>            Priority: Major
>
> I try to use LIKE with ESCAPE for Spark 3.0.0-preview2. But I find in it doesn't work in below cases.
> The database table
> ==============
> create or replace table test_table_like ( subject string)
> insert into $test_table_like values ('100 times'), ('1000 times'), ('100%')
>  
> Repro
> ====
> val result2 = sparkSession.sql(
>  s"select * from test_table_like where subject like '100^%' escape '^' order by 1")
> "100%" is expected to returned, but it doesn't. I debug into the code to check the logical plan.
> In the logical plan, the LIKE is transformed as "StartsWith(subject#130, 100^)". It looks it is incorrect.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org