+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.
