[
https://issues.apache.org/jira/browse/CALCITE-7633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tomasz Gawęda closed CALCITE-7633.
----------------------------------
Resolution: Invalid
My mistake, `''` is not valid Character instance...
> RexLiteral.getValueAs assumes 1-character long Character
> --------------------------------------------------------
>
> Key: CALCITE-7633
> URL: https://issues.apache.org/jira/browse/CALCITE-7633
> Project: Calcite
> Issue Type: Bug
> Reporter: Tomasz Gawęda
> Priority: Major
>
> RexLiteral of "" (blank string) if converted to Character breaks with:
> ```
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
> range: 0
> at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
> at java.base/java.lang.String.charAt(String.java:1517)
> at org.apache.calcite.rex.RexLiteral.getValueAs(RexLiteral.java:1094)
> ```
>
> It's because the code assumes at least one character:
> ```java
> return clazz.cast(((NlsString) value).getValue().charAt(0));
> ```
>
> Where, in fact, `''` is a valid `Character` instance.
>
> A solution would be to check if String is empty and if it is, return `''`,
> otherwise - keep current implementation.
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)