[
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)