jonahgao commented on code in PR #14572: URL: https://github.com/apache/datafusion/pull/14572#discussion_r1954592060
########## datafusion/common/src/dfschema.rs: ########## @@ -1028,21 +1028,41 @@ impl SchemaExt for Schema { }) } - fn logically_equivalent_names_and_types(&self, other: &Self) -> bool { + fn logically_equivalent_names_and_types(&self, other: &Self) -> Result<()> { if self.fields().len() != other.fields().len() { - return false; + _plan_err!( + "Inserting query must have the same schema length as the table. \ + Expected table schema length: {}, got: {}", + self.fields().len(), + other.fields().len() + ) + } else { + self.fields() + .iter() + .zip(other.fields().iter()) + .try_for_each(|(f1, f2)| { + // only check the case when the table field is not nullable and the insert data field is nullable + if !f1.is_nullable() && f2.is_nullable() { Review Comment: If it is necessary, perhaps we should rewrite the nullability of the output batches instead of restricting the input schemas to have the same nullability, as the latter could prevent some queries from being executed. -- 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