diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/field.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
| diff --git a/lib/field.cpp b/lib/field.cpp index d7adbb3..168935c 100644 --- a/lib/field.cpp +++ b/lib/field.cpp | |||
| @@ -70,12 +70,22 @@ namespace verbly { | |||
| 70 | 70 | ||
| 71 | field::operator filter() const | 71 | field::operator filter() const |
| 72 | { | 72 | { |
| 73 | return filter(*this, filter::comparison::is_not_null); | 73 | if (isJoin()) |
| 74 | { | ||
| 75 | return filter(*this, filter::comparison::matches, filter()); | ||
| 76 | } else { | ||
| 77 | return filter(*this, filter::comparison::is_not_null); | ||
| 78 | } | ||
| 74 | } | 79 | } |
| 75 | 80 | ||
| 76 | filter field::operator!() const | 81 | filter field::operator!() const |
| 77 | { | 82 | { |
| 78 | return filter(*this, filter::comparison::is_null); | 83 | if (isJoin()) |
| 84 | { | ||
| 85 | return filter(*this, filter::comparison::does_not_match, filter()); | ||
| 86 | } else { | ||
| 87 | return filter(*this, filter::comparison::is_null); | ||
| 88 | } | ||
| 79 | } | 89 | } |
| 80 | 90 | ||
| 81 | filter field::operator%=(filter joinCondition) const | 91 | filter field::operator%=(filter joinCondition) const |
