[ https://issues.apache.org/jira/browse/ARROW-786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16102037#comment-16102037 ]
Wes McKinney commented on ARROW-786: ------------------------------------ It seems like we might end up having to build a from-scratch implementation of Java's BigDecimal in C++. It might be worth it, but it's also a lot of work. The JDK source code is not ASF-friendly so we would have to start from scratch from a mathematical resource > [Format] In-memory format for 128-bit Decimals, handling of sign bit > -------------------------------------------------------------------- > > Key: ARROW-786 > URL: https://issues.apache.org/jira/browse/ARROW-786 > Project: Apache Arrow > Issue Type: Improvement > Components: Format > Reporter: Wes McKinney > Fix For: 0.6.0 > > > cc [~cpcloud] > We found in ARROW-655 that we needed to add an extra bit for signedness for > decimals stored as 128-bit values to be able to use the Boost multiprecision > libraries. This makes Decimal128 not fit completely neatly as a 16-byte fixed > size binary value, and more of a {{struct<sign_bitmap: boolean, data: > fixed_size_binary(16)>}}. What is the current formata in the Java > implementation? We will need to document the memory layout for decimals that > maximizes compatibility across languages and eventually implement integration > tests for IPC. -- This message was sent by Atlassian JIRA (v6.4.14#64029)