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

xiong duan commented on CALCITE-6780:
-------------------------------------

Fixed in 
[b852db2|https://github.com/apache/calcite/commit/b852db228c3cb6194c7e00057178a2e628f9be96].
 Thanks for the review [~mbudiu].

> AbstractSqlTester fails to build query for expression TRIM(string)
> ------------------------------------------------------------------
>
>                 Key: CALCITE-6780
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6780
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.38.0
>            Reporter: ZheHu
>            Assignee: ZheHu
>            Priority: Minor
>              Labels: pull-request-available
>
> When running the following test in SqlOperatorTest,
> {code:java}
> f.checkString("trim(' aAa ')", "aAa", "VARCHAR(5) NOT NULL");
> {code}
> it throws "java.lang.StringIndexOutOfBoundsException: begin 8, end 21, length 
> 17".
> The expression "trim(' aAa ')" will be parsed into "trim(both ' ' from ' aAa 
> ')" (call it TrimFuncCall).
> However, when building the above query that extracts all literals as columns 
> in an underlying select(in AbstractSqlTester.buildQuery2()), the space 
> literal in TrimFuncCall will be extracted, which doesn't exist in the 
> original expression "trim(' aAa ')". We just need to extract "' aAa '" in 
> this case, and get
> {code:java}
> select trim(p0) from (values (' aAa ')) as t(p0)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to