mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #33796 -- Fixed ordered combined queryset crash when used in subquery on PostgreSQL and MySQL.
Thanks Shai Berger for the report.
Regression in 30a0144134.
This commit is contained in:
@@ -321,6 +321,28 @@ class QuerySetSetOperationTests(TestCase):
|
||||
# Combined queries don't mutate.
|
||||
self.assertCountEqual(qs, ["a1", "a2"])
|
||||
|
||||
@skipUnlessDBFeature("supports_slicing_ordering_in_compound")
|
||||
def test_union_in_with_ordering(self):
|
||||
qs1 = Number.objects.filter(num__gt=7).order_by("num")
|
||||
qs2 = Number.objects.filter(num__lt=2).order_by("num")
|
||||
self.assertNumbersEqual(
|
||||
Number.objects.exclude(id__in=qs1.union(qs2).values("id")),
|
||||
[2, 3, 4, 5, 6, 7],
|
||||
ordered=False,
|
||||
)
|
||||
|
||||
@skipUnlessDBFeature(
|
||||
"supports_slicing_ordering_in_compound", "allow_sliced_subqueries_with_in"
|
||||
)
|
||||
def test_union_in_with_ordering_and_slice(self):
|
||||
qs1 = Number.objects.filter(num__gt=7).order_by("num")[:1]
|
||||
qs2 = Number.objects.filter(num__lt=2).order_by("-num")[:1]
|
||||
self.assertNumbersEqual(
|
||||
Number.objects.exclude(id__in=qs1.union(qs2).values("id")),
|
||||
[0, 2, 3, 4, 5, 6, 7, 9],
|
||||
ordered=False,
|
||||
)
|
||||
|
||||
def test_count_union(self):
|
||||
qs1 = Number.objects.filter(num__lte=1).values("num")
|
||||
qs2 = Number.objects.filter(num__gte=2, num__lte=3).values("num")
|
||||
|
||||
Reference in New Issue
Block a user