alamb commented on code in PR #14381:
URL: https://github.com/apache/datafusion/pull/14381#discussion_r1937223203
##########
datafusion/sqllogictest/test_files/case.slt:
##########
@@ -308,3 +308,84 @@ NULL NULL false
statement ok
drop table foo
+
+####
+#### Case with structs with subfields that need to be coerced
+#####
+
+statement ok
+create table t as values
+(
+ true, -- column1 boolean (so the case
isn't constant folded)
+ [{ 'foo': 'bar' }], -- column2 has List of Struct w/
Utf8
+ [{ 'foo': arrow_cast('bar', 'Utf8View') }] -- column3 has List of Struct w/
Utf8View
+)
+
+query B?
+select column1, column2 from t;
+----
+true [{foo: bar}]
+
+query TT
+select arrow_typeof(column1), arrow_typeof(column2) from t;
+----
+Boolean List(Field { name: "item", data_type: Struct([Field { name: "foo",
data_type: Utf8, nullable: true, dict_id: 0, dict_is_ordered: false, metadata:
{} }]), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} })
+
+# Force coercion of column2 to Utf8View
+query ??
+select
+ case when column1 then column2 else column3 end,
+ case when not column1 then column2 else column3 end
+from t;
+----
+[{c0: bar}] [{c0: bar}]
Review Comment:
this is clearly wrong -- it should have 'foo' as the field name
--
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]