23 #include <drizzled/session.h>
24 #include <drizzled/statement/savepoint.h>
25 #include <drizzled/transaction_services.h>
26 #include <drizzled/named_savepoint.h>
27 #include <drizzled/session/transactions.h>
36 bool statement::Savepoint::execute()
38 if (! (session().options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)))
51 if ( (session().options & OPTION_NOT_AUTOCOMMIT) &&
52 (transaction().all.getResourceContexts().empty() ==
true) )
54 if (session().startTransaction() ==
false)
64 deque<NamedSavepoint> &savepoints= transaction().savepoints;
65 deque<NamedSavepoint>::iterator iter;
67 for (iter= savepoints.begin();
68 iter != savepoints.end();
72 const string &sv_name= sv.getName();
73 if (my_strnncoll(system_charset_info,
74 (
unsigned char *) lex().ident.data(),
76 (
unsigned char *) sv_name.c_str(),
80 if (iter != savepoints.end())
83 (void) TransactionServices::releaseSavepoint(session(), sv);
84 savepoints.erase(iter);
89 if (TransactionServices::setSavepoint(session(), newsv))
95 savepoints.push_front(newsv);
void my_ok(ha_rows affected_rows=0, ha_rows found_rows_arg=0, uint64_t passed_id=0, const char *message=NULL)
TODO: Rename this file - func.h is stupid.