pepijnve opened a new issue, #17128:
URL: https://github.com/apache/datafusion/issues/17128
### Is your feature request related to a problem or challenge?
The current implementation of `chr` explicitly rejects the null character.
There's a comment in the code stating that "chr(0) is disallowed because text
data types cannot store that character". As far as I can tell, Rust has no
issue with this, nor do Arrow UTF-8 arrays.
A quick check with SQLite shows that it is allowed there, but (not entirely
unexpected) ends up truncating the string when it is printed. Converting to
hexadecimal does show that the complete string is retained and can be processed
fine by SQLite.
```
sqlite> select hex('A' || char(0) || 'Z');
41005A
sqlite> select 'A' || char(0) || 'Z';
A
```
DuckDB also allows the null character and does better when printing.
```
D select chr(0);
┌─────────┐
│ chr(0) │
│ varchar │
├─────────┤
│ \0 │
└─────────┘
```
### Describe the solution you'd like
Relax the null character restriction in the `chr` implementation.
### Describe alternatives you've considered
N/A
### Additional context
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]