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
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
Alexey Milovidov
8966520801
Added "assert_cast" function as a replacement for static_cast for columns
2019-08-21 05:28:04 +03:00
kreuzerkrieg
112fc71276
adding -Wshadow for GCC
2019-08-09 23:58:16 +03:00
Alexander Kuzmenkov
cb718c194f
Fix a hard-to-spot typo: aggreAGte -> aggregate.
2019-06-26 15:35:27 +03:00
alexey-milovidov
3db650861d
Update AggregateFunctionGroupUniqArray.h
2019-04-24 01:40:16 +03:00
Guillaume Tassery
a96e3c470e
Reformate code for optional parameter for groupUniqArray
2019-04-17 17:24:02 +07:00
Guillaume Tassery
2a6ff2f240
Code refactoring for the new size parameter on the GroupUniqArray aggregation function
2019-04-15 18:32:43 +07:00
Guillaume Tassery
803675892b
Handle merge operation for size parameter on groupUniqArray aggregation function
2019-04-15 16:09:52 +07:00
Guillaume Tassery
857bccc981
Add a way to set a size parameter for groupUniqArray
2019-04-15 13:36:24 +07:00
Nikolai Kochetov
c166614173
Fix rare ubsan false positive error while deserializing empty array from StringRef with length = 0 and trash in data.
2019-03-19 14:11:05 +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
ec6a5590fd
Fix build.
2019-02-12 12:31:20 +03:00
Nikolai Kochetov
2b8b342ccd
Update IAggregateFunction interface.
2019-02-11 22:26:32 +03:00
maiha
6c83beafdd
dbms: Fixed misspells in comments
2019-01-23 04:56:53 +09:00
Alexey Milovidov
665fc23f57
Fixed UB #3569
2018-12-26 06:27:26 +03:00
Amos Bird
8736a3908f
left pad
2018-12-24 23:51:06 +08:00
Alexey Milovidov
104b09604a
Merging [#CLICKHOUSE-3114]
2017-12-28 00:45:05 +03:00
Alexey Milovidov
ec3ec48309
Simplification of aggregate functions: development [#CLICKHOUSE-2].
2017-12-21 05:08:25 +03:00
Alexey Milovidov
c990740b33
Simplification of aggregate functions: development [#CLICKHOUSE-2].
2017-12-21 05:08:25 +03:00
Alexey Milovidov
f95ddfce10
Make DataTypes totally immutable [#CLICKHOUSE-2].
2017-12-18 04:11:48 +03:00
Alexey Milovidov
7284a64740
Better semantic of sharing columns: development [#CLICKHOUSE-2].
2017-12-16 00:32:25 +03:00
Alexey Milovidov
c748493a86
Better [#CLICKHOUSE-2].
2017-12-02 05:47:12 +03:00
Alexey Milovidov
7196602e12
Better [#CLICKHOUSE-2].
2017-12-02 00:51:50 +03:00
Alexey Milovidov
ff1598c8d1
Improved performance of dynamic compilation [#CLICKHOUSE-2].
2017-09-17 23:22:39 +03:00
Alexey Milovidov
310736cd7e
Moved headers and sources to same place [#CLICKHOUSE-3].
2017-04-01 12:22:42 +03:00