You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "ZheHu (Jira)" <ji...@apache.org> on 2025/01/17 00:39:00 UTC
[jira] [Updated] (CALCITE-6780) AbstractSqlTester fails to build query for expression TRIM(string)
[ 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)