This is an automated email from the ASF dual-hosted git repository. houqp pushed a commit to branch qp_interval in repository https://gitbox.apache.org/repos/asf/arrow.git
commit 3d127ea0012b93e3adb3c77ba996dd8e59ec7006 Author: Qingping Hou <[email protected]> AuthorDate: Sat Sep 11 11:34:08 2021 -0700 ARROW-13977: [Format] clarify leap seconds and leap days for interval type --- format/Schema.fbs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/format/Schema.fbs b/format/Schema.fbs index 0ee23bb..d9d67aa 100644 --- a/format/Schema.fbs +++ b/format/Schema.fbs @@ -357,18 +357,23 @@ enum IntervalUnit: short { YEAR_MONTH, DAY_TIME, MONTH_DAY_NANO} // days can differ in length during day light savings time transitions). // All integers in the types below are stored in the endianness indicated // by the schema. +// // YEAR_MONTH - Indicates the number of elapsed whole months, stored as // 4-byte signed integers. -// DAY_TIME - Indicates the number of elapsed days and milliseconds, -// stored as 2 contiguous 32-bit integers (8-bytes in total). Support +// DAY_TIME - Indicates the number of elapsed days and milliseconds (no leap seconds), +// stored as 2 contiguous 32-bit integers (8-bytes in total). Support // of this IntervalUnit is not required for full arrow compatibility. +// DAY_TIME interval doesn't have total order due to day light savings. // MONTH_DAY_NANO - A triple of the number of elapsed months, days, and nanoseconds. // The values are stored contiguously in 16 byte blocks. Months and // days are encoded as 32 bit integers and nanoseconds is encoded as a -// 64 bit integer. All integers are signed. Each field is independent -// (e.g. there is no constraint that nanoseconds have the same sign -// as days or that the quantity of nanoseconds represents less -// than a day's worth of time). +// 64 bit integer. Days takes into account of leap days. Nanoseconds does not +// allow for leap seconds. All integers are signed. Each field is independent +// (e.g. there is no constraint that nanoseconds have the same sign as days or +// that the quantity of nanoseconds represents less than a day's worth of +// time). +// MONTH_DAY_NANO interval doesn't have total order due to leap days and day +// light savings. table Interval { unit: IntervalUnit; }
