+1 (binding)

As another data point, the GDAL library (https://gdal.org/en/stable/,
providing IO for many geospatial file formats) internally also just
stores offset information, and not actual time zone names. Therefore,
in its export to Arrow, we also have been struggling with how to
represent such data, and this extension type could potentially be
useful for that.

On Fri, 28 Nov 2025 at 01:49, Sutou Kouhei <[email protected]> wrote:
>
> +1 (binding)
>
> In 
> <RzNiyOMGMd9uXDukdFW9Q5SfqyCFUrm-B0XIXYUwBpeR_RIf5hXtX_-IUu7rYt76esfEzWyMwFBJfdkfgJF8k_QCSCIB5aFp1TBq11iGN6w=@pm.me>
>   "[VOTE][FORMAT] TimestampWithOffset canonical extension type" on Tue, 25 
> Nov 2025 09:55:53 +0000,
>   serramatutu <[email protected]> wrote:
>
> > Hey everyone!
> >
> > We (me and @felipecrv) would like to propose a new canonical extension 
> > type: TimestampWithOffset.
> >
> > Previous discussion around this proposal can be found in the mailing list 
> > [1] and in the format PR [2].
> > The format documentation PR can be found at [2]. A copy of its text is 
> > attached at the end of this email.
> > A Go implementation can be found at [3].
> > A Rust implementation can be found at [4].
> >
> > The vote will be open for at least 72 hours (3 business days).
> >
> > [ ] +1 Accept this proposal
> > [ ] +0
> > [ ] -1 Do not accept this proposal because...
> >
> >
> >
> > RELEVANT LINKS
> >
> > [1] Previous discussion. 
> > https://lists.apache.org/thread/yhbr3rj9l59yoxv92o2s6dqlop16sfnk
> > [2] Format specification pull request. 
> > https://github.com/apache/arrow/pull/48002
> > [3] Golang implementation draft. https://github.com/apache/arrow-go/pull/558
> > [4] Rust implementation draft. https://github.com/apache/arrow-rs/pull/8743
> >
> >
> >
> > FORMAT
> >
> > Timestamp With Offset
> > =============
> > This type represents a timestamp column that stores potentially different 
> > timezone offsets per value. The timestamp is stored in UTC alongside the 
> > original timezone offset in minutes.
> > This extension type is intended to be compatible with ANSI SQL's 
> > ``TIMESTAMP WITH TIME ZONE``, which is supported by multiple database 
> > engines.
> >
> > * Extension name: ``arrow.timestamp_with_offset``.
> >
> > * The storage type of the extension is a ``Struct`` with 2 fields, in order:
> >
> >   * ``timestamp``: a non-nullable ``Timestamp(time_unit, "UTC")``, where 
> > ``time_unit`` is any Arrow ``TimeUnit`` (s, ms, us or ns).
> >
> >   * ``offset_minutes``: a non-nullable signed 16-bit integer (``Int16``) 
> > representing the offset in minutes from the UTC timezone. Negative offsets 
> > represent time zones west of UTC, while positive offsets represent east. 
> > Offsets range from -779 (-12:59) to +780 (+13:00).
> >
> > * Extension type parameters:
> >
> >   This type does not have any parameters.
> >
> > * Description of the serialization:
> >
> >   Extension metadata is an empty string.
> >
> > .. note::
> >
> >    It is also *permissible* for the ``offset_minutes`` field to be 
> > dictionary-encoded or run-end-encoded.

Reply via email to