>From a Rust perspective, I don't see any significant fundamental difference
between Fixed Length Binary(16) and an Int128. Therefore I also favor using
the existing type rather than adding a new one.

The fact we already have optimized readers/writers for Fixed Length Binary
means that it would likely be less work to reuse the existing types
rather than support a new i128 type.

One potential issue with using Fixed Length Binary would be that it is not
consistent with the existing physical types (Int32/Int64/Float/Double, etc)
but I don't see that as a deal breaker

Andrew

On Wed, Jul 9, 2025 at 4:11 AM Antoine Pitrou <anto...@python.org> wrote:

>
> As someone who's primarily involved in the Parquet C++ implementation,
> I definitely agree with this.
>
> Regards
>
> Antoine.
>
>
> On Tue, 8 Jul 2025 19:36:33 +0200
> Gábor Szádovszky <ga...@apache.org> wrote:
> > The potential introduction of the primitive type INT128 came up related
> to
> > the Interval type discussions. I think it is an independent topic, so let
> > me start a new thread about it.
> >
> > Maybe, I'm too Java oriented but I cannot see much difference between
> > FLBA[16] and a new primitive containing 16 bytes. We can define any byte
> > ordering for a specific logical type on top of FLBA[16] as well as any
> > value ordering related to that type. We may also easily extend int
> specific
> > encodings to FLBA, then it is up to the implementation to choose that
> > encoding for specific logical types.
> >
> > From implementation point of view, in Java, since we don't have a 16 byte
> > primitive, we would represent INT128 the same way as we do in the case of
> > FLBA[16].
> > Other languages choose whatever in-memory representation they want to
> > handle FLBA[16] or especially the related logical type.
> >
> > What do you think?
> >
> > Cheers,
> > Gabor
> >
>
>
>
>

Reply via email to