Skip to content

Commit 53e9fb2

Browse files
committed
Use wildcard character matches only for Filter\Similar or Filter\Unlike instances.
1 parent 0f31551 commit 53e9fb2

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/Compat/FilterProcessor.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,28 +65,28 @@ public static function assemblePredicate(Filter\Condition $filter)
6565
if (is_array($expression)) {
6666
if ($filter instanceof Filter\UnEqual) {
6767
return ["($column NOT IN (?) OR $column IS NULL)" => $expression];
68-
} elseif ($filter instanceof Filter\Equal) {
68+
} elseif ($filter instanceof Filter\Equal || $filter instanceof Filter\Similar) {
6969
return ["$column IN (?)" => $expression];
7070
}
7171

7272
throw new InvalidArgumentException(
7373
'Unable to render array expressions with operators other than equal or not equal'
7474
);
7575
} elseif (
76-
($filter instanceof Filter\Equal || $filter instanceof Filter\Unequal)
76+
($filter instanceof Filter\Similar || $filter instanceof Filter\Unlike)
7777
&& strpos($expression, '*') !== false
7878
) {
7979
if ($expression === '*') {
80-
return ["$column IS " . ($filter instanceof Filter\Equal ? 'NOT ' : '') . 'NULL'];
81-
} elseif ($filter instanceof Filter\Unequal) {
80+
return ["$column IS " . ($filter instanceof Filter\Similar ? 'NOT ' : '') . 'NULL'];
81+
} elseif ($filter instanceof Filter\Unlike) {
8282
return ["($column NOT LIKE ? OR $column IS NULL)" => str_replace('*', '%', $expression)];
8383
} else {
8484
return ["$column LIKE ?" => str_replace('*', '%', $expression)];
8585
}
86-
} elseif ($filter instanceof Filter\Unequal) {
86+
} elseif ($filter instanceof Filter\Unequal || $filter instanceof Filter\Unlike) {
8787
return ["($column != ? OR $column IS NULL)" => $expression];
8888
} else {
89-
if ($filter instanceof Filter\Equal) {
89+
if ($filter instanceof Filter\Similar || $filter instanceof Filter\Equal) {
9090
$operator = '=';
9191
} elseif ($filter instanceof Filter\GreaterThan) {
9292
$operator = '>';

0 commit comments

Comments
 (0)