We've merged the extension type into the Arrow Go implementation[1], I've
been waiting for one of the other implementations to implement the proposal
[2] before I go make a PR to add it to the docs in full. If you think it's
worthwhile for me to start drafting up a PR to add to the Canonical
Extensions right now then I'm happy to do so. I think most of the
objections to using an extension type instead of a real type are answered
or managed by the Proposal [2] and ensuring the extension type has
appropriate functional support and methods.

I think filing a ticket to track the work makes a lot of sense!

--Matt

[1]:
https://github.com/apache/arrow-go/commit/5240503993cc0aa47554b932c341e4940ce42348
[2]:
https://docs.google.com/document/d/1pw0AWoMQY3SjD7R4LgbPvMjG_xSCtXp3rZHkVp9jpZ4/edit?usp=sharing

On Wed, Jun 25, 2025 at 12:38 PM Andrew Lamb <al...@influxdata.com> wrote:

> Did we ever decide that Variant will be a Arrow canonical extension type?
>
> I don't see it currently listed in the docs [1] however an extension type
> maybe was added to the C++ implementation in [2] (sorry I am not
> familiar with that codebase to be sure)
>
> As I think was mentioned elsewhere there is also a github discussion about
> adding Variant as a real type[3] that may also be relevant, from Curt.
>
> If this is the direction we are heading I will be happy to file a ticket to
> track the work
>
> Andrew
>
> [1]:
>
> https://arrow.apache.org/docs/format/CanonicalExtensions.html#canonical-extension-types
> [2]: https://github.com/apache/arrow/pull/45375/files
> [3]: https://github.com/apache/arrow/issues/42069
>
> On Wed, May 21, 2025 at 4:43 AM wish maple <maplewish...@gmail.com> wrote:
>
> > When I went through the parquet variant spec, I found that an arrow
> > extension type might be a must because decoding the parquet row
> > by row is so inefficient.
> >
> > I've draft a decoding tool in parquet c++ and ready for review now [1]
> >
> > [1] https://github.com/apache/arrow/pull/46372
> >
> > Best,
> > Xuwei Fu
> >
> > Matt Topol <zotthewiz...@gmail.com> 于2025年5月9日周五 06:03写道:
> >
> > > Hey All,
> > >
> > > There's been various discussions occurring on many different thread
> > > locations (issues, PRs, and so on)[1][2][3], and more that I haven't
> > > linked to, concerning what a canonical Variant Extension Type for
> > > Arrow might look like. As I've looked into implementing some things,
> > > I've also spoken with members of the Arrow, Iceberg and Parquet
> > > communities as to what a good representation for Arrow Variant would
> > > be like in order to ensure good support and adoption.
> > >
> > > I also looked at the ClickHouse variant implementation [4]. The
> > > ClickHouse Variant is nearly equivalent to the Arrow Dense Union type,
> > > so we don't need to do any extra work there to support it.
> > >
> > > So, after discussions and looking into the needs for engines and so
> > > on, I've iterated and written up a proposal for what a Canonical
> > > Variant Extension Type for Arrow could be in a google doc[5]. I'm
> > > hoping that this can spark some discussion and comments on the
> > > document. If there's relative consensus on it, then I'll work on
> > > creating some implementations of it that I can use to formally propose
> > > the addition to the Canonical Extensions.
> > >
> > > Please take a read and leave comments on the google doc or on this
> > > thread. Thanks everyone!
> > >
> > > --Matt
> > >
> > > [1]: https://github.com/apache/arrow-rs/issues/7063
> > > [2]: https://github.com/apache/arrow/issues/45937
> > > [3]:
> https://github.com/apache/arrow/pull/45375#issuecomment-2649807352
> > > [4]:
> > >
> https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse
> > > [5]:
> > >
> >
> https://docs.google.com/document/d/1pw0AWoMQY3SjD7R4LgbPvMjG_xSCtXp3rZHkVp9jpZ4/edit?usp=sharing
> > >
> >
>

Reply via email to