Fixed #22705 -- Fixed QuerySet.bulk_create() on models without any fields on Oracle.
Fixed on other backends by 134ca4d438
.
Thanks Mariusz Felisiak for the solution.
This commit is contained in:
parent
00db71d452
commit
7a5b7e35bf
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
Loading…
Reference in New Issue