Skip to content

Commit 56fc3dc

Browse files
committed
cleanup, remove alternate implementation
1 parent b42c810 commit 56fc3dc

File tree

1 file changed

+1
-125
lines changed

1 file changed

+1
-125
lines changed

src/Processors/QueryPlan/PartsSplitter.cpp

Lines changed: 1 addition & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -853,130 +853,6 @@ ASTs buildFilters(const KeyDescription & primary_key, const std::vector<Values>
853853
return filters;
854854
}
855855

856-
#if 0
857-
RangesInDataParts findPKRangesForFinalAfterSkipIndexImpl(RangesInDataParts & ranges_in_data_parts, bool cannot_sort_primary_key, const LoggerPtr & logger)
858-
{
859-
IndexAccess index_access(ranges_in_data_parts);
860-
861-
std::vector<PartsRangesIterator> combined_ranges;
862-
863-
RangesInDataPartsBuilder result(ranges_in_data_parts);
864-
bool earliest_part_found = false;
865-
866-
auto skip_and_return_all_part_ranges = [&]()
867-
{
868-
RangesInDataParts all_part_ranges(std::move(ranges_in_data_parts));
869-
for (auto & all_part_range : all_part_ranges)
870-
{
871-
const auto & index_granularity = all_part_range.data_part->index_granularity;
872-
all_part_range.ranges = MarkRanges{{MarkRange{0, index_granularity->getMarksCountWithoutFinal()}}};
873-
}
874-
return all_part_ranges;
875-
};
876-
877-
if (cannot_sort_primary_key) /// just expand to all parts + ranges
878-
{
879-
return skip_and_return_all_part_ranges();
880-
}
881-
882-
size_t rejected_ranges_count = 0;
883-
for (size_t part_index = 0; part_index < ranges_in_data_parts.size(); ++part_index)
884-
{
885-
const auto & index_granularity = ranges_in_data_parts[part_index].data_part->index_granularity;
886-
std::vector<bool> is_selected_range(index_granularity->getMarksCountWithoutFinal(), false);
887-
for (const auto & range : ranges_in_data_parts[part_index].ranges)
888-
{
889-
combined_ranges.push_back(
890-
{index_access.getValue(part_index, range.begin), range, part_index, PartsRangesIterator::EventType::RangeStart, true});
891-
const bool value_is_defined_at_end_mark = range.end < index_granularity->getMarksCount();
892-
if (!value_is_defined_at_end_mark)
893-
{
894-
return skip_and_return_all_part_ranges();
895-
}
896-
897-
combined_ranges.push_back(
898-
{index_access.getValue(part_index, range.end), range, part_index, PartsRangesIterator::EventType::RangeEnd, true});
899-
for (auto i = range.begin; i < range.end;i++)
900-
is_selected_range[i] = true;
901-
902-
earliest_part_found = true;
903-
}
904-
if (!earliest_part_found)
905-
continue;
906-
for (size_t range_begin = 0; range_begin < is_selected_range.size(); range_begin++)
907-
{
908-
if (is_selected_range[range_begin])
909-
continue;
910-
MarkRange rejected_range(range_begin, range_begin + 1);
911-
combined_ranges.push_back(
912-
{index_access.getValue(part_index, rejected_range.begin), rejected_range, part_index, PartsRangesIterator::EventType::RangeStart, false});
913-
914-
const bool value_is_defined_at_end_mark = rejected_range.end < index_granularity->getMarksCount();
915-
if (!value_is_defined_at_end_mark)
916-
{
917-
return skip_and_return_all_part_ranges();
918-
}
919-
920-
combined_ranges.push_back(
921-
{index_access.getValue(part_index, rejected_range.end), rejected_range, part_index, PartsRangesIterator::EventType::RangeEnd, false});
922-
rejected_ranges_count++;
923-
}
924-
}
925-
LOG_TRACE(logger, "findPKRangesForFinalAfterSkipIndex : processed {} parts, combined ranges {}, rejected ranges {}", ranges_in_data_parts.size(), combined_ranges.size() / 2, rejected_ranges_count);
926-
927-
::sort(combined_ranges.begin(), combined_ranges.end());
928-
929-
size_t active_selected_ranges = 0;
930-
std::unordered_set<PartRangeIndex, PartRangeIndexHash> in_doubt_ranges;
931-
for (auto ranges_iter : combined_ranges)
932-
{
933-
if (ranges_iter.event == PartsRangesIterator::EventType::RangeStart)
934-
{
935-
if (ranges_iter.selected)
936-
{
937-
active_selected_ranges++;
938-
for (auto in_doubt_iter : in_doubt_ranges)
939-
{
940-
result.addRange(in_doubt_iter.part_index, in_doubt_iter.range);
941-
}
942-
in_doubt_ranges.clear();
943-
944-
result.addRange(ranges_iter.part_index, ranges_iter.range);
945-
}
946-
else if (active_selected_ranges)
947-
{
948-
result.addRange(ranges_iter.part_index, ranges_iter.range);
949-
}
950-
else
951-
{
952-
in_doubt_ranges.insert(PartRangeIndex(ranges_iter));
953-
}
954-
}
955-
else /// RangeEnd event
956-
{
957-
if (ranges_iter.selected)
958-
{
959-
active_selected_ranges--;
960-
}
961-
else
962-
{
963-
in_doubt_ranges.erase(PartRangeIndex(ranges_iter));
964-
}
965-
}
966-
}
967-
968-
auto result_final_ranges = result.getCurrentRangesInDataParts();
969-
std::stable_sort(
970-
result_final_ranges.begin(),
971-
result_final_ranges.end(),
972-
[](const auto & lhs, const auto & rhs) { return lhs.part_index_in_query < rhs.part_index_in_query; });
973-
for (auto & result_final_range : result_final_ranges)
974-
{
975-
std::sort(result_final_range.ranges.begin(), result_final_range.ranges.end());
976-
}
977-
return result_final_ranges;
978-
}
979-
#else
980856
RangesInDataParts findPKRangesForFinalAfterSkipIndexImpl(RangesInDataParts & ranges_in_data_parts, bool cannot_sort_primary_key, const LoggerPtr & logger)
981857
{
982858
IndexAccess index_access(ranges_in_data_parts);
@@ -1023,6 +899,7 @@ RangesInDataParts findPKRangesForFinalAfterSkipIndexImpl(RangesInDataParts & ran
1023899
}
1024900
if (!earliest_part_found)
1025901
continue;
902+
1026903
for (size_t range_begin = 0; range_begin < is_selected_range.size(); range_begin++)
1027904
{
1028905
const bool value_is_defined_at_end_mark = ((range_begin + 1) < index_granularity->getMarksCount());
@@ -1099,7 +976,6 @@ RangesInDataParts findPKRangesForFinalAfterSkipIndexImpl(RangesInDataParts & ran
1099976
}
1100977
return result_final_ranges;
1101978
}
1102-
#endif
1103979
}
1104980

1105981
namespace DB

0 commit comments

Comments
 (0)