Skip to content

Commit

Permalink
revise error messages.
Browse files Browse the repository at this point in the history
  • Loading branch information
xtcyclist committed Dec 23, 2022
1 parent b5df05c commit 36d1cfb
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
15 changes: 12 additions & 3 deletions src/graph/executor/query/FilterExecutor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ StatusOr<DataSet> FilterExecutor::handleJob(size_t begin, size_t end, Iterator *
for (; iter->valid() && begin++ < end; iter->next()) {
auto val = condition->eval(ctx(iter));
if (val.isBadNull() || (!val.empty() && !val.isImplicitBool() && !val.isNull())) {
return Status::Error("Wrong type result, the type should be NULL, EMPTY, BOOL");
return Status::Error("Failed to evaluate condition: %s. %s%s",
condition->toString().c_str(),
"For boolean conditions, please write in their full forms like",
" <condition> == <true/false> or <condition> IS NULL.");
}
if (!(val.empty() || val.isNull() || (val.isImplicitBool() && !val.implicitBool()))) {
// TODO: Maybe we can move.
Expand Down Expand Up @@ -96,7 +99,10 @@ Status FilterExecutor::handleSingleJobFilter() {
while (iter->valid()) {
auto val = condition->eval(ctx(iter));
if (val.isBadNull() || (!val.empty() && !val.isImplicitBool() && !val.isNull())) {
return Status::Error("Wrong type result, the type should be NULL, EMPTY, BOOL");
return Status::Error("Failed to evaluate condition: %s. %s%s",
condition->toString().c_str(),
"For boolean conditions, please write in their full forms like",
" <condition> == <true/false> or <condition> IS NULL.");
}
if (val.empty() || val.isNull() || (val.isImplicitBool() && !val.implicitBool())) {
if (UNLIKELY(filter->needStableFilter())) {
Expand All @@ -119,7 +125,10 @@ Status FilterExecutor::handleSingleJobFilter() {
for (; iter->valid(); iter->next()) {
auto val = condition->eval(ctx(iter));
if (val.isBadNull() || (!val.empty() && !val.isImplicitBool() && !val.isNull())) {
return Status::Error("Wrong type result, the type should be NULL, EMPTY, BOOL");
return Status::Error("Failed to evaluate condition: %s. %s%s",
condition->toString().c_str(),
"For boolean conditions, please write in their full forms like",
" <condition> == <true/false> or <condition> IS NULL.");
}
if (val.isImplicitBool() && val.implicitBool()) {
Row row;
Expand Down
2 changes: 1 addition & 1 deletion tests/tck/features/match/Base.feature
Original file line number Diff line number Diff line change
Expand Up @@ -632,7 +632,7 @@ Feature: Basic match
"""
MATCH (v:player) where v.player.name return v
"""
Then a ExecutionError should be raised at runtime: Wrong type result, the type should be NULL, EMPTY, BOOL
Then a ExecutionError should be raised at runtime: Failed to evaluate condition: v.player.name. For boolean conditions, please write <condition> == <true/false> or <condition> IS NULL.

Scenario: Unimplemented features
When executing query:
Expand Down

0 comments on commit 36d1cfb

Please sign in to comment.