summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2018-09-26 20:18:48 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2018-09-26 20:24:20 +0200
commit5aeced6dcd881dfe7413da5356be0e9f14da3d40 (patch)
tree0aad0c47f6451ec39af3ff199e445eda2e0af49e /tests
parent5082108559d9b432b52c306a3c02260c68551f39 (diff)
[2.1.x] Fixed #29630 -- Fixed crash of sliced queries with multiple columns with the same name on Oracle 12.1.
Regression in 0899d583bdb140910698d00d17f5f1abc8774b07. Thanks Tim Graham for the review and Jani Tiainen for help. Backport of 024abe5b82d95ee60cb18a77ebf841ad715467fa from master
Diffstat (limited to 'tests')
-rw-r--r--tests/queries/tests.py32
1 files changed, 25 insertions, 7 deletions
diff --git a/tests/queries/tests.py b/tests/queries/tests.py
index c592086fd4..29b45cf453 100644
--- a/tests/queries/tests.py
+++ b/tests/queries/tests.py
@@ -1836,15 +1836,15 @@ class Queries6Tests(TestCase):
@classmethod
def setUpTestData(cls):
generic = NamedCategory.objects.create(name="Generic")
- t1 = Tag.objects.create(name='t1', category=generic)
- Tag.objects.create(name='t2', parent=t1, category=generic)
- t3 = Tag.objects.create(name='t3', parent=t1)
- t4 = Tag.objects.create(name='t4', parent=t3)
- Tag.objects.create(name='t5', parent=t3)
+ cls.t1 = Tag.objects.create(name='t1', category=generic)
+ cls.t2 = Tag.objects.create(name='t2', parent=cls.t1, category=generic)
+ cls.t3 = Tag.objects.create(name='t3', parent=cls.t1)
+ cls.t4 = Tag.objects.create(name='t4', parent=cls.t3)
+ cls.t5 = Tag.objects.create(name='t5', parent=cls.t3)
n1 = Note.objects.create(note='n1', misc='foo', id=1)
- ann1 = Annotation.objects.create(name='a1', tag=t1)
+ ann1 = Annotation.objects.create(name='a1', tag=cls.t1)
ann1.notes.add(n1)
- Annotation.objects.create(name='a2', tag=t4)
+ Annotation.objects.create(name='a2', tag=cls.t4)
def test_parallel_iterators(self):
# Parallel iterators work.
@@ -1923,6 +1923,24 @@ class Queries6Tests(TestCase):
def test_distinct_ordered_sliced_subquery_aggregation(self):
self.assertEqual(Tag.objects.distinct().order_by('category__name')[:3].count(), 3)
+ def test_multiple_columns_with_the_same_name_slice(self):
+ self.assertEqual(
+ list(Tag.objects.order_by('name').values_list('name', 'category__name')[:2]),
+ [('t1', 'Generic'), ('t2', 'Generic')],
+ )
+ self.assertSequenceEqual(
+ Tag.objects.order_by('name').select_related('category')[:2],
+ [self.t1, self.t2],
+ )
+ self.assertEqual(
+ list(Tag.objects.order_by('-name').values_list('name', 'parent__name')[:2]),
+ [('t5', 't3'), ('t4', 't3')],
+ )
+ self.assertSequenceEqual(
+ Tag.objects.order_by('-name').select_related('parent')[:2],
+ [self.t5, self.t4],
+ )
+
class RawQueriesTests(TestCase):
def setUp(self):