Skip to content
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

[C++] Reconcile type promotion rules between if_else, case_when, coalesce, select #29696

Open
asfimport opened this issue Sep 23, 2021 · 2 comments

Comments

@asfimport
Copy link

asfimport commented Sep 23, 2021

These functions are all conceptually similar and need to promote argument types to a common type. Right now they all have different type promotion heuristics, and there are a few in-progress PRs to improve type support; once those land, we should also reconcile the type promotion logic they use - presumably, all of them should be able to use the exact same logic in the end.

Reporter: David Li / @lidavidm

Related issues:

Note: This issue was originally created as ARROW-14105. Please see the migration documentation for further details.

@asfimport
Copy link
Author

David Li / @lidavidm:
In particular, one thing that needs improvement is dictionary handling. Right now the type promotion values don't get applied to indices/values; we should do things like reconcile dictionary<int8, utf8> and dictionary<int32, binary> to dictionary<int32, binary>. It may be worth making the type promotion helpers iterator-based so that we can try to treat dictionaries uniformly as well, instead of having to copy descriptors around (though this requires the implementation to be in the header, unfortunately).

@asfimport
Copy link
Author

Todd Farmer / @toddfarmer:
This issue was last updated over 90 days ago, which may be an indication it is no longer being actively worked. To better reflect the current state, the issue is being unassigned. Please feel free to re-take assignment of the issue if it is being actively worked, or if you plan to start that work soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant