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

Method getDataPartsVector

src/MergeTreeCommon/MergeTreeMetaBase.cpp:1013–1058  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1011}
1012
1013MergeTreeMetaBase::DataPartsVector MergeTreeMetaBase::getDataPartsVector(
1014 const DataPartStates & affordable_states, DataPartStateVector * out_states, bool require_projection_parts) const
1015{
1016 DataPartsVector res;
1017 DataPartsVector buf;
1018 {
1019 auto lock = lockPartsRead();
1020
1021 for (auto state : affordable_states)
1022 {
1023 auto range = getDataPartsStateRange(state);
1024
1025 if (require_projection_parts)
1026 {
1027 for (const auto & part : range)
1028 {
1029 for (const auto & [p_name, projection_part] : part->getProjectionParts())
1030 res.push_back(projection_part);
1031 }
1032 }
1033 else
1034 {
1035 std::swap(buf, res);
1036 res.clear();
1037 std::merge(range.begin(), range.end(), buf.begin(), buf.end(), std::back_inserter(res), LessDataPart()); //-V783
1038 }
1039 }
1040
1041 if (out_states != nullptr)
1042 {
1043 out_states->resize(res.size());
1044 if (require_projection_parts)
1045 {
1046 for (size_t i = 0; i < res.size(); ++i)
1047 (*out_states)[i] = res[i]->getParentPart()->getState();
1048 }
1049 else
1050 {
1051 for (size_t i = 0; i < res.size(); ++i)
1052 (*out_states)[i] = res[i]->getState();
1053 }
1054 }
1055 }
1056
1057 return res;
1058}
1059
1060MergeTreeMetaBase::DataPartsVector
1061MergeTreeMetaBase::getDataPartsVectorInPartition(MergeTreeMetaBase::DataPartState state, const String & partition_id) const

Callers 11

refreshMethod · 0.80
fillDataMethod · 0.80
getPartsMethod · 0.80
readMethod · 0.80
selectPartsForMoveMethod · 0.80
selectPartsToMergeMethod · 0.80
processQueryPartListMethod · 0.80
buildExecutePlanMethod · 0.80
updateRowNumbersMethod · 0.80
buildExecutePlanMethod · 0.80

Calls 11

swapFunction · 0.85
LessDataPartClass · 0.85
getStateMethod · 0.80
getParentPartMethod · 0.80
mergeFunction · 0.50
push_backMethod · 0.45
clearMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
resizeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected