Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PARQUET-818: Refactoring to utilize common IO, buffer, memory managem…
…ent abstractions and implementations This refactoring is a bit of a bloodbath, but I've attempted to preserve as much API backwards compatibility as possible. Several points * Arrow does not use exceptions, so will need to be very careful about making sure that no Status goes unchecked. I've tried to get most of them, but might have missed some * parquet-cpp still exposes an abstract file read and write API as before, but this makes it easy to pass in an Arrow file handle (e.g. HDFS, OS files, memory maps, etc.) * Custom memory allocators will need to subclass `arrow::MemoryPool` instead. If this becomes onerous for some reason, we can try to find alternatives, but basically it's the exact same class as `parquet::MemoryAllocator` Does not require any upstream changes in Arrow. Author: Wes McKinney <wes.mckinney@twosigma.com> Closes apache#210 from wesm/arrow-consolidation and squashes the following commits: ef81084 [Wes McKinney] Configurable Arrow linkage. Slight .travis.yml cleaning 50b44f0 [Wes McKinney] Make some const refs 8438f86 [Wes McKinney] Revert ParquetFileReader::Open to use std::unique_ptr<RandomAccessFile> 671d981 [Wes McKinney] Actually tee output to console ca8df13 [Wes McKinney] Do not hide test output from travis logs f516115 [Wes McKinney] Add public link libs to dependencies to avoid race conditions with external projects 414c75f [Wes McKinney] README cleanups be1acb5 [Wes McKinney] Move thirdparty ep's / setup to separate cmake module 46342ea [Wes McKinney] Remove unneeded ParquetAllocator interface, cleaning b546f08 [Wes McKinney] Use MemoryAllocator alias within parquet core 8c1226d [Wes McKinney] Add Arrow to list of third party deps. Needs to be added to thirdparty f9d8a2a [Wes McKinney] Check some unchecked Statuses 0d04820 [Wes McKinney] Fix benchmark builds. Do not fail in benchmarks if gtest.h is included due to <tr1/tuple> issue ee312af [Wes McKinney] cpplint 6a05cd9 [Wes McKinney] Update installed header files 8d962f1 [Wes McKinney] Build and unit tests pass again c82e2b4 [Wes McKinney] More refactoring 6ec5b71 [Wes McKinney] Re-expose original abstract IO interfaces, add Arrow subclasses that wrap inptu c320c95 [Wes McKinney] clang-format f10080c [Wes McKinney] Fix missed include 6ade22f [Wes McKinney] First cut refactoring, not fully compiling yet Change-Id: I3e7c09a9b603d834db9781082838f945a0994df6
- Loading branch information