Commit Graph

348 Commits

Author SHA1 Message Date
alexey-milovidov
2f23f1b123
Update DateLUTImpl.h 2021-03-03 22:49:20 +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
Alexey Milovidov
50c62c3b4c Add memcpy implementation from @jart 2021-03-02 22:12:30 +03:00
alexey-milovidov
3bd180c416
Merge pull request #20149 from keen-wolf/timezone_about
fix toMinute function to handle special timezone
2021-02-28 21:53:51 +03:00
keenwolf
303c389b36 change the time_t to unsigned to handle properly the start date of 1970-01-01 2021-02-28 18:11:54 +08:00
alexey-milovidov
d5757c67e6 Update DateLUTImpl.h 2021-02-24 17:09:27 +02:00
alexey-milovidov
b8b916008c Update DateLUTImpl.h 2021-02-24 17:09:27 +02:00
Vasily Nemkov
d321c13cbf Fixed special build 2021-02-24 17:08:43 +02:00
Vasily Nemkov
7a53daaefd Fixed issues reported by PVS-Studio and Clang11/GCC10 2021-02-24 17:08:43 +02:00
Vasily Nemkov
4fcc23ec9a Fixed build for GCC-10 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
Azat Khuzhin
810023a65c Do not undefine __has_feature (may break c++ headers)
If the order of <common/defines.h> and c++ header will be wrong the
compilation will be broken.

v2: rename __ch_has_feature to ch_has_feature to fix -Wreserved-id-macro
v3: do not fallback to 0
2021-02-23 19:46:47 +03:00
Azat Khuzhin
8ab578065a Fix __has_feature macros under gcc
__has_feature supported only by clang.

But libcxx/libcxxabi overrides it to 0:

    $ fgrep -r 'define __has_feature' contrib/libcxx*
    contrib/libcxx/include/__config:#define __has_feature(__x) 0
    contrib/libcxxabi/src/demangle/DemangleConfig.h:#define __has_feature(x) 0

Thus the checks for __has_feature will be wrong, undefine it again to
avoid such issues.

This will also fix building with sanitizers under gcc (before this patch
BOOST_USE_UCONTEXT wasn't set for sanitizers).
2021-02-23 19:39:34 +03:00
Alexey Milovidov
d2a9e5842a Fix wrong formatting of overflowed DateTime64 2021-02-21 21:01:46 +03:00
Alexey Milovidov
9cb972e9ed Fix UBSan report in Decimal arithmetic #19432 2021-02-21 13:23:18 +03:00
Alexey Milovidov
c760d5224d Suppress UBSan report in Decimal comparison 2021-02-13 03:56:38 +03:00
Alexey Milovidov
1546f5bcb9 Suppress UBSan report in Decimal comparison 2021-02-13 03:54:38 +03:00
Nicolae Vartolomei
479b45d772 Fix linker flags for shared linking on macOS
This combination now works: `-DUSE_STATIC_LIBRARIES=0 -DSPLIT_SHARED_LIBRARIES=1`.

Without `SPLIT_SHARED_LIBRARIES` it is still failing.
2021-02-07 14:58:52 +00:00
keenwolf
610798aa48 fix the toMinute bug which will cause toDateTime or toString printing wrong time 2021-02-06 15:32:49 +08:00
alexey-milovidov
867f5a8975
Merge pull request #20029 from ClickHouse/remove-useless-code-5
Remove useless code
2021-02-03 21:06:43 +03:00
Nikolai Kochetov
c39c965612
Merge pull request #19962 from keen-wolf/timezoneOffset
Implement the timezoneOffset function
2021-02-03 20:37:34 +03:00
Alexey Milovidov
02da869d10 Remove useless code 2021-02-03 12:46:41 +03:00
Alexey Milovidov
191389d040 Fix some of the issues found by Coverity 2021-02-02 22:08:32 +03:00
Alexey Milovidov
12485eee6b Fix some of the issues found by Coverity 2021-02-02 22:07:23 +03:00
keenwolf
9beb7689cc add comments and update test cases. 2021-02-02 23:35:45 +08:00
keenwolf
d251807ea4 add function timezoneOffset 2021-02-02 11:01:20 +08:00
Alexey Milovidov
eb0473c3f9 Fix UBSan report in "round" 2021-01-29 04:03:38 +03:00
Maksim Kita
bd81f43ecb
Merge pull request #19672 from ClickHouse/bigint-remove-old-code
Remove old code for BigInt.
2021-01-27 11:28:45 +03:00
Alexey Milovidov
093108bf81 Normalize BigInt implementation 2021-01-27 03:54:57 +03:00
Alexey Milovidov
f3929b151a Remove even more code 2021-01-26 22:04:03 +03:00
Azat Khuzhin
f4a4d33c2d Suppress UBsan reports in addYears()
https://clickhouse-test-reports.s3.yandex.net/19528/1c364b6ee3a44487529954cf2792e615f7de0f82/fuzzer_ubsan/report.html#fail1
2021-01-26 01:12:40 +03:00
tavplubix
9fc1eba0bc
Update DateLUTImpl.h 2021-01-25 12:40:49 +03:00
alexey-milovidov
77af612bc5
Merge pull request #19466 from azat/UBsan-report-fixes
UBsan report fixes (arraySlice, addMinutes/addHours/addWeeks/addDays, sumWithOverflow(Decimal))
2021-01-24 22:27:15 +03:00
Azat Khuzhin
cb30a02540 Fix UBsan report in addDays(INT64_MAX)
https://clickhouse-test-reports.s3.yandex.net/19466/df53438a66ee95de790b60d35f36eca986590027/fuzzer_ubsan/report.html#fail1
2021-01-24 13:51:05 +03:00
Alexey Milovidov
505898747e Fix buffer overflow in DateLUT 2021-01-23 01:58:41 +03:00
Alexey Milovidov
4968f1733e Annotations for DateLUT 2021-01-21 15:01:24 +03:00
hexiaoting
a2e5f7693a Fix condition error 2020-12-30 11:20:38 +08:00
hexiaoting
ccaea5fa42 Make Date > 2106-02-07 overflow as 0 2020-12-28 19:09:41 +08:00
Nikolai Kochetov
8ffadac2a3 Try disable ucontect for arcadia 2020-12-23 19:49:36 +03:00
Nikolai Kochetov
e56a1c442c Use ucontext fir arcadia build. 2020-12-23 18:20:52 +03:00
Nikolai Kochetov
af7f5c9518
Merge pull request #17868 from ClickHouse/async-read-from-socket
Async read from socket
2020-12-23 12:20:42 +03:00
alexey-milovidov
f0dc3ec152
Merge pull request #17665 from amosbird/clientedit
clickhouse-client editor
2020-12-22 09:53:54 +03:00
Amos Bird
fe16aec48b
add .sql suffix 2020-12-21 14:43:06 +08:00
Amos Bird
0d89e4aac6
correct write 2020-12-21 14:43:06 +08:00
Amos Bird
86aa155e62
Cleaner 2020-12-21 14:43:05 +08:00
Amos Bird
a3d52dd6a0
Don't shallow errors. 2020-12-21 14:43:05 +08:00
Amos Bird
91e8b35977
clickhouse-client editor 2020-12-21 14:43:05 +08:00
alexey-milovidov
b932b984a0
Update wide_integer_impl.h 2020-12-21 04:02:49 +03:00
Alexey Milovidov
a159fc0a90 Merge branch 'master' into ucasFL-fix 2020-12-20 22:29:43 +03:00
alexey-milovidov
55ed2ab563
Update wide_integer_impl.h 2020-12-20 09:46:43 +03:00
Amos Bird
c447628d42
Add connection thread metrics 2020-12-18 15:22:55 +08:00
alexey-milovidov
6ee2ada592
Merge pull request #18204 from ClickHouse/remove-strerror
Do not use non thread-safe function `strerror`
2020-12-18 08:07:46 +03:00
Alexey Milovidov
fb3d235e84 Do not use strerror 2020-12-17 21:25:12 +03:00
Maksim Kita
fd7fe0f84c Updated ya.make 2020-12-17 12:10:46 +03:00
Maksim Kita
685099af7f Move getPageSize in common 2020-12-17 00:23:41 +03:00
Nikolai Kochetov
af83d82a84 Try use tsan annotated boost fibre. 2020-12-16 20:06:04 +03:00
alexey-milovidov
0d7e27d93f
Merge branch 'master' into fix 2020-12-14 23:02:14 +03:00
Nikolai Kochetov
8de5cd5bc7 Merge branch 'master' into async-read-from-socket 2020-12-14 17:45:38 +03:00
Nikolai Kochetov
e295dfe6e3 Use ucontext for asan 2020-12-14 17:42:08 +03:00
Amos Bird
88341fec82
client SIGWINCH fix 2020-12-12 00:34:40 +08:00
PHO
d014ac4ce2 Provide a default constructor for wide::integer
The implicit one provided by compiler does not initialize its member
variable "items" because it's a POD array. GCC emits a warning about this.
2020-12-07 16:00:32 +03:00
fenglv
ff4ffd2c6d Merge branch 'master' of github.com:ClickHouse/ClickHouse into fix 2020-12-07 04:39:49 +00:00
Ivan
315ff4f0d9
ANTLR4 Grammar for ClickHouse and new parser (#11298) 2020-12-04 05:15:44 +03:00
Ilya Yatsishin
9b72323594
Try fix arcadia build (#17720)
* Try fix arcadia build

* fix
2020-12-02 17:54:52 +03:00
Yuriy Chernyshov
a6e66fc3b5
Use feature testing macro to test if char8_t is supported 2020-11-30 22:36:30 +03:00
alexey-milovidov
81e4885664
Merge pull request #17556 from ClickHouse/memory-amount-worse
getMemoryAmount: make code worse
2020-11-30 12:53:50 +03:00
Alexey Milovidov
f80ae936ad Fix parsing of multiline queries in interactive mode #13654 2020-11-29 17:50:42 +03:00
Alexey Milovidov
7627f4f371 getMemoryAmount: make code worse 2020-11-29 15:13:10 +03:00
fenglv
5c5d72379a Merge branch 'master' of github.com:ClickHouse/ClickHouse into fix 2020-11-28 03:38:29 +00:00
alexey-milovidov
d3b10c91f0
Update wide_integer_impl.h 2020-11-26 08:03:54 +03:00
Alexander Tokmakov
60a5782c75 fix AST formatting in log messages 2020-11-22 20:23:12 +03:00
fenglv
615287ae75 Avoid bigint_cast stack overflow 2020-11-22 03:42:16 +00:00
Matwey V. Kornilov
9d509cfc56 Add missed <stdexcept>
std::logic_error is used at line 294, so the appropriate header is required.
2020-11-21 13:26:38 +03:00
alexey-milovidov
b494b18748
Merge pull request #17108 from ClickHouse/ya-make-owners
Add "OWNER" to ya.make files.
2020-11-17 05:19:46 +03:00
Alexey Milovidov
24f4fa6edf Follow Arcadia ya.make rules 2020-11-17 00:16:50 +03:00
Alexey Milovidov
3df04ce0c2 Follow Arcadia ya.make rules 2020-11-16 21:24:58 +03:00
myrrc
2430d9d20d fixed the UB when casting from double to int64_t
Corresponding upstream fix: https://github.com/cerevra/int/pull/24
2020-11-13 18:13:15 +03:00
Ivan
902091cc07
Slightly better miniselect usage (#16896)
* Slightly better miniselect usage
* Update ColumnDecimal.cpp
2020-11-13 14:28:18 +03:00
Alexey Milovidov
b56486510f Improve Arcadia 2020-11-05 12:55:01 +03:00
Mikhail Filimonov
41971e073a
Fix typos reported by codespell 2020-10-27 12:04:03 +01:00
Alexey Milovidov
87fe8f2a00 Merge branch 'master' into filipecaixeta-master 2020-10-14 15:27:58 +03:00
Azat Khuzhin
f7bf94b5d3 Check return value of the history_save/history_load
The coding style is different and this is the intention, to make look
like surrounding code.
2020-10-12 23:57:00 +03:00
Azat Khuzhin
f211d33841 Avoid creating separate replxx instance
This replxx object is pretty heavy and in debug build may slow down [1]
(although I cannot confirm 0.5s delay for each query in debug build) the
client and besides it is not required since ClickHouse-Extras/replxx#10,
which changes the behaviour of history_save(), and now it will not
update current session anymore, only save the history to the disk.

  [1]: https://github.com/ClickHouse/ClickHouse/pull/13086#issuecomment-667719026
2020-10-12 23:56:29 +03:00
Alexey Milovidov
a171af157e Remove seven years old trash 2020-10-11 18:52:33 +03:00
Alexey Milovidov
269b6383f5 Check for #pragma once in headers 2020-10-10 21:37:02 +03:00
Artem Zuikov
4fd1db73a1
Faster 256-bit multiplication (#15418) 2020-09-29 20:52:34 +03:00
alesapin
071ff6c9af
Merge pull request #15063 from azat/symbolizers-settings-for-non-server
Set sanitizers options in the current shell too
2020-09-28 17:44:39 +03:00
alesapin
1adc0a8205 Fix race condition in client suggestions 2020-09-28 12:58:42 +03:00
Artem Zuikov
b4f1eb07ff
slightly better bigint plus/minus (#15320) 2020-09-28 12:07:45 +03:00
Artem Zuikov
2e6edc250c better min/max for Int128 2020-09-22 14:35:46 +03:00
Alexey Milovidov
ef5363b87f Fix terribly wrong code 2020-09-19 02:05:13 +03:00
Alexey Milovidov
37facf4482 Fix clang-tidy 2020-09-19 02:05:13 +03:00
alexey-milovidov
456c970929
Merge pull request #14808 from ClickHouse/remove-header
Remove one header
2020-09-18 21:57:00 +03:00
Artem Zuikov
0520b05001
Speedup wide integers (#14859) 2020-09-18 12:51:44 +03:00
Alexey Milovidov
9df338f37b Merge branch 'master' into remove-header 2020-09-18 01:18:53 +03:00
Artem Zuikov
51ba12c2c3
Try speedup build (#14809) 2020-09-15 12:55:57 +03:00
Alexey Milovidov
3795dfed14 Remove one header 2020-09-14 16:34:44 +03:00
Artem Zuikov
d274125c74
Fix wide integer left shift + refactoring (#14697) 2020-09-14 14:56:43 +03:00
Alexey Milovidov
4e197cf069 Remove unused headers 2020-09-10 19:41:46 +03:00
Alexey Milovidov
e3924b8057 Fix "Arcadia" 2020-09-08 01:14:13 +03:00
Artem Zuikov
7c20aa2c62
Another 256-bit integers (strict 32 bytes) (#14229) 2020-09-04 16:33:02 +03:00
Artem Zuikov
d304d522cc
Refactoring: rename types to allow change bigint library (#14219) 2020-09-01 12:54:50 +03:00
alexey-milovidov
7ea5364299
Merge pull request #13648 from filimonov/tzdata_version2
tzdata improvements
2020-08-24 23:07:37 +03:00
myrrc
d298409660 Merge remote-tracking branch 'upstream/master' into bug/low-cardinality-arrays-optimisations 2020-08-20 12:07:02 +03:00
Artem Zuikov
becc186c91
Add support for extended precision integers and decimals (#13097) 2020-08-19 14:52:17 +03:00
Alexey Milovidov
eeb769d2d4 Remove useless code around zkutil 2020-08-18 22:02:07 +03:00
Alexey Milovidov
5ac2ed9e5b Generate ya.make #13572 2020-08-18 12:53:21 +03:00
Alexey Milovidov
b5af14d6a0 Generate ya.make 2020-08-18 12:47:29 +03:00
alexey-milovidov
1e80318b94
Merge pull request #13600 from amosbird/rlfix
Readline fix
2020-08-16 17:41:50 +03:00
Mikhail Filimonov
fe55ef6b2c Trying to fix TZ with plus sign inside 2020-08-13 23:28:56 +02:00
myrrc
82206e89dd fixed perftest long test and StringRef assert 2020-08-12 17:07:56 +03:00
myrrc
67d716b5cc revert accidental changes 2020-08-11 16:36:28 +03:00
Alexander Kazakov
6e0d536327
Merge branch 'master' into bug/low-cardinality-arrays-optimisations 2020-08-11 16:25:20 +03:00
Amos Bird
1eda00d27d
Readline fix 2020-08-11 17:49:39 +08:00
Ivan
c8d3999693
Enable Poco::NetSSL support in ya.make 2020-08-10 14:18:57 +03:00
Vitaly Baranov
2e6ba2a05d
Merge pull request #13496 from vitlibar/compound-identifiers-for-custom-settings
Support compound identifiers for custom settings.
2020-08-10 01:03:02 +03:00
Alexey Milovidov
182e2929f3 Merge branch 'master' into embed-configs 2020-08-09 02:41:44 +03:00
Alexey Milovidov
b4ac900462 Fix "Arcadia" build 2020-08-09 02:38:53 +03:00
alexey-milovidov
ba5988dcf6
Merge pull request #13446 from ClickHouse/fix-netloc
Function "netloc": fix wrong code.
2020-08-09 01:39:46 +03:00
Vitaly Baranov
5401694138 splitInto() now can put result into a vector of std::string_view. 2020-08-08 19:35:53 +03:00
Alexey Milovidov
0d70393bac Fix build 2020-08-08 07:55:33 +03:00
Alexey Milovidov
0f79eb3cc5 Embed configs into binary 2020-08-08 06:42:42 +03:00
Alexey Milovidov
0cbbe153cd Fix typos, the last 1% 2020-08-08 04:21:04 +03:00
Alexey Milovidov
d1ed1fb83a Fix error 2020-08-07 04:04:37 +03:00
myrrc
98119af9de Merge remote-tracking branch 'upstream/master' into bug/low-cardinality-arrays-optimisations 2020-08-04 15:01:27 +03:00
Alexey Milovidov
c202691319 Merge branch 'master' into stack-frams-size-limit 2020-07-30 23:53:52 +03:00
Azat Khuzhin
b7eee3afe0 Add a comment of explicit flock() in ReplxxLineReader::addToHistory() 2020-07-29 21:00:46 +03:00
Azat Khuzhin
d6102869e5 Avoid re-loading completion from the history file after each query
By default replxx reload history from the file in
replxx::Replxx::history_save(), and this will overlaps current session
history with the history from other sessions, and this does not looks a
great idea (bash and other interpreters don't do this).

So to avoid this, use separate replxx::Replxx instance.
2020-07-29 21:00:46 +03:00
myrrc
0f5b089270 fix: ubsan, EMPTY_STRING_REF constant 2020-07-29 01:08:09 +03:00
myrrc
da9502e496 Merge remote-tracking branch 'upstream/master' into bug/low-cardinality-arrays-optimisations 2020-07-28 15:06:39 +03:00
alexey-milovidov
da32e62daa
Fix comment (tnx Pavel Belikov) (#12957) 2020-07-28 11:58:26 +03:00
myrrc
61ef8852a1 reverting explicit fix 2020-07-22 23:13:57 +03:00
myrrc
586ecf0a0b fixed 2 explicit constructors 2020-07-22 23:10:12 +03:00
myrrc
1d0bf93444 added perftest, fixed style check and PVS bugs 2020-07-22 22:44:11 +03:00
myrrc
222eb7fba3 fixed result column overwriting 2020-07-22 16:18:21 +03:00
Alexey Milovidov
50bbfc848d Merge branch 'master' into stack-frams-size-limit 2020-07-21 14:45:15 +03:00
Vitaly Baranov
0b17595a91
Merge pull request #12423 from vitlibar/update-simdjson
Update simdjson
2020-07-20 10:15:38 +03:00
Vitaly Baranov
61e43c3ef9 Make conversion std::string_view => StringRef explicit. 2020-07-19 12:50:24 +03:00
Alexander Kuzmenkov
f785837b1d
Merge pull request #12518 from ClickHouse/aku/android
Some provisions for Android build
2020-07-15 22:05:41 +03:00
Alexander Kuzmenkov
3e6b9f297f Some provisions for Android build 2020-07-15 14:16:00 +03:00
Alexey Milovidov
360bf61639 Fix error 2020-07-13 03:45:18 +03:00
Alexey Milovidov
f2fe419ca9 Saturate negative unix timestamp to zero instead of overflow 2020-07-13 01:48:22 +03:00
Alexey Milovidov
5eb60d5bd3 Remove underscore as word-break character. This partially reverts #11975 2020-07-06 01:16:32 +03:00
Alexey Milovidov
10c40f4b11 Attempt to fix "Arcadia" build 2020-07-05 03:48:00 +03:00
Alexey Milovidov
96e8e93c64 Fix warnings from CodeQL 2020-07-05 02:16:16 +03:00
Andrew Onyshchuk
80c0676031 Extend word break config to all non-alphanumeric chars 2020-06-25 20:36:09 -05:00
Alexey Milovidov
6eda152726 Remove dependency on tzdata 2020-06-20 15:26:44 +03:00
Ivan
47ad338cb2
Refactor CMake build files (#11390)
* Get rid of lib_name.cmake
* Refactor Boost and HyperScan libraries
* Refactor lz4
* Fix build with xxHash
2020-06-09 13:54:49 +03:00