alamb opened a new issue, #12101:
URL: https://github.com/apache/datafusion/issues/12101
### Describe the bug
When I try to concat two dictionary encoded columns it doesn't work
### To Reproduce
Concat constants
```sql
> select arrow_cast('foo', 'Dictionary(Int32, Utf8)') || arrow_cast('bar',
'Dictionary(Int32, Utf8)');
Error during planning: Cannot infer common string type for string concat
operation Dictionary(Int32, Utf8) || Dictionary(Int32, Utf8)
```
Concat columns
```sql
> create table t as values (arrow_cast('foo', 'Dictionary(Int32, Utf8)'),
arrow_cast('bar', 'Dictionary(Int32, Utf8)'));
0 row(s) fetched.
Elapsed 0.010 seconds.
> select column1 || column2 from t;
Error during planning: Cannot infer common string type for string concat
operation Dictionary(Int32, Utf8) || Dictionary(Int32, Utf8)
```
### Expected behavior
Both queries should result in the single string `foobar`
### Additional context
Found this working on https://github.com/apache/datafusion/pull/12063 with
@dharanad
I believe the fix will be to extend `string_concat_coercion` (also changed
in https://github.com/apache/datafusion/pull/12063) to also handle dictionaries.
We can likely follow the model of dictionary comparison coercion:
https://github.com/apache/datafusion/blob/121f330a6ccca008da4bf6ffc4efa4ffbf961fd7/datafusion/expr-common/src/type_coercion/binary.rs#L886
--
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]