You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When two structs are coerced as part of case, the field names are lost (set to c0)
To Reproduce
createtabletasvalues
(
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} |-- +------------------------------------------------------------------+
changed the title [-]`Case` coercion of Structs loses field names (regression introduced in DataFusion 44)[/-][+]`Case` coercion of Structs loses field names [/+]on Jan 31, 2025
Activity
[-]`Case` coercion of Structs loses field names (regression introduced in DataFusion 44)[/-][+]`Case` coercion of Structs loses field names [/+]alamb commentedon Jan 31, 2025
Actually I tested this in DataFuson 43 and it also fails
ion-elgreco commentedon Jan 31, 2025
I have actually seen this, but thought it was a visual bug 😮
alamb commentedon Jan 31, 2025
We'll get it fixed
alamb commentedon Jan 31, 2025
CASE#14384