Commits


Jorge C. Leitao authored and Neville Dipale committed 2e284f48e8a
ARROW-10449 [Rust] Make Dictionary::keys be an array This PR: 1. Makes `DictionaryArray::keys` be an `PrimitiveArray`. 2. Removes `NullIter` and many of the `unsafe` code that it contained 3. Simplifies the parquet writer implementation around dictionaries 4. Indirectly removes a bug on NullIter's `DoubleEndedIterator` on which the implementation was not following the spec with respect to `end == current` (compare with implementation of `DoubleEndedIterator` for std's `Vec`'s `IntoIter`). 5. Fixes error in computing the size of a dictionary, which was double-counting `data` and `values` (`values` is a reference to `data`) 6. Adds check that the dictionary's ArrayData's datatype matches `T::DATA_TYPE`. Since `NullIter` was not being directly tested, no tests were removed. This is backward incompatible and the migration requires replacing `dict.keys()` by `dict.keys().into_iter()` whenever the user's intention is to use `keys()` as an iterator. Closes #8561 from jorgecarleitao/dictionary_clean Authored-by: Jorge C. Leitao <jorgecarleitao@gmail.com> Signed-off-by: Neville Dipale <nevilledips@gmail.com>