I have created an issue and will work on it: [C++][Parquet] Parquet writer supports writing int32/int64 for decimal type · Issue #15239 · apache/arrow (github.com) <https://github.com/apache/arrow/issues/15239>
Best, Gang On Sat, Jan 7, 2023 at 1:39 AM Micah Kornfield <emkornfi...@gmail.com> wrote: > > > > Hi Kun, > > The document of arrow c++ about Reading and writing Parquet files > > <https://arrow.apache.org/docs/cpp/parquet.html#logical-types> requires > > `(2) On the write side, a FIXED_LENGTH_BYTE_ARRAY is always emitted.` > > I don't think this is a requirement, it is simply documenting current > behavior. > > Why we not follow the definition of parquet > > < > > > https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#decimal > > > > > for > > writing the parquet file? > > > I think this was probably an issue of effort. Given FLBA is more generic, > there wasn't a need to write to other types. Contributing an option to > write out lower precision types to integers would be useful. > > Thanks, > Micah > > > On Wed, Jan 4, 2023 at 12:58 AM Kun Liu <liu...@apache.org> wrote: > > > Hi all, > > In the PR https://github.com/apache/arrow-rs/pull/3431, I want to > write > > decimal data with lower precision to INT32/INT64 in the parquet file. > > > > The document of arrow c++ about Reading and writing Parquet files > > <https://arrow.apache.org/docs/cpp/parquet.html#logical-types> requires > > `(2) On the write side, a FIXED_LENGTH_BYTE_ARRAY is always emitted.` > > > > But in the definition of parquet format > > < > > > https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#decimal > > > > > for > > logical type of decimal, the decimal type can be represented by > INT32/INT64 > > for the lower precision. > > > > Why we not follow the definition of parquet > > < > > > https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#decimal > > > > > for > > writing the parquet file? > > > > Thanks > > Kun > > >