viirya commented on issue #131:
URL: https://github.com/apache/arrow-rs/issues/131#issuecomment-1153299515

   I'm looking around at Decimal support in C++. Roughly I think we have some 
subtasks:
   
   - [ ] Implement Decimal128 and Decimal256
   - [ ] Change from i128 to Decimal128 in DecimalArray and DecimalBuilder APIs
   - [ ] Rename DecimalArray to Decimal128Array
   - [ ] Rename DecimalBuilder to Decimal256Builder
   - [ ] Implement Decimal256Builder 
   - [ ] Implement Decimal256Array
   
   and IPC & Parquet works if needed, etc.
   
   In C++ implementations, there are Decimal128 and Decimal256 classes. They 
are used in Decimal128Builder and Decimal256Builder APIs. So users can 
construct 128/256-decimal values during building the arrays. Although 
Decimal128Array and Decimal256Array don't provide APIs to get Decimal128 and 
Decimal256 values directly now.
   
   Basically in Decimal128 and Decimal256 classes, decimal value is represented 
in an uint64_t array. I think we can follow this up to have Decimal with 256 
bits.
   
   In current Rust implementations, we use i128 in DecimalBuilder and 
DecimalArray APIs. To maintain consistency on Decimal related APIs, we need to 
change from i128 to Decimal128 in these APIs.
   
   I think we may also need some works in IPC and Parquet for the new 
Decimal256 support.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to