You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "RyanJamesStewart (via GitHub)" <gi...@apache.org> on 2026/05/21 12:34:33 UTC
[PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
RyanJamesStewart opened a new pull request, #22416:
URL: https://github.com/apache/datafusion/pull/22416
## Which issue does this PR close?
Related to #22164 and #22165. This extends the same fix to the min/max accumulators.
## Rationale for this change
#22165 fixed an allocation problem in `EmitTo::First(n)`: `drain(..n).collect()` always allocates `n` elements and leaves the retained buffer at its pre-emit capacity, so an OOM-triggered emit (where `n` is close to the buffer length) ends up copying the largest allocation.
The same idiom is still present in two accumulators that #22165 did not touch:
- `MinMaxStructAccumulator::emit_to` in `datafusion/functions-aggregate/src/min_max/min_max_struct.rs`
- `MinMaxBytesAccumulator::emit_to` in `datafusion/functions-aggregate/src/min_max/min_max_bytes.rs`
Both emit a prefix of their `min_max` group buffer with `self.min_max.drain(..n).collect()`.
## What changes are included in this PR?
Adds a `split_vec_min_alloc` helper in `min_max.rs` that allocates `min(n, len - n)` by choosing `drain+collect` or `split_off+replace` depending on which side is smaller, and routes both accumulators through it.
The helper is duplicated from `datafusion-physical-plan`'s `split_vec_min_alloc` (added in #22165) because that one is `pub(super)`-scoped to a different crate. It is a generic `Vec<T>` utility with no aggregate-specific logic. If maintainers prefer, it could instead be hoisted into `datafusion-common` and shared by both crates; happy to do that in this PR or as a follow-up. I went with the local copy to keep the change minimal and avoid touching recently merged code.
## Are these changes tested?
Yes. Unit tests cover both branches of the helper plus the `n == len` and `n == 0` boundaries. Behavior of `emit_to` is unchanged. `cargo test -p datafusion-functions-aggregate` passes (128 tests).
## Are there any user-facing changes?
No.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "RyanJamesStewart (via GitHub)" <gi...@apache.org>.
RyanJamesStewart commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4520292900
Removed the shrink_to_fit in the split_off branch, as suggested. The point about the push-after-emit caller holds: when a caller pushes onto the emitted prefix right away (first_n_offsets.push in multi_group_by/bytes.rs), shrinking to length n just forces a realloc on the next push. I added a test, emitted_prefix_does_not_realloc_on_push, that pins this down. A prefix split from a capacity-64 Vec keeps capacity 64 and absorbs a push with no realloc; the same prefix shrunk to length 8 reallocs up to capacity 16 on that push, ending larger than where it started. The capacity-accounting concern is still valid, but it reads as a caller-side property rather than something to bake into the shared utility, so I have left shrink out for now. Pushed as 28655d8.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "RyanJamesStewart (via GitHub)" <gi...@apache.org>.
RyanJamesStewart commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4512809390
Done in 287a1d2. `split_vec_min_alloc` now lives in `datafusion_common::utils` and calls `shrink_to_fit` on the emitted prefix in the `split_off` branch, since that prefix keeps the original capacity and datafusion accounts memory by capacity rather than length.
The duplicate helper in physical-plan's `multi_group_by/mod.rs` is removed; `bytes.rs` and `primitive.rs` now use the shared one. I also folded in the `ByteViewGroupValueBuilder::take_n` change from #22205, so this PR converts every `split_vec_min_alloc` call site in one place. #22205 will be closed as superseded.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on code in PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#discussion_r3281561152
##########
datafusion/functions-aggregate/src/min_max.rs:
##########
@@ -55,6 +55,23 @@ use half::f16;
use std::mem::size_of_val;
use std::ops::Deref;
+/// Splits `vec` at `n`, returning the first `n` elements and leaving the
+/// remainder in `vec`. Allocates for whichever portion is smaller to minimize
+/// peak memory: `drain+collect` when `n <= remaining`, `split_off+replace`
+/// when `remaining < n`.
+///
+/// Mirrors `split_vec_min_alloc` in `datafusion-physical-plan`'s
+/// `aggregates::group_values::multi_group_by` module (added in #22165); kept
+/// local here because that helper is `pub(super)` to a different crate.
+fn split_vec_min_alloc<T>(vec: &mut Vec<T>, n: usize) -> Vec<T> {
Review Comment:
I have another use case for it in datafusion/expr-common/src/groups_accumulator.rs so it would be nice to have it in one place
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on code in PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#discussion_r3281533729
##########
datafusion/functions-aggregate/src/min_max.rs:
##########
@@ -55,6 +55,23 @@ use half::f16;
use std::mem::size_of_val;
use std::ops::Deref;
+/// Splits `vec` at `n`, returning the first `n` elements and leaving the
+/// remainder in `vec`. Allocates for whichever portion is smaller to minimize
+/// peak memory: `drain+collect` when `n <= remaining`, `split_off+replace`
+/// when `remaining < n`.
+///
+/// Mirrors `split_vec_min_alloc` in `datafusion-physical-plan`'s
+/// `aggregates::group_values::multi_group_by` module (added in #22165); kept
+/// local here because that helper is `pub(super)` to a different crate.
+fn split_vec_min_alloc<T>(vec: &mut Vec<T>, n: usize) -> Vec<T> {
Review Comment:
please move this in datafusion-common
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4511434393
Please also remove the function from [datafusion/physical-plan/src/aggregates/group_values/multi_group_by/mod.rs](https://github.com/apache/datafusion/pull/22165/changes#diff-f2de42a5c77f6d17ae04903cde3c31a1c2633397e1600b0de3331150b93e25f6) so we don't have duplicates.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "RyanJamesStewart (via GitHub)" <gi...@apache.org>.
RyanJamesStewart commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4545459668
The residual Vec is the real exposure: after a long `split_off` chain (the 1M to 1024 case), the final remaining Vec keeps the original allocation, and capacity-based memory accounting will charge for the whole thing until it drops.
The push-after-emit caller in `multi_group_by/bytes.rs` is what blocked an unconditional `shrink_to_fit` on the emitted prefix, but that constraint doesn't apply to the residual side. The right place to address it is on the residual at drop or finalize time, not on each emitted chunk.
Happy to open a follow-up issue tracking that and link it back here if useful.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb merged PR #22416:
URL: https://github.com/apache/datafusion/pull/22416
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4557257389
> > calling shrink-to-fit will cause a reallocation (and thus copy the data) right?
>
> Yes, I've already asked @RyanJamesStewart to remove `shrink_to_fit` because it could cause a reallocation if there are subsequent pushes, see [#22416 (comment)](https://github.com/apache/datafusion/pull/22416#discussion_r3285982930) and [#22416 (comment)](https://github.com/apache/datafusion/pull/22416#issuecomment-4520956360)
Thank you -- sorry for my confusion. This PR now looks good to merge from my perspective. Thank you both
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on code in PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#discussion_r3306567124
##########
datafusion/common/src/utils/mod.rs:
##########
@@ -395,6 +395,70 @@ pub fn longest_consecutive_prefix<T: Borrow<usize>>(
count
}
+/// Splits `vec` at index `n`, returning the first `n` elements and leaving the
+/// remaining `vec.len() - n` elements in `vec`.
+///
+/// Allocates for whichever side is smaller, so the new allocation is
+/// `min(n, vec.len() - n)` rather than always `n` (as `vec.drain(0..n).collect()`
+/// would). This matters when the split emits a prefix under memory pressure,
+/// where `n` can be close to `vec.len()`.
+pub fn split_vec_min_alloc<T>(vec: &mut Vec<T>, n: usize) -> Vec<T> {
+ if n * 2 <= vec.len() {
+ vec.drain(0..n).collect()
+ } else {
+ let remaining = vec.split_off(n);
Review Comment:
calling `shrink-to-fit` will cause a reallocation (and thus copy the data) right?
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "RyanJamesStewart (via GitHub)" <gi...@apache.org>.
RyanJamesStewart commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4548545173
Opened #22548 to track the residual-Vec shrink as a follow-up. Scope there covers both candidate shapes (utility-side heuristic, caller-side finalize on the `multi_group_by` builders) plus a benchmark on the 1M-to-1024 pathological case to confirm no regression on the common short-chain path.
This PR is unblocked from my side.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4548504151
> calling shrink-to-fit will cause a reallocation (and thus copy the data) right?
Yes, I've already asked @RyanJamesStewart to remove `shrink_to_fit` because it could cause a reallocation if there are subsequent pushes, see https://github.com/apache/datafusion/pull/22416#discussion_r3285982930 and https://github.com/apache/datafusion/pull/22416#issuecomment-4520956360
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4511468071
Thanks for following up on this, @RyanJamesStewart ! With this function accessible from the common module it will be easier to make changes in other places as well.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4515241876
Other than removing my bad suggestion, looks good to me
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4520956360
For the record, this is the issue that I was trying to fix using shrink_to_fit:
Say you have a vector of 1 million elements and you keep taking 1024 elements from it. Each slice will have a capacity of 1024 except the last one, when instead of drain + collect, split_off + mem::replace will be called, since the length of the original Vec will have reached 1024. The capacity of the last slice will be 1 million, because the capacity of the original Vec doesn't change after split_off. This leads to problems with memory accounting.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4535812320
@alamb @Dandandan could you please take a look?
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on code in PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#discussion_r3283452344
##########
datafusion/common/src/utils/mod.rs:
##########
@@ -395,6 +395,70 @@ pub fn longest_consecutive_prefix<T: Borrow<usize>>(
count
}
+/// Splits `vec` at index `n`, returning the first `n` elements and leaving the
+/// remaining `vec.len() - n` elements in `vec`.
+///
+/// Allocates for whichever side is smaller, so the new allocation is
+/// `min(n, vec.len() - n)` rather than always `n` (as `vec.drain(0..n).collect()`
+/// would). This matters when the split emits a prefix under memory pressure,
+/// where `n` can be close to `vec.len()`.
+pub fn split_vec_min_alloc<T>(vec: &mut Vec<T>, n: usize) -> Vec<T> {
+ if n * 2 <= vec.len() {
+ vec.drain(0..n).collect()
+ } else {
+ let remaining = vec.split_off(n);
Review Comment:
I was meaning to add this, but since you're in this area, I appreciate it if you could apply it.
This is important because in datafusion memory tracking is done by looking at capacity, not length, so we shouldn't hand off `Vec`s with small length but very large capacity.
```suggestion
let remaining = vec.split_off(n);
vec.shrink_to_fit();
```
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: minimize allocation in min/max emit_to(First(n)) [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#issuecomment-4511506650
Since this wasn't merged yet, maybe you could hoist those changes here as well: https://github.com/apache/datafusion/pull/22205
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] perf: hoist split_vec_min_alloc to datafusion-common and shrink the emitted prefix [datafusion]
Posted by "ariel-miculas (via GitHub)" <gi...@apache.org>.
ariel-miculas commented on code in PR #22416:
URL: https://github.com/apache/datafusion/pull/22416#discussion_r3285982930
##########
datafusion/common/src/utils/mod.rs:
##########
@@ -395,6 +395,74 @@ pub fn longest_consecutive_prefix<T: Borrow<usize>>(
count
}
+/// Splits `vec` at index `n`, returning the first `n` elements and leaving the
+/// remaining `vec.len() - n` elements in `vec`.
+///
+/// Allocates for whichever side is smaller, so the new allocation is
+/// `min(n, vec.len() - n)` rather than always `n` (as `vec.drain(0..n).collect()`
+/// would). This matters when the split emits a prefix under memory pressure,
+/// where `n` can be close to `vec.len()`.
+pub fn split_vec_min_alloc<T>(vec: &mut Vec<T>, n: usize) -> Vec<T> {
+ if n * 2 <= vec.len() {
+ vec.drain(0..n).collect()
+ } else {
+ let remaining = vec.split_off(n);
+ // The emitted prefix keeps the original (larger) allocation. datafusion
+ // accounts memory by capacity rather than length, so shrink it to avoid
+ // handing off a short Vec that still reserves the pre-split capacity.
+ vec.shrink_to_fit();
Review Comment:
This was my bad for suggesting this, turns out it's a more nuanced change that needs more tests. In https://github.com/apache/datafusion/blob/97d60af9feea027efeeb911bdd195bf2ed704ee4/datafusion/physical-plan/src/aggregates/group_values/multi_group_by/bytes.rs#L384-L391
there's
```
first_n_offsets.push(offset_n);
```
and if we're shrinking the vec to the minimum capacity, pushing to it will cause reallocation and a greater capacity than the original one.
It's probably best to remove the shrink_to_fit for now.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org