mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
c43f894c51
------------------------------------------------------------ revno: 2630.22.3 committer: Davi Arnaut <Davi.Arnaut@Sun.COM> branch nick: 4284-6.0 timestamp: Thu 2008-08-07 22:33:43 -0300 message: WL#4284: Transactional DDL locking Make transaction management more modular through a new interface. The overall objective of this change is to provide groundwork for the design of transactional DDL locking by cleaning up the transaction high level API to better distinguish operations implicit and explicit, and single statement transaction from operations on the normal transaction. Having a a high-level interface for transaction management provides a better base for implementing transactional concepts that are not always tied to storage engines and also makes it easier to interect with other higher level modules of the server.
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
/* Copyright (C) 2008 Sun/MySQL
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
#ifndef TRANSACTION_H
|
|
#define TRANSACTION_H
|
|
|
|
#ifdef USE_PRAGMA_INTERFACE
|
|
#pragma interface /* gcc class implementation */
|
|
#endif
|
|
|
|
#include <my_global.h>
|
|
#include <m_string.h>
|
|
|
|
class THD;
|
|
|
|
bool trans_begin(THD *thd, uint flags= 0);
|
|
bool trans_commit(THD *thd);
|
|
bool trans_commit_implicit(THD *thd);
|
|
bool trans_rollback(THD *thd);
|
|
|
|
bool trans_commit_stmt(THD *thd);
|
|
bool trans_rollback_stmt(THD *thd);
|
|
|
|
bool trans_savepoint(THD *thd, LEX_STRING name);
|
|
bool trans_rollback_to_savepoint(THD *thd, LEX_STRING name);
|
|
bool trans_release_savepoint(THD *thd, LEX_STRING name);
|
|
|
|
bool trans_xa_start(THD *thd);
|
|
bool trans_xa_end(THD *thd);
|
|
bool trans_xa_prepare(THD *thd);
|
|
bool trans_xa_commit(THD *thd);
|
|
bool trans_xa_rollback(THD *thd);
|
|
|
|
#endif /* TRANSACTION_H */
|