Merge pull request #1380 from happy-san/fit_fix

Log filter_query on error.
This commit is contained in:
Kishore Nallan 2023-11-15 18:16:14 +05:30 committed by GitHub
commit e1abd98d33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 6 deletions

View File

@ -62,10 +62,11 @@ struct filter {
struct filter_node_t {
filter filter_exp;
FILTER_OPERATOR filter_operator;
bool isOperator;
FILTER_OPERATOR filter_operator = AND;
bool isOperator = false;
filter_node_t* left = nullptr;
filter_node_t* right = nullptr;
std::string filter_query;
filter_node_t() = default;

View File

@ -677,6 +677,7 @@ Option<bool> toParseTree(std::queue<std::string>& postfix, filter_node_t*& root,
nodeStack.pop();
filter_node = new filter_node_t(expression == "&&" ? AND : OR, operandA, operandB);
filter_node->filter_query = operandA->filter_query + " " + expression + " " + operandB->filter_query;
} else {
filter filter_exp;
@ -706,6 +707,7 @@ Option<bool> toParseTree(std::queue<std::string>& postfix, filter_node_t*& root,
}
filter_node = new filter_node_t(filter_exp);
filter_node->filter_query = expression;
}
nodeStack.push(filter_node);
@ -765,5 +767,6 @@ Option<bool> filter::parse_filter_query(const std::string& filter_query,
return toParseTree_op;
}
root->filter_query = filter_query;
return Option<bool>(true);
}

View File

@ -1772,17 +1772,17 @@ void filter_result_iterator_t::compute_result() {
if (filter_result.count == 0) {
is_valid = false;
LOG(ERROR) << "filter_result.count is 0";
LOG(ERROR) << "filter_result.count is 0 " << filter_node->filter_query;
return;
} else if (result_index != 0) {
result_index = 0;
LOG(ERROR) << "result_index is not 0";
LOG(ERROR) << "result_index is not 0 " << filter_node->filter_query;
return;
}
if (result_index >= filter_result.count) {
is_valid = false;
LOG(ERROR) << "result_index is greater than filter_result.count";
LOG(ERROR) << "result_index is greater than filter_result.count " << filter_node->filter_query;
return;
}

View File

@ -2094,7 +2094,8 @@ TEST_F(CollectionFilteringTest, ComplexFilterQuery) {
{"name": "name", "type": "string"},
{"name": "age", "type": "int32"},
{"name": "years", "type": "int32[]"},
{"name": "rating", "type": "float"}
{"name": "rating", "type": "float"},
{"name": "tags", "type": "string[]"}
]
})"_json;