Rework dict encoding of PooledArray/CategoricalArray to fix outstandi… (#119)
authorJacob Quinn <quinn.jacobd@gmail.com>
Sun, 31 Jan 2021 06:18:44 +0000 (23:18 -0700)
committerGitHub <noreply@github.com>
Sun, 31 Jan 2021 06:18:44 +0000 (23:18 -0700)
commit62266b5919f6bc5b543f9cfed64d7c1bf4818558
treee459e430527fffbb38fd3aa2d7cb7a29c5c63a4d
parentda73d8201a8915325800dfda9a099539be096e7d
Rework dict encoding of PooledArray/CategoricalArray to fix outstandi‚Ķ (#119)

* Rework dict encoding of PooledArray/CategoricalArray to fix outstanding issues

Fixes #117, #116, and #113. For #116, we just need to special case if user happens to pass in a DictEncoded themselves. We need to pass it through to the `toarrowvector` method that no-ops. For #113, we require the new functionality in PooledArrays that allows passing the `signed` and `compress` keyword arguments to ensure we get signed refs for our dict encoding. For #117, we add CategoricalArrays as a test dependency and ensure that if it contains any `missing` value, we *don't* recode the indices values down by 1, since the `missing` ref is 0, so other refs can already be considered "offsets". If there are no `missing`, then we still need to recode down since refs should always start from 0 in arrow format.

* PooledArrays 1.0 compat

* Update src/arraytypes/dictencoding.jl

Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr>
* Check refpool

* Fix test

Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr>
.gitignore
Project.toml
src/arraytypes/arraytypes.jl
src/arraytypes/dictencoding.jl
test/runtests.jl