Commit Graph

16 Commits

Author SHA1 Message Date
Nikolay Degterinsky
95086536b7 Fix style 2023-04-06 01:22:39 +00:00
Nikolay Degterinsky
0dfcc84910 Add support for Date/Datetime datatypes to arrayMin, arrayMax, arrayDifference functions 2023-04-06 00:53:53 +00:00
万康
308b964ca4 enable DateTime64 to be version column 2021-05-10 20:30:52 +08:00
Anton Popov
6a15431be7 Merge remote-tracking branch 'upstream/master' into HEAD 2021-03-25 15:57:35 +03:00
Anton Popov
be540e442d return back data types 2021-03-09 17:10:28 +03:00
Anton Popov
1e61f64f95 move data types to serializations 2021-03-09 17:04:20 +03:00
Vasily Nemkov
2d03d330bc Extended range of DateTime64 to years 1925 - 2238
The Year 1925 is a starting point because most of the timezones
switched to saner (mostly 15-minutes based) offsets somewhere
during 1924 or before. And that significantly simplifies implementation.

2238 is to simplify arithmetics for sanitizing LUT index access;
there are less than 0x1ffff days from 1925.

* Extended DateLUTImpl internal LUT to 0x1ffff items, some of which
  represent negative (pre-1970) time values.
  As a collateral benefit, Date now correctly supports dates up to 2149
  (instead of 2106).
* Added a new strong typedef ExtendedDayNum, which represents dates
  pre-1970 and post 2149.
* Functions that used to return DayNum now return ExtendedDayNum.
* Refactored DateLUTImpl to untie DayNum from the dual role of being
  a value and an index (due to negative time). Index is now a different
  type LUTIndex with explicit conversion functions from DatNum, time_t,
  and ExtendedDayNum.
* Updated DateLUTImpl to properly support values close to epoch start
  (1970-01-01 00:00), including negative ones.
* Reduced resolution of DateLUTImpl::Values::time_at_offset_change
  to multiple of 15-minutes to allow storing 64-bits of time_t in
  DateLUTImpl::Value while keeping same size.
* Minor performance updates to DateLUTImpl when building month LUT
  by skipping non-start-of-month days.
* Fixed extractTimeZoneFromFunctionArguments to work correctly
  with DateTime64.
* New unit-tests and stateless integration tests for both DateTime
  and DateTime64.
2021-02-24 17:08:35 +02:00
Vitaly Baranov
18e036d19b Improved serialization for data types combined of Arrays and Tuples.
Improved matching enum data types to protobuf enum type.
Fixed serialization of the Map data type.
Omitted values are now set by default.
2021-02-17 20:50:09 +03:00
Vasily Nemkov
eb9604ecd0 Fixed comparison of DateTime4 with different scales
Made DateTime64 a stand-alone type rather than typedef to allow function resolution/deduction based on type.
Added tests.
2020-11-12 23:32:16 +03:00
Alexey Milovidov
edd89a8610 Fix half of typos 2020-08-08 03:47:03 +03:00
Alexey Milovidov
1462a66d1e Fix typos 2020-06-27 22:05:00 +03:00
Alexey Milovidov
db0fc6c9a6 Fix tests 2020-06-14 21:24:25 +03:00
Vasily Nemkov
28a2cc0a82 Functions {to,from}UnixTimestamp64{Milli,Micro,Nano}
* Family of functions to convert DateTime64 to Int64 and back, usefull for
   imporintg/exporting raw timestamp values of certain precision.
 * Docs
 * Tests
 * Fixed ya.make
2020-05-26 16:42:22 +03:00
Alexey Milovidov
f26f8b99dc Fix "Arcadia" build 2020-05-12 04:28:53 +03:00
Vasily Nemkov
2c2005817f New function toStartOfSecond(DateTime64) -> DateTime64
This funtion nullifies sub-second part of DateTime64 value.
2020-05-11 12:06:06 +03:00
Ivan Lezhankin
06446b4f08 dbms/ → src/ 2020-04-03 18:14:31 +03:00