Commit Graph

20 Commits

Author SHA1 Message Date
Alexey Milovidov
cf0912ba02 Remove unused field 2021-03-03 23:14:33 +03:00
alexey-milovidov
80c17d5537
Update DateLUTImpl.cpp 2021-03-03 22:41:10 +03:00
alexey-milovidov
e412bcb490
Update DateLUTImpl.cpp 2021-03-03 22:30:12 +03:00
alexey-milovidov
04672a4365
Update DateLUTImpl.cpp 2021-03-03 22:29:26 +03:00
Vasily Nemkov
d321c13cbf Fixed special build 2021-02-24 17:08:43 +02: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
Alexey Milovidov
0f79eb3cc5 Embed configs into binary 2020-08-08 06:42:42 +03:00
Alexey Milovidov
8db5dcd106 Fix UBSan and MSan report in DateLUT 2020-05-11 07:25:46 +03:00
Alexey Milovidov
20808de08c Merge remote-tracking branch 'origin/master' into even-more-warnings 2020-05-10 22:28:16 +03:00
Alexey Milovidov
a7681933cb Asserts in DateLUTImpl 2020-05-10 04:43:26 +03:00
Alexey Milovidov
a576a4fbcd Enable extra warnings for base, utils, programs 2020-05-10 01:59:34 +03:00
Alexey Milovidov
58a4d29f40 Fix "odbc-bridge" test 2020-04-25 23:52:45 +03:00
Azat Khuzhin
ac8fb14350 Allow fallback for timezones with unbundled CCTZ in debug
Follow-up-for: #10425
2020-04-23 01:21:50 +03:00
Alexey Milovidov
3e2b247b6b Check that only embedded timezones are used in Debug build 2020-04-22 20:15:26 +03:00
Alexey Milovidov
91f966610e Do not embed timezones on alien platforms 2020-04-22 20:11:36 +03:00
Alexey Milovidov
45b5afa131 Avoid dependency on system tzdata 2020-04-22 06:17:29 +03:00
Alexey Milovidov
860e9092f1 Fixed another inconsistency in partition names 2020-04-13 01:25:41 +03:00
Ivan
571d0d541c
Improve CCTZ contrib (#9687)
* common/Types.h → common/types.h
  Also split Core/Defines.h and merge with common/likely.h
* Improve cctz contrib
* Fix ALWAYS_INLINE and unbundled build
* Update Dockerfile from master
* Fix test for unbundled library
2020-03-19 13:38:34 +03:00
Alexey Milovidov
7a7e45e248 clang-tidy, part 1 2020-03-09 00:04:10 +03:00
Ivan Lezhankin
2d44fa59b5 libs/ → base/ 2020-02-14 17:48:30 +03:00