Alexander Kazakov
63b95c7451
MySQL dictionary source: A mechanism for retrying unexpected connection loss during communication with mysql server ( #21237 )
...
* Added a new type of Exception
for better recognition of connection failures
* Added more logging for mysql communication
* Retries on connection loss during query.
Make MySQL dictionary source resilient to unexpected loss of connection
during querying MySQL. This behavior is controlled with
".fail_on_connection_loss" config parameter, which defaults to false.
* Stripped some debugging leftover garbage
* Minor followup corrections
* Corrections after PR comments
* Yet more fixes
2021-02-27 11:18:28 +03:00
Maksim Kita
50e135db0f
Added comment
2021-02-17 19:24:04 +03:00
Maksim Kita
b2c09f002f
Dictionary create source with functions crash fix
2021-02-17 15:26:00 +03:00
Azat Khuzhin
2907385400
Avoid invalid dereference in RANGE_HASHED() dictionary
...
UBsan report the following [1], when query does not contains any columns
from the dictionary:
```sql
SELECT
toUInt32(toUInt32(NULL, toUInt32(NULL, inf, NULL), NULL)),
toUInt32(toUInt32(toUInt32(toUInt32(toUInt32(NULL, 1., NULL)), toUInt32(toUInt32(NULL, 0.5, NULL)), toUInt32(NULL, NULL)), toUInt32(toUInt32(NULL, 1., NULL)), toUInt32(NULL, NULL)), toUInt32(toUInt32(toUInt32(toUInt32(NULL, 1000.0001220703125, NULL)), toUInt32(toUInt32(NULL, 10.000100135803223, NULL)), toUInt32(NULL, NULL)), NULL, NULL, NULL))
FROM somedict
```
```
std::__1::vector<DB::ColumnWithTypeAndName, std::__1::allocator<DB::ColumnWithTypeAndName> >::back() @ 0x128c07a6 in /workspace/clickhouse
./obj-x86_64-linux-gnu/../src/Dictionaries/RangeDictionaryBlockInputStream.h:0: DB::RangeDictionaryBlockInputStream<DB::RangeHashedDictionary, unsigned short, unsigned long>::fillBlock(DB::PODArray<unsigned long, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, DB::PODArray<unsigned short, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, DB::PODArray<unsigned short, 4096ul, Allocator<false, false>, 15ul, 16ul> const&) const @ 0x1692335e in /workspace/clickhouse
./obj-x86_64-linux-gnu/../src/Dictionaries/RangeDictionaryBlockInputStream.h:0: DB::RangeDictionaryBlockInputStream<DB::RangeHashedDictionary, unsigned short, unsigned long>::getBlock(unsigned long, unsigned long) const @ 0x16922f96 in /workspace/clickhouse
./obj-x86_64-linux-gnu/../src/Dictionaries/DictionaryBlockInputStreamBase.cpp:23: DB::DictionaryBlockInputStreamBase::getHeader() const @ 0x166ab57c in /workspace/clickhouse
```
[1]: https://clickhouse-test-reports.s3.yandex.net/19451/64c0bf98290362fa216c05b070aa122a12af3c25/fuzzer_ubsan/report.html#fail1
2021-02-11 21:07:37 +03:00
Alexey Milovidov
40939ff6ba
Fix data race in executable dictionary
2021-02-03 20:45:50 +03:00
Vitaly Baranov
9427d5d94b
Merge pull request #19805 from vitlibar/allow-getting-return-type-of-dictget-without-loading-dictionary
...
Fix starting the server with tables having default expressions containing dictGet()
2021-02-02 18:19:55 +03:00
Maksim Kita
d9d206af92
Fixed typo
2021-02-01 12:35:47 +03:00
Maksim Kita
d3f299269f
Fixed code review issues
2021-02-01 12:35:47 +03:00
alexey-milovidov
e5b89f24b5
Update ExecutableDictionarySource.cpp
2021-02-01 12:35:47 +03:00
alexey-milovidov
77a8ef24de
Update ExecutableDictionarySource.cpp
2021-02-01 12:35:47 +03:00
alexey-milovidov
ecd6e10e22
Update ExecutableDictionarySource.cpp
2021-02-01 12:35:47 +03:00
alexey-milovidov
b83b8c56da
Update ExecutableDictionarySource.cpp
2021-02-01 12:35:47 +03:00
Maksim Kita
a0755e439c
Fixed typo
2021-02-01 12:35:47 +03:00
Maksim Kita
a9ecb6bf78
Fixed clang-tidy
2021-02-01 12:35:47 +03:00
Maksim Kita
d194294d0b
Fixed tests
2021-02-01 12:35:47 +03:00
Maksim Kita
dafb0ef4e9
ExecutableDictionarySource added implicit_key option
2021-02-01 12:35:47 +03:00
Vitaly Baranov
95177dc0de
Fix access to the key as an attribute in IPAddressDictionary.
2021-01-30 19:06:54 +03:00
Vitaly Baranov
7c8deae0e1
Fix starting the server with tables having columns' default expressions containing dictGet().
...
Allow getting return type of dictGet() without loading dictionary.
2021-01-30 19:06:48 +03:00
Ilya Yatsishin
a353020c54
Merge pull request #19804 from davenger/odbc_build_fix
...
Fix dependency on ODBC for Yandex internal build
2021-01-29 16:50:59 +03:00
Alexander Gololobov
0ee05d34fc
Fix dependency on ODBC for Yandex internal build
2021-01-29 14:54:54 +03:00
Maksim Kita
f0b1bc88c7
Fixed style issues
2021-01-27 16:25:27 +03:00
Maksim Kita
67ffa4189e
Fixed clang build
2021-01-27 16:25:27 +03:00
Maksim Kita
31881d24ad
Fixed clang errors
2021-01-27 16:25:27 +03:00
Maksim Kita
8e8d6f36ac
Fixed DictionaryDefaultValueExtractor
2021-01-27 16:25:27 +03:00
Maksim Kita
6653e356a3
Fixed build issues
2021-01-27 16:25:27 +03:00
Maksim Kita
b7a150cc63
Updated DictionaryDefaultValueExtractor interface
2021-01-27 16:25:27 +03:00
Maksim Kita
c4ffa2160f
Updated interfaces. Added documentation.
2021-01-27 16:25:27 +03:00
Maksim Kita
b0d3f32a36
Added DefaultValueExtractor
2021-01-27 16:25:27 +03:00
Maksim Kita
b11905f493
Fixed tests
2021-01-27 16:25:27 +03:00
Maksim Kita
7cb7d4dbce
Fixed dicitionaries todo
2021-01-27 16:25:27 +03:00
Maksim Kita
498df53ebf
Fixed style issues
2021-01-27 16:25:27 +03:00
Maksim Kita
77d2e00dd8
Updated DictionaryStructure
2021-01-27 16:25:27 +03:00
Maksim Kita
42d4fc1bbd
Updated FlatDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
a45459e095
Fixed tests
2021-01-27 16:25:27 +03:00
Maksim Kita
357b0b95a9
Added Nullable support for ComplexDirectDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
25d6e18ec0
Added Nullable support for ComplexKeyHashedDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
6e51b2f60a
Added Nullable support for RangeHashedDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
b745c64459
Added Nullable support for DirectDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
3e2d615e62
Added Nullable support for HashedDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
7ded8be0d5
Added Nullable support for FlatDictionary
2021-01-27 16:25:27 +03:00
Maksim Kita
b01027787e
Fixed tests
2021-01-27 16:25:27 +03:00
Maksim Kita
164e55972b
Fix style issue
2021-01-27 16:25:27 +03:00
Maksim Kita
791c7204d7
Fix style issues
2021-01-27 16:25:27 +03:00
Maksim Kita
8fdbde8642
Updated PolygonDictionary to new interface
2021-01-27 16:25:27 +03:00
Maksim Kita
0ed64d8ab0
Simplified getColumn implementation
2021-01-27 16:25:27 +03:00
Maksim Kita
6f7ad82160
Updated IPAddressDictionary to new interface
2021-01-27 16:25:26 +03:00
Maksim Kita
07fab85cc4
Updated SSDComplexKeyCacheDictionary to new interface
2021-01-27 16:25:26 +03:00
Maksim Kita
0d2e498ed4
Updated ComplexKeyCacheDictionary to new interface
2021-01-27 16:25:26 +03:00
Maksim Kita
b4896ee82b
Updated ComplexKeyDirectDictionary to new interface
2021-01-27 16:25:26 +03:00
Maksim Kita
81f4bc7b4c
Updated SSDCacheDictionary to new interface
2021-01-27 16:25:26 +03:00