Describe the bug
Found while working on
When two structs are coerced as part of case, the field names are lost (set to c0)
To Reproduce
create table t as values
(
100, -- column1 int (so the case isn't constant folded)
{ 'foo': 'bar' }, -- column2 has List of Struct w/ Utf8
{ 'foo': arrow_cast('baz', 'Utf8View') } -- column3 has List of Struct w/ Utf8View
);
-- fields are correctly names 'foo'
SELECT column2, column3 FROM t;
-- +------------+------------+
-- | column2 | column3 |
-- +------------+------------+
-- | {foo: bar} | {foo: baz} |
-- +------------+------------+
-- 1 row(s) fetched.
-- When coerced the field name turns into `c0` should be `foo`
SELECT case when column1 > 0 then column2 else column3 end FROM t;
-- +------------------------------------------------------------------+
-- | CASE WHEN t.column1 > Int64(0) THEN t.column2 ELSE t.column3 END |
-- +------------------------------------------------------------------+
-- | {c0: bar} |
-- +------------------------------------------------------------------+
Expected behavior
The results should be
Additional context
No response
Describe the bug
Found while working on
When two structs are coerced as part of case, the field names are lost (set to
c0)To Reproduce
Expected behavior
The results should be
{foo: bar}Additional context
No response