dbms: development [#CONV-2944].

This commit is contained in:
Alexey Milovidov 2011-09-28 05:24:38 +00:00
parent d6a6985734
commit 5ccc87b6b0
2 changed files with 4 additions and 4 deletions

View File

@ -73,6 +73,7 @@ struct AggregatedDataVariants
/** Агрегирует по 128 битному хэшу от ключа.
* Если все ключи фиксированной длины, влезающие целиком в 128 бит, то укладывает их без изменений в 128 бит.
* Иначе - вычисляет md5 от набора из всех ключей.
* (При этом, строки, содержащие нули посередине, могут склеиться.)
*/
AggregatedDataHashed hashed;
};

View File

@ -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)
{