On 14.12.2016 12:18, Juergen Raschke wrote:
Hello,
I found out an unexpected behaviour of search queries with mixed "AND" and "OR".
With search query "\( condA OR condB condC \)" I get an error: Fatal: Use parenthesis when mixing ANDs and ORs
if I switch left and right OR-part and use the query "\( condB condC OR condA \)"
I get a result, but it is not the expected result of the query "\( \( condB condC \) OR condA \)"
I get the result of the query "\( condB OR condC OR condA \)" which is more then suprising.
The query "\( condB condC OR condA \)" should either throw an error like "\( condA OR condB condC \)" or deliever the result of "\( \( condB condC \) OR condA \)"
Example:
doveadm -f flow fetch -u USER guid \( savedbefore 21d OR seen savedbefore 5d \) | wc -l Fatal: Use parenthesis when mixing ANDs and ORs 0
doveadm -f flow fetch -u USER guid \( seen savedbefore 5d OR savedbefore 21d \) | wc -l 63690
doveadm -f flow fetch -u USER guid \( seen OR savedbefore 5d OR savedbefore 21d \) | wc -l 63690
doveadm -f flow fetch -u USER guid \( \( seen savedbefore 5d \) OR savedbefore 21d \) |wc -l 63247
doveadm -f flow fetch -u USER guid \( savedbefore 21d OR \( seen savedbefore 5d \) \) |wc -l 63247
doveconf -n # 2.2.24 (a82c823): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.9 (357ac0a0e68b+) # OS: Linux 3.16.0-0.bpo.4-amd64 x86_64 Debian 7.9
Mit freundlichen Gruessen,
Juergen Raschke
Hi!
We believe this has been fixed in
https://github.com/dovecot/core/commit/df8046c9a4f6bc2a478ad1e74504d50f3110c...
Aki Tuomi Dovecot oy