ARROW-786: [Format] In-memory format for 128-bit Decimals, handling of sign bit#981
ARROW-786: [Format] In-memory format for 128-bit Decimals, handling of sign bit#981cpcloud wants to merge 22 commits intoapache:masterfrom
Conversation
f0fdc76 to
f0ab2e7
Compare
|
nice! I will review when I can |
5837cfe to
3ae50de
Compare
|
If you rebase on master and then fix bugs, you should be able to get to a passing build |
2a18b76 to
82332b6
Compare
cpp/src/arrow/array.cc
Outdated
There was a problem hiding this comment.
It's set to 0 as the default in the constructor already.
cpp/src/arrow/compare.cc
Outdated
There was a problem hiding this comment.
Any way to share code with FixedSizeBinaryArray on this?
There was a problem hiding this comment.
Possibly. Let me look into cleaning up DecimalArray even more.
There was a problem hiding this comment.
I was able to do a pretty significant refactoring of DecimalArray and inherit most methods from FixedSizeBinaryArray, including reuse of existing comparison methods for both FixedSizeBinaryArray and DecimalArray.
cpp/src/arrow/util/CMakeLists.txt
Outdated
cpp/src/arrow/util/decimal-test.cc
Outdated
cpp/src/arrow/util/int128.cc
Outdated
cpp/src/arrow/util/int128.h
Outdated
cpp/src/arrow/util/int128.h
Outdated
cpp/src/arrow/util/int128.h
Outdated
There was a problem hiding this comment.
Can you use /// style comments for doxygen instead of C-style?
cpp/src/arrow/util/int128.h
Outdated
|
Here's my "Arrow preflight check" that helps with not checking in cpplint or flake8 fails function arrow_preflight {
ARROW_PREFLIGHT_DIR=$HOME/code/arrow/cpp/preflight
mkdir -p $ARROW_PREFLIGHT_DIR
pushd $ARROW_PREFLIGHT_DIR
arrow_cmake
ninja format
ninja lint
popd
pushd $HOME/code/arrow/python
flake8 pyarrow
flake8 --config=.flake8.cython pyarrow
popd
} |
82332b6 to
ea930e1
Compare
a7e721e to
b98c894
Compare
wesm
left a comment
There was a problem hiding this comment.
+1, thanks for all this! onward to the integration tests
| private: | ||
| void SetData(const std::shared_ptr<internal::ArrayData>& data); | ||
| const uint8_t* raw_values_; | ||
| const uint8_t* sign_bitmap_data_; |
representation, adapted from the Apache ORC project's C++ in memory format.
This enables us to write integration tests and results in an in-memory
Decimal128 format that is compatible with the Java implementation
regression tests
read/write support for decimals) and ARROW-1238 (Java Decimal integration
tests).