diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-01-23 11:16:03 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-01-23 11:16:03 -0500 |
commit | 71064d07ad84b1d31471298f8cc5b497cbe85505 (patch) | |
tree | 03a261f05e5a056d4acaa30287bd53b2bd72bf52 /lib/field.cpp | |
parent | 4a58f0f37aae6381f74a6d94c2be66f54b8ae107 (diff) | |
download | verbly-71064d07ad84b1d31471298f8cc5b497cbe85505.tar.gz verbly-71064d07ad84b1d31471298f8cc5b497cbe85505.tar.bz2 verbly-71064d07ad84b1d31471298f8cc5b497cbe85505.zip |
Fixed nullity/non-nullity filters on join fields
Diffstat (limited to 'lib/field.cpp')
-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 |