Fixed #17056 -- Tweaked insert SQL clause generation so a corner case doesn't fail with Oracle.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16997 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b7f2aba566
commit
5f2be4ecbb
|
@ -824,7 +824,7 @@ class SQLInsertCompiler(SQLCompiler):
|
||||||
for val in values
|
for val in values
|
||||||
]
|
]
|
||||||
if self.return_id and self.connection.features.can_return_id_from_insert:
|
if self.return_id and self.connection.features.can_return_id_from_insert:
|
||||||
params = values[0]
|
params = params[0]
|
||||||
col = "%s.%s" % (qn(opts.db_table), qn(opts.pk.column))
|
col = "%s.%s" % (qn(opts.db_table), qn(opts.pk.column))
|
||||||
result.append("VALUES (%s)" % ", ".join(placeholders[0]))
|
result.append("VALUES (%s)" % ", ".join(placeholders[0]))
|
||||||
r_fmt, r_params = self.connection.ops.return_insert_id()
|
r_fmt, r_params = self.connection.ops.return_insert_id()
|
||||||
|
|
|
@ -1868,3 +1868,12 @@ class UnionTests(unittest.TestCase):
|
||||||
Q1 = Q(objecta__name='one', objectc__objecta__name='two')
|
Q1 = Q(objecta__name='one', objectc__objecta__name='two')
|
||||||
Q2 = Q(objecta__objectc__name='ein', objectc__objecta__name='three', objecta__objectb__name='trois')
|
Q2 = Q(objecta__objectc__name='ein', objectc__objecta__name='three', objecta__objectb__name='trois')
|
||||||
self.check_union(ObjectB, Q1, Q2)
|
self.check_union(ObjectB, Q1, Q2)
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultValuesInsertTest(TestCase):
|
||||||
|
def test_no_extra_params(self):
|
||||||
|
# Ticket #17056 -- affects Oracle
|
||||||
|
try:
|
||||||
|
DumbCategory.objects.create()
|
||||||
|
except TypeError:
|
||||||
|
self.fail("Creation of an instance of a model with only the PK field shouldn't error out after bulk insert refactoring (#17056)")
|
||||||
|
|
Loading…
Reference in New Issue