mirror of
https://github.com/typesense/typesense.git
synced 2025-05-20 05:32:30 +08:00
Merge pull request #1380 from happy-san/fit_fix
Log filter_query on error.
This commit is contained in:
commit
e1abd98d33
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user