commit fded86c4f71deb33a3e5db89476676f82bdcf092
Author: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Date:   Thu Apr 29 06:58:23 2021 +0200

    test

diff --git a/tests/ticket_32690/__init__.py b/tests/ticket_32690/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/ticket_32690/models.py b/tests/ticket_32690/models.py
new file mode 100644
index 0000000000..06ed5a0a6f
--- /dev/null
+++ b/tests/ticket_32690/models.py
@@ -0,0 +1,36 @@
+from django.db import models
+from django.db.models import Count, Q
+
+
+class RealmAccess(models.Model):
+    name = models.CharField(max_length=100)
+
+
+class Actor(models.Model):
+    realm_access = models.ManyToManyField(RealmAccess, related_name='actors')
+
+
+class ThingManager(models.QuerySet):
+    def filter_by_realm_access_broken(self, actor):
+        realm_access = RealmAccess.objects.filter(actors=actor)
+        queryset = self.annotate(Count("actor__realm_access"))
+        import sqlparse
+        print(sqlparse.format(str(queryset.filter(
+            Q(
+                actor__realm_access__in=realm_access
+            )
+            | Q(actor__realm_access__count=0)
+        ).query), reindent=True, keyword_case='upper'))
+
+        return queryset.filter(
+            Q(
+                actor__realm_access__in=realm_access
+            )
+            | Q(actor__realm_access__count=0)
+        )
+
+class Thing(models.Model):
+    actor = models.ForeignKey(Actor, on_delete=models.CASCADE)
+    date = models.DateField()
+
+    objects = ThingManager.as_manager()
diff --git a/tests/ticket_32690/tests.py b/tests/ticket_32690/tests.py
new file mode 100644
index 0000000000..ff70c1c7fe
--- /dev/null
+++ b/tests/ticket_32690/tests.py
@@ -0,0 +1,16 @@
+from django.test import TestCase
+
+from .models import Actor, RealmAccess, Thing
+
+class MyTests(TestCase):
+
+    def test_1(self):
+        actor1 = Actor.objects.create()
+        actor2 = Actor.objects.create()
+
+        r1 = RealmAccess.objects.create(name='ok')
+        r2 = RealmAccess.objects.create(name='ok2')
+
+        actor1.realm_access.add(r1)
+
+        list(Thing.objects.filter_by_realm_access_broken(actor1))
