David Li created ARROW-14177:
--------------------------------
Summary: [C++] Optimize dictionary support in kernels/Support
nulls in DictionaryUnifier
Key: ARROW-14177
URL: https://issues.apache.org/jira/browse/ARROW-14177
Project: Apache Arrow
Issue Type: Improvement
Components: C++
Reporter: David Li
ARROW-13358, ARROW-14167, ARROW-13573, etc. add support for dictionary types in
various generic 'selection'-style kernels. However, the support is fairly
unoptimized, repeatedly hashing and inserting the same values. Instead, we
could implement more optimized support in some cases.
For example, for if_else, we could first unify both dictionaries (in such a way
that the first dictionary is unchanged), then copy-with-transpose the indices
of the second argument, then copy the relevant indices of the first argument
(which doesn't require transposition). This would require DictionaryUnifier to
support nulls in dictionaries, however.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)