summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-10-08 21:14:24 -0400
committerTim Graham <timograham@gmail.com>2015-10-09 14:16:06 -0400
commit7a5b7e35bf2e219225b9f26d3dd3e34f26e83e9c (patch)
tree94a091b4a67137d0161f819dd661835622d0b9af
parent00db71d452d04e417bcc2a88757af1c9e22b8e74 (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.py3
-rw-r--r--tests/bulk_create/models.py4
-rw-r--r--tests/bulk_create/tests.py8
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)]