initial support for is null and is not null
will nedd some work, but just for now
This commit is contained in:
10
usql.cpp
10
usql.cpp
@@ -398,7 +398,15 @@ bool USql::eval_relational_operator(const RelationalOperatorNode &filter, Table
|
||||
|
||||
double comparator;
|
||||
|
||||
if (left_value->node_type == NodeType::int_value && right_value->node_type == NodeType::int_value) {
|
||||
if (left_value->node_type == NodeType::null_value || right_value->node_type == NodeType::null_value) {
|
||||
bool all_null = left_value->isNull() && right_value->node_type == NodeType::null_value ||
|
||||
right_value->isNull() && left_value->node_type == NodeType::null_value;
|
||||
if (filter.op == RelationalOperatorType::is)
|
||||
return all_null;
|
||||
if (filter.op == RelationalOperatorType::is_not)
|
||||
return !all_null;
|
||||
return false;
|
||||
} else if (left_value->node_type == NodeType::int_value && right_value->node_type == NodeType::int_value) {
|
||||
comparator = left_value->getIntegerValue() - right_value->getIntegerValue();
|
||||
} else if ((left_value->node_type == NodeType::int_value && right_value->node_type == NodeType::float_value) ||
|
||||
(left_value->node_type == NodeType::float_value && right_value->node_type == NodeType::int_value) ||
|
||||
|
||||
Reference in New Issue
Block a user