@@ -25,30 +25,32 @@ use crate::{ArrowError, DataType, extension::ExtensionType};
2525///
2626/// Extension name: `arrow.timestamp_with_offset`.
2727///
28- /// This type represents a timestamp column that stores potentially different timezone offsets per value.
29- /// The timestamp is stored in UTC alongside the original timezone offset in minutes. This extension type
30- /// is intended to be compatible with ANSI SQL's `TIMESTAMP WITH TIME ZONE`, which is supported by multiple
31- /// database engines.
28+ /// This type represents a timestamp column that stores potentially different timezone offsets per
29+ /// value. The timestamp is stored in UTC alongside the original timezone offset in minutes. This
30+ /// extension type is intended to be compatible with ANSI SQL's `TIMESTAMP WITH TIME ZONE`, which
31+ /// is supported by multiple database engines.
3232///
33- /// The storage type of the extension is a `Struct` with 2 fields, in order:
34- /// - `timestamp`: a non-nullable `Timestamp(time_unit, "UTC")`, where `time_unit` is any Arrow `TimeUnit` (s, ms, us or ns).
35- /// - `offset_minutes`: a non-nullable signed 16-bit integer (`Int16`) representing the offset in minutes
36- /// from the UTC timezone. Negative offsets represent time zones west of UTC, while positive offsets represent
37- /// east. Offsets normally range from -779 (-12:59) to +780 (+13:00).
33+ /// The storage type of the extension is a `Struct` with 2 fields, in order: - `timestamp`: a
34+ /// non-nullable `Timestamp(time_unit, "UTC")`, where `time_unit` is any Arrow `TimeUnit` (s, ms,
35+ /// us or ns). - `offset_minutes`: a non-nullable signed 16-bit integer (`Int16`) representing the
36+ /// offset in minutes from the UTC timezone. Negative offsets represent time zones west of UTC,
37+ /// while positive offsets represent east. Offsets normally range from -779 (-12:59) to +780
38+ /// (+13:00).
3839///
3940/// This type has no type parameters.
4041///
4142/// Metadata is either empty or an empty string.
4243///
43- /// It is also *permissible* for the `offset_minutes` field to be dictionary-encoded with a preferred (*but not required*)
44- /// index type of `int8`, or run-end-encoded with a preferred (*but not required*) runs type of `int8`.
44+ /// It is also *permissible* for the `offset_minutes` field to be dictionary-encoded with a
45+ /// preferred (*but not required*) index type of `int8`, or run-end-encoded with a preferred (*but
46+ /// not required*) runs type of `int8`.
4547///
4648/// It's worth noting that the data source needs to resolve timezone strings such as `UTC` or
4749/// `Americas/Los_Angeles` into an offset in minutes in order to construct a `TimestampWithOffset`.
4850/// This makes `TimestampWithOffset` type "lossy" in the sense that any original "unresolved"
4951/// timezone string gets lost in this conversion. It's a tradeoff for optimizing the row
50- /// representation and simplifying the client code, which does not need to know how to convert
51- /// from timezone string to its corresponding offset in minutes.
52+ /// representation and simplifying the client code, which does not need to know how to convert from
53+ /// timezone string to its corresponding offset in minutes.
5254///
5355/// <https://arrow.apache.org/docs/format/CanonicalExtensions.html#timestamp-with-offset>
5456#[ derive( Debug , Default , Clone , Copy , PartialEq ) ]
0 commit comments