Alexander Kuzmenkov
f3bde19b74
Do not use iterators in find() and emplace() methods of hash tables.
...
Instead, these methods return a pointer to the required data as they are
stored inside the hash table. The caller uses overloaded functions to
get the key and "mapped" values from this pointer. Such an interface
avoids the need for constructing iterator-like wrapper objects, which is
especially important for compound hash tables such as the future
StringHashMap.
2019-09-24 17:44:35 +03:00
Azat Khuzhin
52f14c1ead
Update HashedDictionary.cpp (fixed rename in return type for SFINAE)
2019-09-22 10:39:50 +03:00
alexey-milovidov
a12cffee91
Update HashedDictionary.h
2019-09-22 05:11:08 +03:00
alexey-milovidov
ab9a7be45a
Comments are the must.
2019-09-22 05:09:40 +03:00
alexey-milovidov
9afea6f0b3
Update HashedDictionary.cpp
2019-09-22 05:04:49 +03:00
Azat Khuzhin
420089c301
Add new dictionary layout (sparse_hashed) that is more memory efficient
...
With this new layout, sparsehash will be used over default HashMap,
sparsehash is more memory efficient but it is also slower.
So in a nutshell:
- HashMap uses ~2x more memory then sparse_hash_map
- HashMap ~2-2.5x faster then sparse_hash_map
(tested on lots of input, and the most close to production was
dictionary with 600KK hashes and UInt16 as value)
TODO:
- fix allocated memory calculation
- getBufferSizeInBytes/getBufferSizeInCells interface
- benchmarks
v0: replace HashMap with google::sparse_hash_map
v2: use google::sparse_hash_map only when <sparse> isset to true
v3: replace attributes with different layout
v4: use ch hash over std::hash
2019-09-21 02:22:40 +03:00
Amos Bird
a1310ffbe6
Split libdbms.so using object library
...
Now the linking time of incremental builds are around 1-2 seconds
2019-09-11 01:56:01 +08:00
Vitaly Baranov
da8f67123f
Improve error handling in cache dictionaries:
...
allow using expired values while the source of a cache dictionary doesn't respond;
clone the source after an error to reset connections;
don't ask the source for a little time after error;
show the last exception in system.dictionaries for a cache dictionary too.
2019-08-30 12:50:38 +03:00
Ivan
b4339f266d
Make a better build scheme ( #6500 )
...
* Fix shared build
* Major default libs refactor
* Fix build with gcc_eh
* Link all libraries as a big group.
* Use global interface library as a group
* Build capnproto using our cmake
* Use only internal libunwind
2019-08-28 23:49:37 +03:00
Alexey Milovidov
8966520801
Added "assert_cast" function as a replacement for static_cast for columns
2019-08-21 05:28:04 +03:00
Alexey Milovidov
09ecd865fc
Allow to use library dictionary source with ASan. May impose troubles.
2019-08-14 03:26:38 +03:00
alesapin
2ca6c0b1bf
Fix bug with memory allocation for string fields in complex key cache dictionary
2019-08-12 12:37:48 +03:00
kreuzerkrieg
112fc71276
adding -Wshadow for GCC
2019-08-09 23:58:16 +03:00
Alexey Milovidov
389cf9fcee
Better fix: removed old and bad code #6069
2019-07-20 02:10:55 +03:00
Alexey Milovidov
21165edcb7
Quick fix for initial load of external dictionaries via ODBC
2019-07-20 02:06:15 +03:00
Vitaly Baranov
6d563c51e6
Remove unnecessary try-catch in the constructors of classes derived from IExternalLoadable.
2019-07-17 11:39:36 +03:00
Nikolai Kochetov
e9f3d4d6b8
Merge pull request #4914 from yandex/processors
...
Processors
2019-07-11 19:22:02 +03:00
Nikolai Kochetov
209793c981
Merged with master.
2019-07-08 16:00:54 +03:00
Alexey Milovidov
553e6a273e
Two more fixes for PVS-Studio
2019-07-08 03:51:43 +03:00
Alexey Milovidov
3c4784a466
Removed obsolete undocumented embedded dictionaries that were used by Yandex.Metrica
2019-06-27 22:18:28 +03:00
Nikolai Kochetov
f9b29bfdd2
Merged with master.
2019-06-25 20:00:54 +03:00
Nikolai Kochetov
93b9f3e06a
Disable processors for ClickHouseDictionarySource.
2019-06-25 19:41:06 +03:00
Alexey Milovidov
8f77d898f3
Renamed functions for consistency #5704
2019-06-24 17:51:37 +03:00
alexey-milovidov
8e41d89126
Merge pull request #5704 from zhang2014/fix/ISSUES-5697
...
ISSUES-5697 fix insert and select query with mysql style identifier
2019-06-24 17:40:28 +03:00
proller
1ac09fa721
Split Common/config.h by libs (dbms) ( #5715 )
2019-06-24 14:17:15 +03:00
zhang2014
1786407621
ISSUES-5697 fix insert and select query with mysql style identifier
2019-06-21 13:51:27 +08:00
alesapin
e45d727e9d
Merge pull request #4558 from podshumok/distributred-timeout
...
Distributed and remote timeouts
2019-06-17 13:58:17 +03:00
alexey-milovidov
39c6fbc324
Merge pull request #5567 from vitlibar/really-lazy-dictionary-load
...
Non-blocking loading of external dictionaries
2019-06-15 22:15:53 +03:00
Alexey Milovidov
b2100c7bcf
Removed strange quoting style like `this'. See https://english.stackexchange.com/questions/17695/any-reference-on-the-usage-of-a-backtick-and-single-quotation-mark-like-this
...
Added backQuote and backQuoteIfNeed when required to correctly quote identifiers with proper escaping.
2019-06-15 15:06:22 +03:00
Vitaly Baranov
b4384ce2a9
Dictionaries can be loaded in parallel.
...
A bad dictionary cannot block all the loading anymore.
Implemented really lazy loading of external dictionaries.
Provided more detailed information about the loading of each dictionary
to make diagnostics easier.
2019-06-14 22:18:47 +03:00
Alexey Milovidov
c846d0f6af
Namespace comments are unneeded according to the code style.
...
find dbms -name '*.h' -or -name '*.cpp' | xargs grep -l -P '}\s*//+\s*namespace\s*' | xargs sed -i -r -e 's/}\s*\/\/+\s*namespace\s*.*$/}/'
2019-06-13 13:43:37 +03:00
Konstantin Podshumok
e60a2fd1ad
clickhouse dictionary source: fix timeouts for remotes
2019-06-02 12:43:20 +03:00
chertus
3f2e09ac93
Merge branch 'master' into decimal
2019-05-29 13:58:33 +03:00
chertus
49e12eaa60
remove unused specializations in dictionaries
2019-05-28 22:30:01 +03:00
alexey-milovidov
c5d18dfde1
Merge pull request #5446 from 4ertus2/some
...
Disable implicit type conversions in dictGet functions (it's not working)
2019-05-28 20:34:13 +03:00
chertus
0d77a96b3c
disable implicit type conversions in dictGet functions
2019-05-28 17:04:00 +03:00
Azat Khuzhin
0275d62523
Fix element_count for hashed dictionary (do not include duplicates)
2019-05-28 11:25:31 +03:00
chertus
f82ea1c1d5
dictGet() dictGetOrDefault for Decimals
2019-05-23 17:04:33 +03:00
Clément Rodriguez
c4c99c80a1
Make the connection closure parameterized in dictionary.xml
2019-05-23 15:55:00 +02:00
Clément Rodriguez
7b40d37212
Close MySQL connections after usage in MySQLDictionarySource
2019-05-23 15:09:07 +02:00
Ivan Lezhankin
0821d62516
Merge ITableDeclaration into IStorage.
...
Also a couple of massive include-refactorings with better forwarding
2019-05-17 17:34:25 +03:00
proller
c6d0e095e0
Prepare cmake for new contrib/poco ( #5062 )
2019-04-25 00:33:04 +03:00
proller
ba4687e110
Cmake: dont use LINK_MODE (but use BUILD_SHARED_LIBS) ( #5091 )
2019-04-24 12:06:28 +03:00
Alexey Milovidov
58d7d1e451
Resolved some of PVS-Studio warnings
2019-04-22 19:07:09 +03:00
proller
525726a5e2
Remove pocoext ( #5036 )
2019-04-17 20:36:58 +03:00
alesapin
2764401d0f
Fix exception 'No message received'
2019-03-29 21:10:03 +03:00
Alexey Milovidov
aea3bd2cc9
Fixed potential deadlock in ExternalDictionaries
2019-03-15 03:29:53 +03:00
Alexey Milovidov
9d89cc0fc1
Debugging PODArray
2019-03-08 06:23:02 +03:00
Alexey Milovidov
ddbada6646
Fixed build #4583
2019-03-05 23:34:37 +03:00
Alexey Milovidov
bbaece6900
Fixed error
2019-03-04 22:04:35 +03:00