Optimize filter_result_iterator_t::to_filter_id_array.

This commit is contained in:
Harpreet Sangar 2023-04-18 09:57:39 +05:30
parent c571812696
commit 7ef71b0fa8

View File

@ -1074,6 +1074,19 @@ uint32_t filter_result_iterator_t::to_filter_id_array(uint32_t*& filter_array) {
return 0;
}
if (!filter_node->isOperator) {
const filter a_filter = filter_node->filter_exp;
field f = index->search_schema.at(a_filter.field_name);
if (!a_filter.referenced_collection_name.empty() || a_filter.field_name == "id" ||
(index->field_is_indexed(a_filter.field_name) && (f.is_integer() || f.is_float() || f.is_bool()))) {
filter_array = new uint32_t[filter_result.count];
std::copy(filter_result.docs, filter_result.docs + filter_result.count, filter_array);
return filter_result.count;
}
}
std::vector<uint32_t> filter_ids;
do {
filter_ids.push_back(seq_id);