fix build

This commit is contained in:
Anton Popov 2021-05-15 00:45:13 +03:00
parent d8df0903b9
commit 78dc7bf8fe
3 changed files with 13 additions and 3 deletions

View File

@ -600,7 +600,9 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToMemory(
metadata_snapshot->projections.get(projection_name).metadata,
block.getNamesAndTypesList(),
{},
CompressionCodecFactory::instance().get("NONE", {}));
CompressionCodecFactory::instance().get("NONE", {}),
new_data_part->serialization_info);
part_out.writePrefix();
part_out.write(block);
part_out.writeSuffixAndFinalizePart(new_projection_part);

View File

@ -255,7 +255,7 @@ static void decrementTypeMetric(MergeTreeDataPartType type)
IMergeTreeDataPart::IMergeTreeDataPart(
MergeTreeData & storage_,
const MergeTreeData & storage_,
const String & name_,
const VolumePtr & volume_,
const std::optional<String> & relative_path_,
@ -267,6 +267,7 @@ IMergeTreeDataPart::IMergeTreeDataPart(
, volume(parent_part_ ? parent_part_->volume : volume_)
, relative_path(relative_path_.value_or(name_))
, index_granularity_info(storage_, part_type_)
, serialization_info(storage_.getSettings()->ratio_of_defaults_for_sparse_serialization)
, part_type(part_type_)
, parent_part(parent_part_)
{

View File

@ -516,12 +516,16 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataWriter::writeProjectionPartImpl(
/// either default lz4 or compression method with zero thresholds on absolute and relative part size.
auto compression_codec = data.getContext()->chooseCompressionCodec(0, 0);
SerializationInfo serialization_info(data.getSettings()->ratio_of_defaults_for_sparse_serialization);
serialization_info.add(block);
MergedBlockOutputStream out(
new_data_part,
metadata_snapshot,
columns,
{},
compression_codec);
compression_codec,
serialization_info);
out.writePrefix();
out.writeWithPermutation(block, perm_ptr);
@ -560,6 +564,9 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataWriter::writeTempProjectionPart(
const IMergeTreeDataPart * parent_part,
size_t block_num)
{
/// Size of part would not be greater than block.bytes() + epsilon
size_t expected_size = block.bytes();