Commits


Frederic Branczyk authored and GitHub committed 4ee6688b8f4
MINOR: [Go] Don't recursively reserve in append to struct builder (#37455) ### Rationale for this change Recursively reserving on every append is extremely expensive. This is not fundamentally necessary, it is meant to try to save CPU cycles, but in fact because it requires tons of dynamic dispatch (because of interfaces), when appending a lot even though you correctly reserved previously you will waste tons of CPU cycles. ### What changes are included in this PR? Only reserve space in the validity bitmap of the struct itself. ### Are these changes tested? Tests are passing and we've successfully deployed and validated the improvement on Polar Signals Cloud. ### Are there any user-facing changes? It's not an API change, but there is a slight change in behavior, which users should not notice since if reserving is still necessary for the children, then the children builder will perform it automatically. I believe this is only a positive improvement in every direction. cc @ zeroshade Authored-by: Frederic Branczyk <fbranczyk@gmail.com> Signed-off-by: Matt Topol <zotthewizard@gmail.com>