diff options
| author | Tim Graham <timograham@gmail.com> | 2015-10-08 21:14:24 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-10-09 14:16:06 -0400 |
| commit | 7a5b7e35bf2e219225b9f26d3dd3e34f26e83e9c (patch) | |
| tree | 94a091b4a67137d0161f819dd661835622d0b9af | |
| parent | 00db71d452d04e417bcc2a88757af1c9e22b8e74 (diff) | |
Fixed #22705 -- Fixed QuerySet.bulk_create() on models without any fields on Oracle.
Fixed on other backends by 134ca4d438bd7cbe8f0f287a00d545f96fa04a01.
Thanks Mariusz Felisiak for the solution.
| -rw-r--r-- | django/db/backends/oracle/operations.py | 3 | ||||
| -rw-r--r-- | tests/bulk_create/models.py | 4 | ||||
| -rw-r--r-- | tests/bulk_create/tests.py | 8 |
3 files changed, 13 insertions, 2 deletions
diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py index ce6946011b..0651105d9f 100644 --- a/django/db/backends/oracle/operations.py +++ b/django/db/backends/oracle/operations.py @@ -267,6 +267,9 @@ WHEN (new.%(col_name)s IS NULL) def max_name_length(self): return 30 + def pk_default_value(self): + return "NULL" + def prep_for_iexact_query(self, x): return x diff --git a/tests/bulk_create/models.py b/tests/bulk_create/models.py index 22d16e75e5..c302a70b1b 100644 --- a/tests/bulk_create/models.py +++ b/tests/bulk_create/models.py @@ -47,3 +47,7 @@ class State(models.Model): class TwoFields(models.Model): f1 = models.IntegerField(unique=True) f2 = models.IntegerField(unique=True) + + +class NoFields(models.Model): + pass diff --git a/tests/bulk_create/tests.py b/tests/bulk_create/tests.py index ce069504d0..f881a1dba0 100644 --- a/tests/bulk_create/tests.py +++ b/tests/bulk_create/tests.py @@ -10,8 +10,8 @@ from django.test import ( ) from .models import ( - Country, Pizzeria, ProxyCountry, ProxyMultiCountry, ProxyMultiProxyCountry, - ProxyProxyCountry, Restaurant, State, TwoFields, + Country, NoFields, Pizzeria, ProxyCountry, ProxyMultiCountry, + ProxyMultiProxyCountry, ProxyProxyCountry, Restaurant, State, TwoFields, ) @@ -177,6 +177,10 @@ class BulkCreateTests(TestCase): TwoFields.objects.bulk_create(objs, len(objs)) self.assertEqual(TwoFields.objects.count(), len(objs)) + def test_empty_model(self): + NoFields.objects.bulk_create([NoFields() for i in range(2)]) + self.assertEqual(NoFields.objects.count(), 2) + @skipUnlessDBFeature('has_bulk_insert') def test_explicit_batch_size_efficiency(self): objs = [TwoFields(f1=i, f2=i) for i in range(0, 100)] |
