[
https://issues.apache.org/jira/browse/CALCITE-6780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ZheHu updated CALCITE-6780:
---------------------------
Summary: AbstractSqlTester fails to build query for expression TRIM(string)
(was: CheckerFramework failed to build query for expression TRIM(string))
> 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)