-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Found while working on
- Type Coercion fails for List with inner type struct which has large/view types #14154 it may be the same
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
{foo: bar}Additional context
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working