#28378 closed Bug (fixed)
QuerySet.union() with queryset that raises EmptyResultSet results in an empty set
Description (last modified by ) ¶
Similar and followup to ticket #28293. Tested on Django 1.11.3.
As QuerySet.union() uses the SQL UNION operator, I would expect "SET1 UNION <EMPTY SET>" to result in SET1. If the empty set is the results of EmpytResultSet being raised, the .union()
result is an empty set, not SET1.
Example test case:
>>> import django >>> django.__version__ '1.11.3' >>> from django.contrib.auth.models import User >>> qs1 = User.objects.all() >>> qs1.count() 100 >>> qs2 = User.objects.filter(pk__in=[]) >>> qs2.count() 0 >>> list(qs1.union(qs2)) []
Change History (10)
comment:1 by , 8 years ago
Severity: | Normal → Release blocker |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:2 by , 8 years ago
by , 8 years ago
Attachment: | 28378.diff added |
---|
comment:4 by , 8 years ago
Description: | modified (diff) |
---|
comment:5 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 8 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
Patch LGTM, it's only missing release notes.
Note:
See TracTickets
for help on using tickets.
difference
is also affected.