You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by mg...@apache.org on 2025/11/13 20:24:05 UTC
(avro-rs) 05/05: fix: Further improve `StructFieldEq`
This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro-rs.git
commit 7509847e36aedf144e51643f67c40ee8022c7f89
Author: Kriskras99 <gi...@kriskras99.nl>
AuthorDate: Thu Nov 13 08:37:39 2025 +0100
fix: Further improve `StructFieldEq`
Changes suggested by `martin-g`
---
avro/src/schema_equality.rs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/avro/src/schema_equality.rs b/avro/src/schema_equality.rs
index 6763a3a..c14e5fb 100644
--- a/avro/src/schema_equality.rs
+++ b/avro/src/schema_equality.rs
@@ -140,17 +140,17 @@ impl SchemataEq for StructFieldEq {
}
(Schema::Union(_), _) => false,
(
- Schema::Decimal(DecimalSchema { precision: precision_one, scale: scale_one, ..}),
- Schema::Decimal(DecimalSchema { precision: precision_two, scale: scale_two, .. })
+ Schema::Decimal(DecimalSchema { precision: precision_one, scale: scale_one, inner: inner_one }),
+ Schema::Decimal(DecimalSchema { precision: precision_two, scale: scale_two, inner: inner_two })
) => {
- precision_one == precision_two && scale_one == scale_two
+ precision_one == precision_two && scale_one == scale_two && self.compare(inner_one, inner_two)
}
(Schema::Decimal(_), _) => false,
(
Schema::Array(ArraySchema { items: items_one, ..}),
Schema::Array(ArraySchema { items: items_two, ..})
) => {
- items_one == items_two
+ self.compare(items_one, items_two)
}
(Schema::Array(_), _) => false,
(
@@ -177,7 +177,7 @@ impl StructFieldEq {
&& fields_one
.iter()
.zip(fields_two.iter())
- .all(|(f1, f2)| self.compare(&f1.schema, &f2.schema))
+ .all(|(f1, f2)| f1.name == f2.name && self.compare(&f1.schema, &f2.schema))
}
}