Wierd interaction when filtering by id and boolean expression

"John P. Rouillard" <[email protected]> Sat, 08 Jun 2024 06:35:29 -0400
Newsgroups gmane.comp.bug-tracking.roundup.devel
Message-ID <[email protected]>
Hi all:

I am working on https://issues.roundup-tracker.org/issue2550698 to
document the Boolean expression syntax.

While I was working on adding examples to the user doc, I came across
an interesting issue.

With the following index url:

.../issue?@columns=title,id,creator&@sort=id\
   &@filter=id,creator\
   &id=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20\
   &creator=3,1,-4,4,-4,-2

I get what I expect. None of the issues that are returned were created
by user3, user1, or user4 and all the issues have id's in the set 1..20.

Now if I change this to use: `&creator=3,1,-4,4,-4` I get issues
created by user3, user1 or user4. However the issues that are returned
include id's greater than 20. I haven't changed the parameters for
@filter or id, just creator.

Also another wacky thing:

 &creator=3,1,-4,4,-4 == &creator=3,1,4

because the default operation is OR. However if I use the query
parameter withotu '-4', no issues with an id greater than 20 are
shown.

I have also tried this with @filter=status,creator and status=open.
With the @creator=3,1,4 case, I only see issues with status of open. If
I use @creator=3,1,-4,4,-4, I see issues with status open as well as
other statuses.

Note that even using: @creator=3,1,-4 fails the same way. So
explicitly expressing 'OR' using -4 causes other filters to be
discarded somehow. That's my working hypothesis, but how/why, got me.

Can somebody try a similar experiment on their tracker and see if this
weirdness happens on your tracker? Bonus points if you can figure out
what's happening here.

Thanks.
--
				-- rouilj
John Rouillard
===========================================================================
My employers don't acknowledge my existence much less my opinions.