-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
GH-36384: [Go] Schema: NumFields #36365
Conversation
Expose the number of fields in a schema for iteration over fields.
Could you open a new issue for non-MINOR change instead of using |
Ah my bad, missed that. Will open |
This addresses #36384 |
|
Conbench analyzed the 6 benchmark runs on commit There were 8 benchmark results indicating a performance regression:
The full Conbench report has more details. |
### Rationale for this change Previously if one wanted to iterate over the fields in the schema you would call the `Fields()` function and just iterate over the slice. However, due to [this commit](rtpsw@802674b) there is now an allocation and copy that happens when that's called. So to iterate over the fields without allocations one now must use the `Field(i int)` method; however that means a user must already know exactly how many fields are in the schema which isn't possible today. This adds a simple `NumFields() int` method that returns the number of fields in a schema to allow a user to iterate over all the fields without having to copy them. ### What changes are included in this PR? Expose the number of fields in a schema for iteration over fields. Single function added `NumFields() int` to schema ### Are these changes tested? N/A ### Are there any user-facing changes? Yes this is a new API * Closes: apache#36384 Authored-by: thorfour <me@thor-hansen.com> Signed-off-by: Matt Topol <zotthewizard@gmail.com>
Rationale for this change
Previously if one wanted to iterate over the fields in the schema you would call the
Fields()
function and just iterate over the slice. However, due to this commit there is now an allocation and copy that happens when that's called. So to iterate over the fields without allocations one now must use theField(i int)
method; however that means a user must already know exactly how many fields are in the schema which isn't possible today.This adds a simple
NumFields() int
method that returns the number of fields in a schema to allow a user to iterate over all the fields without having to copy them.What changes are included in this PR?
Expose the number of fields in a schema for iteration over fields.
Single function added
NumFields() int
to schemaAre these changes tested?
N/A
Are there any user-facing changes?
Yes this is a new API