diff --git a/crates/core/src/operations/write.rs b/crates/core/src/operations/write.rs index 36dcec5b70..a4dd1353a2 100644 --- a/crates/core/src/operations/write.rs +++ b/crates/core/src/operations/write.rs @@ -1075,7 +1075,7 @@ impl std::future::IntoFuture for WriteBuilder { actions.push(protocol.into()) } - if schema != table_schema { + if try_cast_batch(schema.fields(), table_schema.fields()).is_err() { let mut metadata = snapshot.metadata().clone(); let delta_schema: StructType = schema.as_ref().try_into()?; metadata.schema_string = serde_json::to_string(&delta_schema)?;