You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "David Li (Jira)" <ji...@apache.org> on 2021/09/29 19:49:00 UTC

[jira] [Created] (ARROW-14177) [C++] Optimize dictionary support in kernels/Support nulls in DictionaryUnifier

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)