Commit Graph

31 Commits

Author SHA1 Message Date
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
af2f4ceb0e Add disambiguation while parsing already scaled DateTime64 #13194 2021-02-21 15:34:04 +03:00
Ivan
414f470c79
Make Poco HTTP Server zero-copy again (#19516)
* Refactoring: part 1

* Refactoring: part 2

* Handle request using ReadBuffer interface

* Struggles with ReadBuffer's

* Fix URI parsing

* Implement parsing of multipart/form-data

* Check HTTP_LENGTH_REQUIRED before eof() or will hang

* Fix HTTPChunkedReadBuffer

* Fix build and style

* Fix test

* Resist double-eof

* Fix arcadian build
2021-02-19 15:51:26 +03:00
Alexey Milovidov
877be11398 Remove useless code, part 2 2021-01-26 21:32:46 +03:00
Azat Khuzhin
e4350e078c Add ability to distinguish remote exceptions from local 2021-01-20 01:10:17 +03:00
Alexey Milovidov
d88d3de0d1 Fix UBSan report: applying non-zero offset to nullptr 2021-01-04 02:31:47 +03:00
nikitamikhaylov
c60c161168 add ParsingException 2020-12-23 01:02:01 +03:00
alexey-milovidov
ab10cb4bf9
Merge pull request #17707 from ClickHouse/quota-by-x-forwarded-for
Allow quotas to be keyed by proxy-forwarded IP address; add support for PROXY protocol
2020-12-08 14:48:05 +03:00
alexey-milovidov
9d7667dada
Update ReadHelpers.h 2020-12-03 16:24:32 +03:00
Alexey Milovidov
3e2447391b Support for PROXY protocol 2020-12-03 00:05:51 +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
tavplubix
058aa8f85e
Merge pull request #16824 from ClickHouse/replace_stringstreams_with_buffers
Replace std::*stringstreams with DB::*Buffers
2020-11-12 01:11:44 +03:00
Alexander Tokmakov
a06be511df pcg serialization 2020-11-09 16:07:38 +03:00
Maksim Kita
240bbd2cd7 Removed fast path for parsing DateTime in Date format 2020-11-09 11:29:08 +03:00
Maksim Kita
02da9af32d DateTime comparison with date string literal 2020-11-09 11:29:08 +03:00
Pavel Kruglov
dbfef325e6 Rename NullSink to NullOutput 2020-10-29 20:22:48 +03:00
Maksim Kita
440ae2bc57 UUID safe cast functions added
1. Added readUUIDTextImpl, readUUIDText, tryReadUUIDText functions in
ReadHelpers.
2. Added toUUIDOrNull, toUUIDOrZero functions based on ReadHelpers read
implementations.
3. Updated documentation.
2020-10-25 11:45:29 +03:00
Artem Zuikov
d304d522cc
Refactoring: rename types to allow change bigint library (#14219) 2020-09-01 12:54:50 +03:00
Artem Zuikov
becc186c91
Add support for extended precision integers and decimals (#13097) 2020-08-19 14:52:17 +03:00
Vitaly Baranov
80a3caef1c Allow using any types for custom fields. 2020-07-31 20:57:49 +03:00
Vitaly Baranov
300727afa3 Rework the StringField* classes and make conversion String => StringField* explicit. 2020-07-31 19:11:27 +03:00
Alexander Kuzmenkov
d77f397b38 review fixes 2020-06-26 03:18:33 +03:00
Alexander Kuzmenkov
059a2704d0 Add CPU frequencies to system.asynchronous_metrics 2020-06-25 23:43:57 +03:00
alexey-milovidov
9de5db9025
Merge pull request #11856 from zhang2014/feature/uuid_without_separator
Support parse UUID without separator
2020-06-25 16:26:55 +03:00
zhang2014
c3a38e7f8c apply review suggestions 2020-06-23 11:15:55 +08:00
Alexey Milovidov
1191679965 Fix wrong code 2020-06-23 00:54:19 +03:00
Alexey Milovidov
4ace4b4c75 Fix bugs in DateTime64 parsing 2020-06-22 23:54:36 +03:00
zhang2014
b820cfb3b6 fix read extra bytes when with separator 2020-06-22 21:30:55 +08:00
zhang2014
ee2ca536ff try fix build failure 2020-06-22 20:01:54 +08:00
zhang2014
b3ef9a90e9 Support parse uuid without separator 2020-06-22 17:31:30 +08:00
Ivan Lezhankin
06446b4f08 dbms/ → src/ 2020-04-03 18:14:31 +03:00