mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
dbms: development [#CONV-2944].
This commit is contained in:
parent
d6a6985734
commit
5ccc87b6b0
@ -73,6 +73,7 @@ struct AggregatedDataVariants
|
||||
/** Агрегирует по 128 битному хэшу от ключа.
|
||||
* Если все ключи фиксированной длины, влезающие целиком в 128 бит, то укладывает их без изменений в 128 бит.
|
||||
* Иначе - вычисляет md5 от набора из всех ключей.
|
||||
* (При этом, строки, содержащие нули посередине, могут склеиться.)
|
||||
*/
|
||||
AggregatedDataHashed hashed;
|
||||
};
|
||||
|
@ -58,7 +58,8 @@ public:
|
||||
{
|
||||
char type = FieldType::String;
|
||||
MD5_Update(&state, reinterpret_cast<const char *>(&type), sizeof(type));
|
||||
MD5_Update(&state, x.data(), x.size());
|
||||
/// Используем ноль на конце.
|
||||
MD5_Update(&state, x.c_str(), x.size() + 1);
|
||||
}
|
||||
|
||||
void operator() (const Array & x)
|
||||
@ -105,9 +106,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
/** Простой алгоритм (агрегация с помощью std::map).
|
||||
* Без оптимизации для агрегатных функций, принимающих не более одного значения.
|
||||
* Результат хранится в оперативке и должен полностью помещаться в оперативку.
|
||||
/** Результат хранится в оперативке и должен полностью помещаться в оперативку.
|
||||
*/
|
||||
void Aggregator::execute(BlockInputStreamPtr stream, AggregatedDataVariants & result)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user