[ https://issues.apache.org/jira/browse/ARROW-16696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
L. C. Hsieh closed ARROW-16696. ------------------------------- Resolution: Won't Fix > [C++] Is Precision check necessary when appending values at decimal builder > --------------------------------------------------------------------------- > > Key: ARROW-16696 > URL: https://issues.apache.org/jira/browse/ARROW-16696 > Project: Apache Arrow > Issue Type: Improvement > Reporter: L. C. Hsieh > Priority: Major > > This is one issue found when I'm trying to enable generate_decimal128_case > integration case for Rust at C++ repo: > https://github.com/apache/arrow/pull/13219. > Rust validates precision of decimal in few places, e.g. DecimalBuilder's > append_value. However, in decimal golden file 0.14.1_decimal.gold.json, there > are some values failing this check. C++ doesn't perform similar check in > appending value at decimal builder as I did a search (e.g. Decimal128Builder, > DecimalFromString), and I can confirm that test case can be passed if I > remove the check in DecimalBuilder.append_value. > Actually in C++, similar check is done when doing a full validating > ArrayData: > https://github.com/apache/arrow/blob/c715bebbd89089f385c9996560866da23ea1ddda/cpp/src/arrow/array/validate.cc#L672. > I'm wondering if we should follow C++ at Rust implementation, i.e. removing > the check from appending value at decimal builder, and moving the check to > the full validation of ArrayData? > I opened a Rust PR (https://github.com/apache/arrow-rs/pull/1767) for that. > Another opinion from the comments is, as we don't do full validation when > finishing the decimal builder, it seems this check is necessary if it is the > promise of the builder to always build a valid ArrayData. Then the check is > needed and it seems C++ needs to add the check there. > Would like to hear some feedback here. Thanks. -- This message was sent by Atlassian Jira (v8.20.7#820007)