fixed issue 864, thanks Niphlod
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-07-17 16:15:26) dev
|
Version 2.00.0 (2012-07-17 17:11:20) dev
|
||||||
|
|||||||
+4
-6
@@ -1878,17 +1878,15 @@ class SQLiteAdapter(BaseAdapter):
|
|||||||
return '(%s REGEXP %s)' % (self.expand(first),
|
return '(%s REGEXP %s)' % (self.expand(first),
|
||||||
self.expand(second,'string'))
|
self.expand(second,'string'))
|
||||||
|
|
||||||
def _select(self, query, fields, attributes):
|
def select(self, query, fields, attributes):
|
||||||
"""
|
"""
|
||||||
Simulate SELECT ... FOR UPDATE with BEGIN IMMEDIATE TRANSACTION.
|
Simulate SELECT ... FOR UPDATE with BEGIN IMMEDIATE TRANSACTION.
|
||||||
Note that the entire database, rather than one record, is locked
|
Note that the entire database, rather than one record, is locked
|
||||||
(it will be locked eventually anyway by the following UPDATE).
|
(it will be locked eventually anyway by the following UPDATE).
|
||||||
"""
|
"""
|
||||||
sql = super(SQLiteAdapter, self)._select(query, fields, attributes)
|
if attributes.get('for_update', False) and not 'cache' in attributes:
|
||||||
if attributes.get('for_update', False):
|
self.execute('BEGIN IMMEDIATE TRANSACTION;')
|
||||||
sql = 'BEGIN IMMEDIATE TRANSACTION; ' + sql
|
return super(SQLiteAdapter, self).select(query, fields, attributes)
|
||||||
return sql
|
|
||||||
|
|
||||||
|
|
||||||
class SpatiaLiteAdapter(SQLiteAdapter):
|
class SpatiaLiteAdapter(SQLiteAdapter):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user