Skip to content

Commit 521b204

Browse files
committed
Remove != '' filter from queries
This effectively reverts dc7d8d0 (changes were moved to different files, so it is more transparent to do this in a new commit). Fixes issues with negative filters #358 #380 #656 TODO: Correct filtering on prefixed/postfixed fields, like the original commit was supposed to do, but without side effects that break normal non-prefixed fields.
1 parent 8708bc5 commit 521b204

File tree

2 files changed

+13
-18
lines changed

2 files changed

+13
-18
lines changed

_test/types/TextTest.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,31 @@ public function data()
2424
'', // postfix
2525
'=', // comp
2626
'val', // value
27-
'((T.col != \'\' AND T.col = ?))', // expect sql
27+
'(T.col = ?)', // expect sql
2828
['val'], // expect opts
2929
],
3030
[
3131
'before', // prefix
3232
'', // postfix
3333
'=', // comp
3434
'val', // value
35-
'((T.col != \'\' AND ? || T.col = ?))', // expect sql
35+
'(? || T.col = ?)', // expect sql
3636
['before', 'val'], // expect opts
3737
],
3838
[
3939
'', // prefix
4040
'after', // postfix
4141
'=', // comp
4242
'val', // value
43-
'((T.col != \'\' AND T.col || ? = ?))', // expect sql
43+
'(T.col || ? = ?)', // expect sql
4444
['after', 'val'], // expect opts
4545
],
4646
[
4747
'before', // prefix
4848
'after', // postfix
4949
'=', // comp
5050
'val', // value
51-
'((T.col != \'\' AND ? || T.col || ? = ?))', // expect sql
51+
'(? || T.col || ? = ?)', // expect sql
5252
['before', 'after', 'val'], // expect opts
5353
],
5454
// LIKE
@@ -57,31 +57,31 @@ public function data()
5757
'', // postfix
5858
'LIKE', // comp
5959
'%val%', // value
60-
'((T.col != \'\' AND T.col LIKE ?))', // expect sql
60+
'(T.col LIKE ?)', // expect sql
6161
['%val%'], // expect opts
6262
],
6363
[
6464
'before', // prefix
6565
'', // postfix
6666
'LIKE', // comp
6767
'%val%', // value
68-
'((T.col != \'\' AND ? || T.col LIKE ?))', // expect sql
68+
'(? || T.col LIKE ?)', // expect sql
6969
['before', '%val%'], // expect opts
7070
],
7171
[
7272
'', // prefix
7373
'after', // postfix
7474
'LIKE', // comp
7575
'%val%', // value
76-
'((T.col != \'\' AND T.col || ? LIKE ?))', // expect sql
76+
'(T.col || ? LIKE ?)', // expect sql
7777
['after', '%val%'], // expect opts
7878
],
7979
[
8080
'before', // prefix
8181
'after', // postfix
8282
'LIKE', // comp
8383
'%val%', // value
84-
'((T.col != \'\' AND ? || T.col || ? LIKE ?))', // expect sql
84+
'(? || T.col || ? LIKE ?)', // expect sql
8585
['before', 'after', '%val%'], // expect opts
8686
],
8787
// NOT LIKE
@@ -90,31 +90,31 @@ public function data()
9090
'', // postfix
9191
'NOT LIKE', // comp
9292
'%val%', // value
93-
'((T.col != \'\' AND T.col NOT LIKE ?))', // expect sql
93+
'(T.col NOT LIKE ?)', // expect sql
9494
['%val%'], // expect opts
9595
],
9696
[
9797
'before', // prefix
9898
'', // postfix
9999
'NOT LIKE', // comp
100100
'%val%', // value
101-
'((T.col != \'\' AND ? || T.col NOT LIKE ?))', // expect sql
101+
'(? || T.col NOT LIKE ?)', // expect sql
102102
['before', '%val%'], // expect opts
103103
],
104104
[
105105
'', // prefix
106106
'after', // postfix
107107
'NOT LIKE', // comp
108108
'%val%', // value
109-
'((T.col != \'\' AND T.col || ? NOT LIKE ?))', // expect sql
109+
'(T.col || ? NOT LIKE ?)', // expect sql
110110
['after', '%val%'], // expect opts
111111
],
112112
[
113113
'before', // prefix
114114
'after', // postfix
115115
'NOT LIKE', // comp
116116
'%val%', // value
117-
'((T.col != \'\' AND ? || T.col || ? NOT LIKE ?))', // expect sql
117+
'(? || T.col || ? NOT LIKE ?)', // expect sql
118118
['before', 'after', '%val%'], // expect opts
119119
],
120120

@@ -124,7 +124,7 @@ public function data()
124124
'after', // postfix
125125
'NOT LIKE', // comp
126126
['%val1%', '%val2%'], // multiple values
127-
'((T.col != \'\' AND (? || T.col || ? NOT LIKE ? OR ? || T.col || ? NOT LIKE ?)))', // expect sql
127+
'((? || T.col || ? NOT LIKE ? OR ? || T.col || ? NOT LIKE ?))', // expect sql
128128
['before', 'after', '%val1%', 'before', 'after', '%val2%',], // expect opts
129129
],
130130
];

types/TraitFilterPrefix.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ trait TraitFilterPrefix
2626
*/
2727
public function filter(QueryBuilderWhere $add, $tablealias, $colname, $comp, $value, $op)
2828
{
29-
$add = $add->where($op); // open a subgroup
30-
$add->where('AND', "$tablealias.$colname != ''");
31-
// make sure the field isn't empty
32-
$op = 'AND';
33-
3429
/** @var QueryBuilderWhere $add Where additionional queries are added to */
3530
if (is_array($value)) {
3631
$add = $add->where($op); // sub where group

0 commit comments

Comments
 (0)