From f760212202c5332934a3e3f2df06313245fc22ad Mon Sep 17 00:00:00 2001 From: randomdan Date: Sun, 8 Dec 2013 15:54:52 +0000 Subject: Add savepoint support to core DB connector Add a savepoint wrapper around sql merge --- project2/sql/sqlMergeTask.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/project2/sql/sqlMergeTask.cpp b/project2/sql/sqlMergeTask.cpp index d4e22c7..4356279 100644 --- a/project2/sql/sqlMergeTask.cpp +++ b/project2/sql/sqlMergeTask.cpp @@ -6,6 +6,7 @@ #include "exceptions.h" #include "sqlVariableBinder.h" #include "scriptLoader.h" +#include "scopeObject.h" #include #include #include @@ -161,6 +162,11 @@ class MergeWhere : public TablePatch::WhereProvider { void SqlMergeTask::execute(ExecContext * ec) const { + auto savepoint(stringf("sqlmerge_savepoint_%p", this)); + destdb->savepoint(savepoint); + ScopeObject SPHandler(NULL, + boost::bind(&DB::Connection::releaseSavepoint, destdb, savepoint), + boost::bind(&DB::Connection::rollbackToSavepoint, destdb, savepoint)); createTempTable(); if (earlyKeys(NULL)) { createTempKey(); -- cgit v1.2.3