-
Notifications
You must be signed in to change notification settings - Fork 468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[persist] ProtoArrayData optimization - part two #29787
Conversation
@ParkMyCar Wanna take the review on this one? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Glad to see .to_proto_lower(...)
is already called in our proptest
s 💯
let Some(mut child) = body.children.pop() else { | ||
break; | ||
}; | ||
let Some(mut field) = fields.pop() else { break }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Not part of this PR so feel free to ignore, but it seems like it would be nice to at least have a soft_assert!
here that child
and field
have the same data type
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sadly no longer possible, by design - since we only keep type info at the top level, there's no type info on child structs to check.
This reverts commit f8b6fa515041b4671211898602547a1ac09c4527.
0590e19
to
cb4b412
Compare
Nightly subset was fine - will get this merged in! |
Motivation
Part 2 of #29457 - now that all released versions can handle proto with type info only at the top level, write it in the more compact form.
Tips for reviewer
The upgrade tests are important here - I'll get nightlies going.
Checklist
$T ⇔ Proto$T
mapping (possibly in a backwards-incompatible way), then it is tagged with aT-proto
label.