Commit Graph

29 Commits

Author SHA1 Message Date
Maksim Kita
947f28d430 IFunction refactoring 2021-05-15 20:33:15 +03:00
alexey-milovidov
ee9aaab4bc
Merge pull request #22937 from Enmk/formatDateTime_toDateTime64_fixes
Fixes: formatDateTime and toDateTime64
2021-04-13 01:40:25 +03:00
Ivan
495c6e03aa
Replace all Context references with std::weak_ptr (#22297)
* Replace all Context references with std::weak_ptr

* Fix shared context captured by value

* Fix build

* Fix Context with named sessions

* Fix copy context

* Fix gcc build

* Merge with master and fix build

* Fix gcc-9 build
2021-04-11 02:33:54 +03:00
Vasily Nemkov
4dcc1b2d2e Fixed formatDateTime for DateTime64 arguments 2021-04-09 19:39:54 +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
jianmei zhang
e967b6bf49 add a %Q replacement for formatDateTime 2021-01-18 12:16:32 +08:00
Ivan Lezhankin
f897f7c93f Refactor IFunction to execute with const arguments 2020-11-17 16:24:45 +03:00
Nikolai Kochetov
295e612343 Fix build and tests. 2020-10-20 16:11:57 +03:00
Nikolai Kochetov
ce2f6a0560 Part 4. 2020-10-18 00:41:50 +03:00
Nikolai Kochetov
959424f28a Rename block to columns. 2020-10-14 17:04:50 +03:00
Nikolai Kochetov
966b1d6cf5 Rename Block to ColumnsWithTypeAndName. 2020-10-14 16:09:11 +03:00
Nikolai Kochetov
3a17c2a7ac Rename FunctionArguments to ColumnsWithTypeAndName 2020-10-11 22:20:20 +03:00
Nikolai Kochetov
d28325a353 Replace getByPosition to [] 2020-10-10 21:24:57 +03:00
Nikolai Kochetov
a7fb2e38a5 Use ColumnWithTypeAndName as function argument instead of Block. 2020-10-09 10:41:28 +03:00
Artem Zuikov
b3eafc1106 hide symbols in nameless namespace 2020-09-07 21:00:37 +03:00
alexey-milovidov
be38b0fe75
Merge pull request #13497 from amosbird/tdm
Better toDate/toDateTime functions.
2020-08-09 02:14:58 +03:00
Amos Bird
ba204fe3b2
fix test and add alias to FROM_UNIXTIME 2020-08-09 00:24:43 +08:00
Alexey Milovidov
edd89a8610 Fix half of typos 2020-08-08 03:47:03 +03:00
Alexey Milovidov
9b39b6b7b4 Whitespace #12484 2020-07-23 13:29:59 +03:00
alexey-milovidov
456bf4461b
Merge branch 'master' into br1 2020-07-23 13:26:41 +03:00
alexey-milovidov
7a7f6dbf13
Update formatDateTime.cpp 2020-07-23 13:23:55 +03:00
Nikolai Kochetov
e4689ce302 Make IFunction::executeImpl const. 2020-07-21 16:58:07 +03:00
feng lv
767bc7a905 add doc
fix test

fix

name style fix
2020-07-14 18:50:51 +08:00
feng lv
f0b423e928 add test
style fix
2020-07-14 14:16:47 +08:00
feng lv
dffdb6e9e9 add FROM_UNIXTIME function 2020-07-14 14:04:37 +08:00
alexey-milovidov
f8a43d5e07
Update formatDateTime.cpp 2020-07-05 01:00:30 +03:00
vivarum
d387fa719e New ISO8601 year modificators for formatDateTime 2020-07-04 21:54:42 +03:00
Alexey Milovidov
8c9408f927 Checkpoint 2020-04-22 11:31:10 +03:00
Ivan Lezhankin
06446b4f08 dbms/ → src/ 2020-04-03 18:14:31 +03:00