Commits


Micah Kornfield authored and Wes McKinney committed 0b472d86026
ARROW-82: Initial IPC support for ListArray This is a work in progress because I can't get clang-tidy to shut-up on parameterized test files (see last commit which I need to revert before merge). I'd like to make sure this is a clean build and make sure people are ok with these change. This PR also has a lot of collateral damage for small/large things I cleaned up my way to make this work. I tried to split the commits up logically but if people would prefer separate pull requests I can try to do that as well. Open questions: 1. For supporting strings, binary, etc. I was thinking of changing thei4 type definitions to inherit from ListType, and to hard-code the child type. This would allow for simpler IPC code (all of the instantiation of types would happen in construct.h/.cc?) vs handling each of there types separately for IPC. 2. There are some TODOs I left sprinkled in the code and would like peoples thoughts on if they are urgent/worthwhile for following up on. Open issues: 1. Supporting the rest of the List backed logical types 2. More unit tests for added functionality. As part of this commit I also refactored the Builder interfaces a little bit for the following reasons: 1. It seems that if ArrayBuilder owns the bitmap it should be responsible for having methods to manipulate it. 2. This allows ListBuilder to use the parent class + a BufferBuilder instead of inheriting Int32Builder, which means it doesn't need to do strange length/capacity hacks. Other misc things here: 1. Native popcount in test-util.h 2. Ability to build a new list on top of an existing by incrementally add offsets/sizes 3. Added missing types primitive types in construct.h for primitive. Author: Micah Kornfield <emkornfield@gmail.com> Closes #59 from emkornfield/emk_list_ipc_PR and squashes the following commits: 0c5162d [Micah Kornfield] another format fix 0af558b [Micah Kornfield] remove a now unnecessary NOLINT, but mostly to trigger another travis-ci job that failed due to apt get issue 7789205 [Micah Kornfield] make clang-format-3.7 happy 6e57728 [Micah Kornfield] make format fixes 5e15815 [Micah Kornfield] fix make lint 8982723 [Micah Kornfield] remaining style cleanup be04b3e [Micah Kornfield] add unit tests for zero length row batches and non-null batches. fix bugs 10e6651 [Micah Kornfield] add in maximum recursion depth, surfaced possible recursion issue with flatbuffers 3b219a1 [Micah Kornfield] Make append is_null parameter is_valid for api consistency 2e6c477 [Micah Kornfield] add missing RETURN_NOT_OK e71810b [Micah Kornfield] make Resize and Init virtual on builder 8ab5315 [Micah Kornfield] make clang tidy ignore a little bit less hacky 53d37bc [Micah Kornfield] filter out ipc-adapter-test from tidy 8e464b5 [Micah Kornfield] Fixes per tidy and lint aa0602c [Micah Kornfield] add potentially useful pool factories to test utils 39c57ed [Micah Kornfield] add potentially useful methods for generative arrays to ipc test-common a2e1e52 [Micah Kornfield] native popcount 61b0481 [Micah Kornfield] small fixes to naming/style for c++ and potential bugs 5f87aef [Micah Kornfield] Refactor ipc-adapter-test to make it paramaterizable. add unit test for lists. make unit test pass and and construction method for list arrays 45e41c0 [Micah Kornfield] Make BufferBuilder more useable for appending primitives 1374485 [Micah Kornfield] augment python unittest to have null element in list 20f984b [Micah Kornfield] refactor primitive builders to use parent builders bitmap 3895d34 [Micah Kornfield] Refactor list builder to use ArrayBuilders bitmap methods and a separate buffer builder 01c50be [Micah Kornfield] Add utility methods for managing null bitmap directly to ArrayBuilder cc7f851 [Micah Kornfield] add Validate method to array and implementation for ListArray