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

Reply via email to