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
Refactor Binary Builder and String Builder Constructors #2592
Conversation
I have replace all |
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.
LGTM. Leave a nit.
null_buffer_builder: NullBufferBuilder::new(1024), | ||
} | ||
pub fn new() -> Self { | ||
Self::with_capacity(1024, 1024) |
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.
Is it a reasonable assumption that the array contains the same number of elements and bytes?
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.
When we used new previously , it was using 1024 as no. of items, hence I have retained the same.
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.
It's not a reasonable assumption no, but it is a decent guess to avoid worst case bump allocation, probably 😅
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.
Looks good to me, does highlight some places where the capacity estimates are questionable which is 👌
@@ -2355,7 +2355,7 @@ where | |||
let values = cast_values.as_any().downcast_ref::<StringArray>().unwrap(); | |||
|
|||
let keys_builder = PrimitiveBuilder::<K>::with_capacity(values.len()); | |||
let values_builder = StringBuilder::new(values.len()); | |||
let values_builder = StringBuilder::with_capacity(1024, values.len()); |
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.
In this case I'd be tempted to just go with new, this estimate isn't obviously better
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.
Yeah, I should have retained new.
Benchmark runs are scheduled for baseline = ff81dee and contender = 744412f. 744412f is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
Which issue does this PR close?
Closes #2054.
Rationale for this change
Removes capacity from new constructors
What changes are included in this PR?
Removes capacity from new constructors
Are there any user-facing changes?
Yes