Revision 1fd14d3d
b/snf-common/synnefo/lib/db/managers.py | ||
---|---|---|
29 | 29 |
|
30 | 30 |
from django.db import connections |
31 | 31 |
from django.db.models import Manager |
32 |
from django.db.models.query import QuerySet |
|
33 |
|
|
32 |
from django.db.models.query import QuerySet, EmptyQuerySet
|
|
33 |
from django.db.models.sql.datastructures import EmptyResultSet |
|
34 | 34 |
|
35 | 35 |
class ForUpdateManager(Manager): |
36 | 36 |
""" Model manager implementing SELECT .. FOR UPDATE statement |
... | ... | |
82 | 82 |
if 'sqlite' in connections[query.db].settings_dict['ENGINE'].lower(): |
83 | 83 |
# SQLite does not support FOR UPDATE |
84 | 84 |
return query |
85 |
sql, params = query.query.get_compiler(query.db).as_sql() |
|
85 |
try: |
|
86 |
sql, params = query.query.get_compiler(query.db).as_sql() |
|
87 |
except EmptyResultSet: |
|
88 |
return EmptyQuerySet() |
|
86 | 89 |
return query.model._default_manager.raw(sql.rstrip() + ' FOR UPDATE', |
87 | 90 |
params) |
Also available in: Unified diff