fansehep commented on code in PR #4962:
URL: https://github.com/apache/arrow-rs/pull/4962#discussion_r1368590476
##########
arrow-schema/src/fields.rs:
##########
@@ -83,6 +87,16 @@ impl Fields {
.zip(other.iter())
.all(|(a, b)| Arc::ptr_eq(a, b) || a.contains(b))
}
+
+ pub fn reverse(&mut self) {
+ let new_fields: Vec<FieldRef> = self.iter().rev().map(|f| f.clone() as
FieldRef).collect();
+ self.0 = Arc::new(new_fields);
+ }
+
+ pub fn push(&mut self, field: Field) {
Review Comment:
> I think the better question is, why not use SchemaBuilder, it will be
faster, less complicated, and avoid having to make changes to Fields?
The problem is that the transformation of Fields into SchemaBuilder appears
to be performance intensive.
Here it look like we can only use
```rust
SchemaBuilder::from(self.clone());
```
The result could be something like this:
```Rust
pub fn push(&mut self, field: Field) {
let mut new_fields = SchemaBuilder::from(self.clone());
new_fields.push(field);
*self = new_fields.finish().fields;
}
```
I am not sure why `ShemaBuilder` is better than old?
--
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]