-
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-39565: [C++] Do not concatenate chunked values of fixed-width types to run "array_take" #41700
base: main
Are you sure you want to change the base?
Conversation
…nulls to a FixedSizeListBuilder
…pending nulls to a FixedSizeListBuilder" This reverts commit b31590c.
…elated to src_offset_
TakeCAA will be used from TakeCCC soon.
…::chunked_exec Before this commit, only the "take" meta function could handle CA parameters.
// XXX: this loop can use TakeCAA once it can handle ChunkedArray | ||
// without concatenating first |
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.
I'm working on this one.
May I ask a unrelated question, when would we call assert and when call DCHECK, since I think they would likely to be same? |
We call assert in headers because we don't want to pay the cost of including |
Rationale for this change
Concatenating a chunked array into a single array before running the
array_take
kernels is very inefficient and can lead to out-of-memory crashes. See also #25822.What changes are included in this PR?
TakeMetaFunction
("take"
) to make"array_take"
able to have achunked_exec
kernel for some types"array_take"
that can receive aChunkedArray
asvalues
and produce an output without concatenating these chunksAre these changes tested?
By existing tests. Some tests were added in previous PRs that introduced some of the infrastructure to support this.