+1 (binding)
On Wed, Nov 26, 2025 at 7:38 AM Antoine Pitrou <[email protected]> wrote: > > > +1 (binding). Thanks for doing this! > > > Le 25/11/2025 à 10:55, serramatutu a écrit : > > 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. >
