MCPcopy Create free account
hub / github.com/ByConity/ByConity / writeProjectionPart

Method writeProjectionPart

src/Storages/MergeTree/MergeTreeDataWriter.cpp:717–735  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

715}
716
717MergeTreeMetaBase::MutableDataPartPtr
718MergeTreeDataWriter::writeProjectionPart(Block block, const ProjectionDescription & projection, const IMergeTreeDataPart * parent_part)
719{
720 /// Size of part would not be greater than block.bytes() + epsilon
721 size_t expected_size = block.bytes();
722
723 // just check if there is enough space on parent volume
724 ReservationPtr reservation = data.reserveSpace(expected_size, parent_part->volume);
725
726 String part_name = projection.name;
727 MergeTreePartInfo new_part_info("all", 0, 0, 0);
728 auto new_data_part = data.createPart(
729 part_name, data.choosePartType(expected_size, block.rows()),
730 new_part_info, parent_part->volume, part_name + ".proj",
731 parent_part, write_location);
732 new_data_part->is_temp = false; // clean up will be done on parent part
733
734 return writeProjectionPartImpl(data, log, block, projection.metadata, std::move(new_data_part));
735}
736
737MergeTreeMetaBase::MutableDataPartPtr MergeTreeDataWriter::writeTempProjectionPart(
738 MergeTreeMetaBase & data,

Callers

nothing calls this directly

Calls 5

reserveSpaceMethod · 0.80
createPartMethod · 0.80
choosePartTypeMethod · 0.80
bytesMethod · 0.45
rowsMethod · 0.45

Tested by

no test coverage detected