| 159 | } |
| 160 | |
| 161 | std::shared_ptr<MergeSortingStep> MergeSortingStep::fromProto(const Protos::MergeSortingStep & proto, ContextPtr context) |
| 162 | { |
| 163 | auto [step_description, base_input_stream] = ITransformingStep::deserializeFromProtoBase(proto.query_plan_base()); |
| 164 | SortDescription description; |
| 165 | for (const auto & proto_element : proto.description()) |
| 166 | { |
| 167 | SortColumnDescription element; |
| 168 | element.fillFromProto(proto_element); |
| 169 | description.emplace_back(std::move(element)); |
| 170 | } |
| 171 | auto max_merged_block_size = proto.max_merged_block_size(); |
| 172 | auto limit = proto.limit(); |
| 173 | auto max_bytes_before_remerge = proto.max_bytes_before_remerge(); |
| 174 | auto remerge_lowered_memory_bytes_ratio = proto.remerge_lowered_memory_bytes_ratio(); |
| 175 | auto max_bytes_before_external_sort = proto.max_bytes_before_external_sort(); |
| 176 | auto enable_adaptive_spill = proto.enable_adaptive_spill(); |
| 177 | VolumePtr tmp_volume = context ? context->getTemporaryVolume() : nullptr; |
| 178 | auto min_free_disk_space = proto.min_free_disk_space(); |
| 179 | auto step = std::make_shared<MergeSortingStep>( |
| 180 | base_input_stream, |
| 181 | description, |
| 182 | max_merged_block_size, |
| 183 | limit, |
| 184 | max_bytes_before_remerge, |
| 185 | remerge_lowered_memory_bytes_ratio, |
| 186 | max_bytes_before_external_sort, |
| 187 | tmp_volume, |
| 188 | min_free_disk_space, |
| 189 | enable_adaptive_spill); |
| 190 | step->setStepDescription(step_description); |
| 191 | return step; |
| 192 | } |
| 193 | } |
nothing calls this directly
no test coverage detected