summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2010-07-17 02:38:10 +0000
committerAlex Gaynor <alex.gaynor@gmail.com>2010-07-17 02:38:10 +0000
commit485bfe486148783870568ba7e47d41d8ab794069 (patch)
treef3be5b3fccd9c44a1412519bbd022db77e139355 /django/db/models/sql
parent59089a7d1384f5697e75c55f95a10e721757e2e7 (diff)
[soc2010/query-refactor] Implemented deletion. Thanks to Josh Ourisman for pointing this out.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/query-refactor@13433 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/compiler.py3
-rw-r--r--django/db/models/sql/subqueries.py4
2 files changed, 5 insertions, 2 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index b4c9ea1f44..b6ffdcb8c7 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -821,6 +821,9 @@ class SQLDeleteCompiler(SQLCompiler):
where, params = self.query.where.as_sql(qn=qn, connection=self.connection)
result.append('WHERE %s' % where)
return ' '.join(result), tuple(params)
+
+ def delete(self, *args, **kwargs):
+ return self.execute_sql(*args, **kwargs)
class SQLUpdateCompiler(SQLCompiler):
def as_sql(self):
diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py
index a066dfeca8..49c06dec84 100644
--- a/django/db/models/sql/subqueries.py
+++ b/django/db/models/sql/subqueries.py
@@ -24,7 +24,7 @@ class DeleteQuery(Query):
def do_query(self, table, where, using):
self.tables = [table]
self.where = where
- self.get_compiler(using).execute_sql(None)
+ self.get_compiler(using).delete(None)
def delete_batch(self, pk_list, using):
"""
@@ -36,7 +36,7 @@ class DeleteQuery(Query):
for offset in range(0, len(pk_list), GET_ITERATOR_CHUNK_SIZE):
where = self.where_class()
field = self.model._meta.pk
- where.add((Constraint(None, field.column, field), 'in',
+ where.add((Constraint(self.model._meta.db_table, field.column, field), 'in',
pk_list[offset : offset + GET_ITERATOR_CHUNK_SIZE]), AND)
self.do_query(self.model._meta.db_table, where, using=using)