Skip to content

Commit a9f2d09

Browse files
committed
FilterProcessor: Assemble HasValue & HasNotValue filter rules predicate
1 parent a28c024 commit a9f2d09

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/Compat/FilterProcessor.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,17 @@ public static function assemblePredicate(Filter\Condition $filter)
7676
($filter instanceof Filter\Equal || $filter instanceof Filter\Unequal)
7777
&& strpos($expression, '*') !== false
7878
) {
79-
if ($expression === '*') {
80-
return ["$column IS " . ($filter instanceof Filter\Equal ? 'NOT ' : '') . 'NULL'];
81-
} elseif ($filter instanceof Filter\Unequal) {
79+
if ($filter instanceof Filter\Unequal) {
8280
return ["($column NOT LIKE ? OR $column IS NULL)" => str_replace('*', '%', $expression)];
8381
} else {
8482
return ["$column LIKE ?" => str_replace('*', '%', $expression)];
8583
}
8684
} elseif ($filter instanceof Filter\Unequal) {
8785
return ["($column != ? OR $column IS NULL)" => $expression];
86+
} elseif ($filter instanceof Filter\HasNotValue) {
87+
return ["$column IS NULL"];
88+
} elseif ($filter instanceof Filter\HasValue) {
89+
return ["$column IS NOT NULL"];
8890
} else {
8991
if ($filter instanceof Filter\Equal) {
9092
$operator = '=';

0 commit comments

Comments
 (0)