I just merged the [Format] PR. Thank you everyone for the reviews and feedback.
On Tue, Dec 2, 2025 at 12:08 AM serramatutu <[email protected]> wrote: > With 10 votes (10 binding, 0 non-binding), the vote passed. > > > The format documentation PR needs to be merged by a maintainer with rights > to do so. We will now continue to work on the implementation PRs to get > them to a mergeable state. > > Thank you all for voting! > > Binding votes: > 1. Antoine Pitrou > 2. Curt Hagenlocher > 3. Gang Wu > 4. Dewey Dunnington > 5. Ian Cook > 6. Ruoxi Sun > 7. Rok Mihevc > 8. Matt Topol > 9. Sutou Kouhei > 10. Joris Van den Bossche > > > > On Friday, November 28th, 2025 at 23:28, Joris Van den Bossche < > [email protected]> wrote: > > > > > > > > > +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.
