Tomasz Gawęda created CALCITE-7633:
--------------------------------------
Summary: 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
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)