aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/transaction-impl.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-29 14:43:47 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-29 14:43:47 +0200
commit83aede3c9e27a8370c71dbde3549905c60524702 (patch)
treef6e9f617a1e9183b67e6597d1a5179db6ac874c1 /odb/sqlite/transaction-impl.cxx
parent2fe2c22fa340e4854a69a1c17d94f8e58ba68ad4 (diff)
Add support for starting immediate and exclusive transactions
Diffstat (limited to 'odb/sqlite/transaction-impl.cxx')
-rw-r--r--odb/sqlite/transaction-impl.cxx23
1 files changed, 21 insertions, 2 deletions
diff --git a/odb/sqlite/transaction-impl.cxx b/odb/sqlite/transaction-impl.cxx
index 36d6c2b..41254a1 100644
--- a/odb/sqlite/transaction-impl.cxx
+++ b/odb/sqlite/transaction-impl.cxx
@@ -14,10 +14,29 @@ namespace odb
namespace sqlite
{
transaction_impl::
- transaction_impl (database_type& db)
+ transaction_impl (database_type& db, lock l)
: odb::transaction_impl (db), connection_ (db.connection ())
{
- connection_->statement_cache ().begin_statement ().execute ();
+ statement_cache& c (connection_->statement_cache ());
+
+ switch (l)
+ {
+ case deferred:
+ {
+ c.begin_statement ().execute ();
+ break;
+ }
+ case immediate:
+ {
+ c.begin_immediate_statement ().execute ();
+ break;
+ }
+ case exclusive:
+ {
+ c.begin_exclusive_statement ().execute ();
+ break;
+ }
+ }
}
transaction_impl::