-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-13358: [C++] Improve type support in if_else #11218
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
Conversation
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.
Much of this will need to be reconciled with ARROW-13390/#11080.
|
This needs rebasing now. |
bca16d4 to
870c1a6
Compare
|
Contains some changes from #11272 so if_else/case_when/coalesce have mostly similar implicit cast rules (though I will leave it to ARROW-14105 to fully unify these). I may also revisit the dictionary case here as it seems slow from test runtime; instead of unifying the dictionaries on-the-fly we should unify them up front and construct a transposition map. (If we copy the RHS to the output, we can use the existing function for transposing indices, and assuming unification preserves the first dictionary's indices exactly, we can then copy the LHS to the output without having to transpose again.) |
|
Ah, the described optimization would require being able to unify dictionaries with nulls. Filed ARROW-14177 for now. |
pitrou
left a comment
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.
Very nice!
870c1a6 to
f388a41
Compare
pitrou
left a comment
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.
Thanks for the updates. +1 from me.
Closes apache#11218 from lidavidm/arrow-13358 Lead-authored-by: David Li <[email protected]> Co-authored-by: Antoine Pitrou <[email protected]> Signed-off-by: Antoine Pitrou <[email protected]>
No description provided.