Amos Bird
1cf47da60d
ubsan/memsan fix.
2019-09-16 21:20:17 +08:00
Alexander Kuzmenkov
8e9a8584e0
Do not provide mutable key access in hash map cells.
...
We don't need it anymore after we changed the hash table key memory
management to use callbacks. Removing this interface is important for
hash maps that do not store the key, such as FixedHashMap or the
prospective compound StringHashMap.
2019-09-10 20:12:30 +03:00
alexey-milovidov
00edf4fac3
Update HashTable.h
2019-09-06 21:19:50 +03:00
alexey-milovidov
805bd31641
Update dbms/src/Common/HashTable/HashTable.h
...
Co-Authored-By: akuzm <36882414+akuzm@users.noreply.github.com>
2019-09-06 21:12:31 +03:00
Alexander Kuzmenkov
cacf6d3282
Key memory management for compound hash tables.
...
Some aggregation methods initially emplace a temporary StringRef key
into a hash table. Then, if the key was not seen before, they make a
persistent copy of the key and update the hash table with it. This
approach is not suitable for compound hash tables, because the logic of
when the persistent key is needed is more complex, and is contained
within the hash table itself.
In this commit, we switch to managing key memory with callbacks passed
to the hash table, that allow it to request a persistent copy of the key
if it is needed. This should be more appropriate for compound hash
tables.
This commit prepares for StringHashMap PR #5417 .
2019-09-06 18:05:28 +03:00
Alexander Kuzmenkov
24a8755b82
Formatting changes for StringHashMap PR #5417 .
2019-08-28 13:52:14 +03:00
Alexander Kuzmenkov
c0bb52ca6d
Separate the hash table interface for ReverseIndex.
...
It is significantly different from other uses of hash tables, and poses
the main obstacle to changing the hash table interface to the one that
can be easily supported by compound hash tables.
Make it explicitly separate, implement it only for a particular kind of
HashTable, and move this implementation to the ReverseIndex module.
2019-08-26 21:00:44 +03:00
Alexey Milovidov
58d7d1e451
Resolved some of PVS-Studio warnings
2019-04-22 19:07:09 +03:00
Amos Bird
26ab5dd7a7
A Proper lookup table that uses HashTable's API
...
This is the first step of allowing heterogeneous cells in hash tables.
performance test results are
```
1. HashMap<UInt16, UInt8, TrivialHash, HashTableFixedGrower<16>>;
2. NewLookupMap<UInt16, UInt8>
ResolutionWidth 30000 1 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................223550276.46
ResolutionWidth 30000 2 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................248772721.24
Best: 2 - 24877272124
ResolutionWidth 100000 1 ..........................................................................................................................................................................................................................................................238498413.99
ResolutionWidth 100000 2 ..........................................................................................................................................................................................................................................................261808889.98
Best: 2 - 26180888998
ResolutionWidth 300000 1 ...................................................................................239307348.81
ResolutionWidth 300000 2 ...................................................................................257592761.30
Best: 2 - 25759276130
ResolutionWidth 1000000 1 .........................240144759.26
ResolutionWidth 1000000 2 .........................257093531.91
Best: 2 - 25709353191
ResolutionWidth 5000000 1 .....241573260.35
ResolutionWidth 5000000 2 .....259314162.79
Best: 2 - 25931416279
ResolutionDepth 30000 1 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................217108119.84
ResolutionDepth 30000 2 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................249459504.41
Best: 2 - 24945950441
ResolutionDepth 100000 1 ..........................................................................................................................................................................................................................................................229065162.17
ResolutionDepth 100000 2 ..........................................................................................................................................................................................................................................................253769105.64
Best: 2 - 25376910564
ResolutionDepth 300000 1 ...................................................................................233079225.18
ResolutionDepth 300000 2 ...................................................................................256316273.78
Best: 2 - 25631627378
ResolutionDepth 1000000 1 .........................234184633.51
ResolutionDepth 1000000 2 .........................261100491.57
Best: 2 - 26110049157
ResolutionDepth 5000000 1 .....233118795.66
ResolutionDepth 5000000 2 .....252436160.41
Best: 2 - 25243616041
```
2019-03-01 16:47:13 +08:00
Nikolai Kochetov
ec59f65a1e
Update ReverseIndex. Added tests.
2018-12-13 22:02:28 +03:00
Amos Bird
197d73d5bc
Fix copy-paste error.
2018-12-11 01:31:10 +08:00
Alexey Milovidov
c77930fe30
Whitespaces [#CLICKHOUSE-2]
2018-11-26 03:56:50 +03:00
Alexey Milovidov
ead153e9e4
Better code #3565
2018-11-13 22:48:47 +03:00
Alexey Milovidov
69e57187d2
Fixed error; removed unique_ptr #3565
2018-11-13 22:43:17 +03:00
Alexey Milovidov
c5173782dc
Potentially better #3490
2018-11-05 17:29:38 +03:00
Alexey Milovidov
a191c32254
Potential improvement #3490
2018-11-05 13:34:48 +03:00
Alexey Milovidov
6f00f165e5
Clarifications; potential improvement #3490
2018-11-05 12:32:59 +03:00
Amos Bird
af369483a9
Simply Self.
...
> When the normal name of the template (i.e., the name from the enclosing scope, not the injected-class-name) is used, it always refers to the class template itself and not a specialization of the template
http://eel.is/c++draft/temp.local
2018-09-13 22:59:54 +08:00
Nikolai Kochetov
4a62ab9d5c
Merged with master.
2018-08-10 16:53:08 +03:00
Alexey Milovidov
36db216abf
Preparation for extra warnings [#CLICKHOUSE-2]
2018-08-10 07:02:56 +03:00
Nikolai Kochetov
01209533f7
Optimize reverse index for ColumnUnique.
2018-08-07 21:10:16 +03:00
proller
eb772b8001
gcc8 fixes (memset, uncaught_exception)
2018-05-08 22:44:54 +03:00
Alexey Milovidov
8ff93487e3
Miscellaneous [#CLICKHOUSE-2].
2017-12-25 07:01:46 +03:00
Alexey Milovidov
1a6cb2989b
Better [#CLICKHOUSE-2].
2017-12-01 21:36:55 +03:00
Alexey Milovidov
fc409f61e5
Miscellaneous [#CLICKHOUSE-2].
2017-08-20 16:12:14 +03:00
Alexey Milovidov
2fb7a34f0d
Miscellaneous [#CLICKHOUSE-2].
2017-08-20 04:07:11 +03:00
Alexey Milovidov
7dc4d6f7b3
Miscellaneous [#CLICKHOUSE-2].
2017-08-20 04:05:59 +03:00
Alexey Milovidov
ce4349b6cd
Fixed error when huge sets for IN, JOIN, DISTINCT cannot be created with exception message "Cannot mremap... Bad address" [#CLICKHOUSE-2].
2017-08-11 02:25:51 +03:00
Marek Vavruša
bc878f9785
Common/HashTable: allow cell reinsertion
...
* fixes missing setHash on reinsert
* reuses hash when emplacing value
2017-05-11 18:52:49 +04:00
Alexey Milovidov
7bf7242ad3
Fixed translation errors; miscellaneous changes [#CLICKHOUSE-3].
2017-05-10 00:00:19 -04:00
Alexey Milovidov
8e5f92f025
Fixed translation errors, part 1 [#CLICKHOUSE-3].
2017-05-09 15:07:35 -04:00
f1yegor
46db454562
translate comments
2017-05-09 13:03:35 -04:00
Alexey Milovidov
ef3557950c
Less dependencies [#CLICKHOUSE-2952].
2017-04-16 07:03:14 +03:00
Alexey Milovidov
310736cd7e
Moved headers and sources to same place [#CLICKHOUSE-3].
2017-04-01 12:22:42 +03:00