[ 
https://issues.apache.org/jira/browse/CALCITE-4474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

wangjie updated CALCITE-4474:
-----------------------------
    Description: 
in SqlSimpleParser.Tokenizer#nextToken() lines 401 - 423, is used to recognize 
the sql of TokenType.ID or some keywords. 

If a certain segment of characters is continuously composed of Token,the 
function of this code may be wrong.

 

E.g :
(1)select * from a where price> 10.0--comment
【10.0--comment】should be recognize as TokenType.ID("10.0") and 
TokenType.COMMENT,but it recognize as TokenType.ID("10.0--comment")
(2)select * from a where column_b='/* this is not comment */'
【/* this is not comment */】should be recognize as TokenType.SQID("/* this is 
not comment */"), but it was not

 

 

you can see reproduce-demo in 
[https://github.com/wangjie-fourth/calcite-reproduce]

  was:
the SqlSimpleParser#simplifySql function can filter comments

but when `--` follow by variable, this comment will not be filter. In fact, it 
should be filtered

you can see reproduce-demo in 
[https://github.com/wangjie-fourth/calcite-reproduce]


> SqlSimpleParser inner Tokenizer ignore comment in some special case
> -------------------------------------------------------------------
>
>                 Key: CALCITE-4474
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4474
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.26.0
>            Reporter: wangjie
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.26.0
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> in SqlSimpleParser.Tokenizer#nextToken() lines 401 - 423, is used to 
> recognize the sql of TokenType.ID or some keywords. 
> If a certain segment of characters is continuously composed of Token,the 
> function of this code may be wrong.
>  
> E.g :
> (1)select * from a where price> 10.0--comment
> 【10.0--comment】should be recognize as TokenType.ID("10.0") and 
> TokenType.COMMENT,but it recognize as TokenType.ID("10.0--comment")
> (2)select * from a where column_b='/* this is not comment */'
> 【/* this is not comment */】should be recognize as TokenType.SQID("/* this is 
> not comment */"), but it was not
>  
>  
> you can see reproduce-demo in 
> [https://github.com/wangjie-fourth/calcite-reproduce]



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

Reply via email to