-
Notifications
You must be signed in to change notification settings - Fork 784
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
Add downcast_array (#2901) #3117
Conversation
where | ||
T: From<ArrayData>, | ||
{ | ||
T::from(array.data().clone()) |
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.
There may be some mechanism to avoid this clone, if/when we work this out this can be optimised. In practice, this clone should be irrelevant, as it all the underlying buffers are reference counted
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.
Will this clone make us unable to Arc::try_unwrap
later?
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.
Provided the source Array
is dropped first, and there are no other references to the underlying Buffer
, e.g. as a result of slicing the array, it will work.
Edit: There isn't really a way to avoid this, even approaches using AsDynAny, etc... will have the same complication
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.
Okay. Let's merge this so I can play with it in #3115.
Benchmark runs are scheduled for baseline = b0b5d8b and contender = 5c2801d. 5c2801d 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 #2901
Rationale for this change
Make this technique more discoverable
What changes are included in this PR?
Are there any user-facing changes?