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]
