Blizzara commented on code in PR #15634: URL: https://github.com/apache/datafusion/pull/15634#discussion_r2035078928
########## datafusion/substrait/tests/cases/roundtrip_logical_plan.rs: ########## @@ -1076,6 +1076,46 @@ async fn roundtrip_literal_struct() -> Result<()> { Ok(()) } +#[tokio::test] +async fn roundtrip_literal_named_struct() -> Result<()> { + let plan = generate_plan_from_sql( + "SELECT STRUCT(1 as int_field, true as boolean_field, CAST(NULL AS STRING) as string_field) FROM data", + true, + true, + ) + .await?; + + assert_snapshot!( + plan, + @r#" + Projection: Struct({int_field:1,boolean_field:true,string_field:}) AS named_struct(Utf8("int_field"),Int64(1),Utf8("boolean_field"),Boolean(true),Utf8("string_field"),NULL) + TableScan: data projection=[] + "# + ); + Ok(()) +} + +#[tokio::test] +async fn roundtrip_literal_renamed_struct() -> Result<()> { + // This test aims to hit a case where the struct column itself has the expected name, but its + // inner field needs to be renamed. + let plan = generate_plan_from_sql( + "SELECT CAST((STRUCT(1)) AS Struct<\"int_field\"Int>) AS 'Struct({c0:1})' FROM data", Review Comment: Ah, there's no String -> StringView in this test. This is just the test the regression that happened in Substrait consumer, where we were no longer renaming the inner fields, as the "is the schema the same" check passed too easily. The String -> StringView is tested by the slt tests added in https://github.com/apache/datafusion/pull/15239 -- 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: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org