summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--innobase/lock/lock0lock.c22
-rw-r--r--innobase/trx/trx0trx.c4
-rw-r--r--sql/ha_innodb.cc50
3 files changed, 23 insertions, 53 deletions
diff --git a/innobase/lock/lock0lock.c b/innobase/lock/lock0lock.c
index 70075019389..8995f543c61 100644
--- a/innobase/lock/lock0lock.c
+++ b/innobase/lock/lock0lock.c
@@ -4417,8 +4417,9 @@ lock_table_queue_validate(
lock = UT_LIST_GET_FIRST(table->locks);
while (lock) {
- ut_a(((lock->trx)->conc_state == TRX_ACTIVE)
- || ((lock->trx)->conc_state == TRX_COMMITTED_IN_MEMORY));
+ ut_a((lock->trx)->conc_state == TRX_ACTIVE ||
+ (lock->trx)->conc_state == TRX_PREPARED ||
+ (lock->trx)->conc_state == TRX_COMMITTED_IN_MEMORY);
if (!lock_get_wait(lock)) {
@@ -4464,9 +4465,9 @@ lock_rec_queue_validate(
lock = lock_rec_get_first(rec);
while (lock) {
- ut_a(lock->trx->conc_state == TRX_ACTIVE
- || lock->trx->conc_state
- == TRX_COMMITTED_IN_MEMORY);
+ ut_a(lock->trx->conc_state == TRX_ACTIVE ||
+ lock->trx->conc_state == TRX_PREPARED ||
+ lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY);
ut_a(trx_in_trx_list(lock->trx));
@@ -4518,8 +4519,10 @@ lock_rec_queue_validate(
lock = lock_rec_get_first(rec);
while (lock) {
- ut_a(lock->trx->conc_state == TRX_ACTIVE
- || lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY);
+ ut_a(lock->trx->conc_state == TRX_ACTIVE ||
+ lock->trx->conc_state == TRX_PREPARED ||
+ lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY);
+
ut_a(trx_in_trx_list(lock->trx));
if (index) {
@@ -4600,8 +4603,9 @@ loop:
}
ut_a(trx_in_trx_list(lock->trx));
- ut_a(lock->trx->conc_state == TRX_ACTIVE
- || lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY);
+ ut_a(lock->trx->conc_state == TRX_ACTIVE ||
+ lock->trx->conc_state == TRX_PREPARED ||
+ lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY);
for (i = nth_bit; i < lock_rec_get_n_bits(lock); i++) {
diff --git a/innobase/trx/trx0trx.c b/innobase/trx/trx0trx.c
index 51f0fbd7b93..e468b1c9f13 100644
--- a/innobase/trx/trx0trx.c
+++ b/innobase/trx/trx0trx.c
@@ -1612,12 +1612,10 @@ trx_print(
fputs(", not started", f);
break;
case TRX_ACTIVE:
+ case TRX_PREPARED:
fprintf(f, ", ACTIVE %lu sec",
(ulong)difftime(time(NULL), trx->start_time));
break;
- case TRX_PREPARED:
- fputs(", PREPARED", f);
- break;
case TRX_COMMITTED_IN_MEMORY:
fputs(", COMMITTED IN MEMORY", f);
break;
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index b8aa2df0fa9..8354d452f21 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -156,18 +156,18 @@ static int innobase_rollback_to_savepoint(THD* thd, void *savepoint);
static int innobase_savepoint(THD* thd, void *savepoint);
static handlerton innobase_hton = {
- 0, /* slot */
- sizeof(trx_named_savept_t), /* savepoint size. TODO: use it */
+ 0, /* slot */
+ sizeof(trx_named_savept_t), /* savepoint size. TODO: use it */
innobase_close_connection,
innobase_savepoint,
innobase_rollback_to_savepoint,
- NULL, /* savepoint_release */
- innobase_commit,
- innobase_rollback,
- innobase_xa_prepare, //makes flush_block_commit test to fail
- NULL, /* recover */
- NULL, /* commit_by_xid */
- NULL, /* rollback_by_xid */
+ NULL, /* savepoint_release */
+ innobase_commit, /* commit */
+ innobase_rollback, /* rollback */
+ innobase_xa_prepare, /* prepare */
+ innobase_xa_recover, /* recover */
+ innobase_commit_by_xid, /* commit_by_xid */
+ innobase_rollback_by_xid, /* rollback_by_xid */
};
/*********************************************************************
@@ -6019,36 +6019,4 @@ int innobase_rollback_by_xid(
}
}
-/***********************************************************************
-This function is used to test commit/rollback of XA transactions */
-
-int innobase_xa_end(
-/*================*/
- THD* thd) /* in: MySQL thread handle of the user for whom
- transactions should be recovered */
-{
- DBUG_ENTER("innobase_xa_end");
-
- XID trx_list[100];
- int trx_num, trx_num_max = 100;
- int i;
- XID xid;
-
- while((trx_num = innobase_xa_recover(trx_list, trx_num_max))) {
-
- for(i=0;i < trx_num; i++) {
- xid = trx_list[i];
-
- if ( i % 2) {
- innobase_commit_by_xid(&xid);
- } else {
- innobase_rollback_by_xid(&xid);
- }
- }
- }
-
- free(trx_list);
-
- DBUG_RETURN(0);
-}
#endif /* HAVE_INNOBASE_DB */