diff options
author | unknown <jan@hundin.mysql.fi> | 2005-01-17 09:09:59 +0200 |
---|---|---|
committer | unknown <jan@hundin.mysql.fi> | 2005-01-17 09:09:59 +0200 |
commit | e1f13fb2e02949bf8cbf6894581b94b7f850eef7 (patch) | |
tree | f3c7a39fbbd795b1af48391166a7c81925857142 /innobase | |
parent | a7401bf7cc1646f76710992cd77c54b97df8d860 (diff) | |
download | mariadb-git-e1f13fb2e02949bf8cbf6894581b94b7f850eef7.tar.gz |
Required changes to support recovery of X/Open XA in InnoDB.
innobase/lock/lock0lock.c:
Add prepared state to concurrency states in lock validate.
innobase/trx/trx0trx.c:
Prepared transactions are active transactions in file based word.
sql/ha_innodb.cc:
Add full support of X/Open XA to InnoDB.
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/lock/lock0lock.c | 22 | ||||
-rw-r--r-- | innobase/trx/trx0trx.c | 4 |
2 files changed, 14 insertions, 12 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; |