Commit Graph

484 Commits

Author SHA1 Message Date
Maksim Kita
aa85194bb0 Fix race 2021-03-06 14:37:56 +03:00
Maksim Kita
252f7604ee Fixed minor issues 2021-03-06 14:37:56 +03:00
Maksim Kita
8ea6c4b852 Updated Dictionaries default value handling 2021-03-06 14:37:56 +03:00
Maksim Kita
717a9b048a Fixed tests 2021-03-06 14:37:36 +03:00
Maksim Kita
a6534c3b42 Fix update position of duplicated keys in memory partition buffer 2021-03-06 14:36:37 +03:00
Maksim Kita
7602c6c6cb Fixed sanitizers errors 2021-03-06 14:36:37 +03:00
Maksim Kita
6ab451d41d Updated tests 2021-03-06 14:36:37 +03:00
Maksim Kita
92b79420a4 Fixed ubsan test 2021-03-06 14:36:37 +03:00
Maksim Kita
67edeadcc3 Fix dictionaries cmake test 2021-03-06 14:36:37 +03:00
Maksim Kita
ae88bbda5a Updated CacheDictionary 2021-03-06 14:36:37 +03:00
Maksim Kita
ef1645b546 Fix test 2021-03-06 14:36:37 +03:00
Maksim Kita
2a79d77c1b Fixed style check 2021-03-06 14:36:37 +03:00
Maksim Kita
e64b18fbac Added dictGet with multiple requested attributes 2021-03-06 14:36:37 +03:00
Maksim Kita
ccb61064e1 Fix build issues 2021-03-06 14:36:37 +03:00
Maksim Kita
caea9ef734 Fix test 2021-03-06 14:36:37 +03:00
Maksim Kita
e830eb41b1 Fixed build 2021-03-06 14:36:37 +03:00
Maksim Kita
8ee89b59ec Fixed build 2021-03-06 14:36:37 +03:00
Maksim Kita
d04e707567 Fixed special build 2021-03-06 14:36:37 +03:00
Maksim Kita
480beeda37 Fix gcc build 2021-03-06 14:36:37 +03:00
Maksim Kita
a22ec65e8a Fixed minor issues 2021-03-06 14:36:37 +03:00
Maksim Kita
8138ced862 Fixed tests 2021-03-06 14:36:37 +03:00
Maksim Kita
2a5a9c6ca4 Fixed hierarchy tests 2021-03-06 14:36:37 +03:00
Maksim Kita
980d171207 Fixed typos 2021-03-06 14:36:37 +03:00
Maksim Kita
168741c67c SSDCacheDictionaryFileBuffer create directory for file 2021-03-06 14:36:37 +03:00
Maksim Kita
1460d57f97 Fixed segfault because of member order of destruction 2021-03-06 14:36:37 +03:00
Maksim Kita
0edb9d8e3d Added ICacheDictionaryStorage returnsFetchedColumnsInOrderOfRequestedKeys 2021-03-06 14:36:37 +03:00
Maksim Kita
c5fbe8793b Added documentation 2021-03-06 14:36:37 +03:00
Maksim Kita
dc0bb7485d Updated CacheDictionary 2021-03-06 14:36:37 +03:00
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