mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 09:10:48 +00:00
dbms: fixed bug in merge tree output stream: compression of min block now runs at the right moment [METR-10570]
This commit is contained in:
parent
db9263f5f3
commit
c139a6d209
@ -23,7 +23,7 @@
|
||||
/// Какими блоками по-умолчанию читаются и пишутся данные (в числе строк).
|
||||
#define DEFAULT_BLOCK_SIZE 1048576
|
||||
/// То же самое, но для операций слияния. Меньше DEFAULT_BLOCK_SIZE для экономии оперативки (так как читаются все столбцы).
|
||||
#define DEFAULT_MERGE_BLOCK_SIZE 10000
|
||||
#define DEFAULT_MERGE_BLOCK_SIZE 8192
|
||||
|
||||
#define DEFAULT_MAX_QUERY_SIZE 65536
|
||||
#define SHOW_CHARS_ON_SYNTAX_ERROR 160L
|
||||
|
@ -135,16 +135,19 @@ protected:
|
||||
else
|
||||
{
|
||||
limit = storage.index_granularity;
|
||||
|
||||
/// Уже могло накопиться достаточно данных для сжатия в новый блок.
|
||||
if (stream.compressed.offset() >= min_compress_block_size)
|
||||
stream.compressed.next();
|
||||
|
||||
writeIntBinary(stream.plain_hashing.count(), stream.marks);
|
||||
writeIntBinary(stream.compressed.offset(), stream.marks);
|
||||
}
|
||||
|
||||
type_arr->serializeOffsets(column, stream.compressed, prev_mark, limit);
|
||||
/// Уже могло накопиться достаточно данных для сжатия в новый блок.
|
||||
if (stream.compressed.offset() >= min_compress_block_size)
|
||||
stream.compressed.next();
|
||||
else
|
||||
stream.compressed.nextIfAtEnd(); /// Чтобы вместо засечек, указывающих на конец сжатого блока, были засечки, указывающие на начало следующего.
|
||||
|
||||
stream.compressed.nextIfAtEnd(); /// Чтобы вместо засечек, указывающих на конец сжатого блока, были засечки, указывающие на начало следующего.
|
||||
|
||||
prev_mark += limit;
|
||||
}
|
||||
}
|
||||
@ -166,16 +169,19 @@ protected:
|
||||
else
|
||||
{
|
||||
limit = storage.index_granularity;
|
||||
|
||||
/// Уже могло накопиться достаточно данных для сжатия в новый блок.
|
||||
if (stream.compressed.offset() >= min_compress_block_size)
|
||||
stream.compressed.next();
|
||||
|
||||
writeIntBinary(stream.plain_hashing.count(), stream.marks);
|
||||
writeIntBinary(stream.compressed.offset(), stream.marks);
|
||||
}
|
||||
|
||||
type.serializeBinary(column, stream.compressed, prev_mark, limit);
|
||||
/// Уже могло накопиться достаточно данных для сжатия в новый блок.
|
||||
if (stream.compressed.offset() >= min_compress_block_size)
|
||||
stream.compressed.next();
|
||||
else
|
||||
stream.compressed.nextIfAtEnd(); /// Чтобы вместо засечек, указывающих на конец сжатого блока, были засечки, указывающие на начало следующего.
|
||||
|
||||
stream.compressed.nextIfAtEnd(); /// Чтобы вместо засечек, указывающих на конец сжатого блока, были засечки, указывающие на начало следующего.
|
||||
|
||||
prev_mark += limit;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user