Optimize the query for Group and Repository.objects.accessible_ids().

Review Request #11605 — Created May 12, 2021 and submitted — Latest diff uploaded

Review Board

This is a small query improvement to accessible_ids() that removes
the usage of DISTINCT when querying a list of accessible IDs for
Group and Repository. This means less work needed by the database,
removing the usage of a temporary table on MySQL. Any de-duplication
will now be done in Python, by converting to a set first.

It's a small performance improvement setting the stage for some larger
work on improving query performance.

Both versions of accessible() still uses DISTINCT by default, but
this can be turned off by passing distinct=False.

Unit tests passed.

Compared the EXPLAIN output between the two versions of the query
on MySQL