diff options
author | unknown <serg@serg.mylan> | 2005-02-18 12:02:46 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2005-02-18 12:02:46 +0100 |
commit | 61a88ff0a1dd22df722fa5246075b8d354c683f8 (patch) | |
tree | edca9fef9150201c6434455e186b727517e7d896 /innobase | |
parent | c2e18c5061e24fcafed4bb4f58ef41b6b0a52fcc (diff) | |
parent | e31ffa246fa01610c7bb1f9629d95d3cb5283c81 (diff) | |
download | mariadb-git-61a88ff0a1dd22df722fa5246075b8d354c683f8.tar.gz |
Merge serg.mylan:/usr/home/serg/Abk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0-xa
configure.in:
Auto merged
mysql-test/r/drop_temp_table.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/t/innodb.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
Diffstat (limited to 'innobase')
-rw-r--r-- | innobase/include/trx0sys.ic | 7 | ||||
-rw-r--r-- | innobase/read/read0read.c | 7 | ||||
-rw-r--r-- | innobase/trx/trx0trx.c | 7 |
3 files changed, 12 insertions, 9 deletions
diff --git a/innobase/include/trx0sys.ic b/innobase/include/trx0sys.ic index 8f455e554ea..24610bef827 100644 --- a/innobase/include/trx0sys.ic +++ b/innobase/include/trx0sys.ic @@ -315,7 +315,7 @@ trx_is_active( } if (ut_dulint_cmp(trx_id, trx_sys->max_trx_id) >= 0) { - + /* There must be corruption: we return TRUE because this function is only called by lock_clust_rec_some_has_impl() and row_vers_impl_x_locked_off_kernel() and they have @@ -325,8 +325,9 @@ trx_is_active( } trx = trx_get_on_id(trx_id); - if (trx && (trx->conc_state == TRX_ACTIVE)) { - + if (trx && (trx->conc_state == TRX_ACTIVE || + trx->conc_state == TRX_PREPARED)) { + return(TRUE); } diff --git a/innobase/read/read0read.c b/innobase/read/read0read.c index 889612deef4..0c4a037508e 100644 --- a/innobase/read/read0read.c +++ b/innobase/read/read0read.c @@ -153,10 +153,11 @@ read_view_open_now( /* No active transaction should be visible, except cr_trx */ while (trx) { - if (trx != cr_trx && trx->conc_state == TRX_ACTIVE) { + if (trx != cr_trx && (trx->conc_state == TRX_ACTIVE || + trx->conc_state == TRX_PREPARED)) { read_view_set_nth_trx_id(view, n, trx->id); - + n++; /* NOTE that a transaction whose trx number is < @@ -164,7 +165,7 @@ read_view_open_now( in the middle of its commit! Note that when a transaction starts, we initialize trx->no to ut_dulint_max. */ - + if (ut_dulint_cmp(view->low_limit_no, trx->no) > 0) { view->low_limit_no = trx->no; diff --git a/innobase/trx/trx0trx.c b/innobase/trx/trx0trx.c index f254f3ff904..eee0d43ce56 100644 --- a/innobase/trx/trx0trx.c +++ b/innobase/trx/trx0trx.c @@ -1617,20 +1617,21 @@ trx_print( (ulong) ut_dulint_get_high(trx->id), (ulong) ut_dulint_get_low(trx->id)); - switch (trx->conc_state) { + switch (trx->conc_state) { case TRX_NOT_STARTED: fputs(", not started", f); break; case TRX_ACTIVE: + case TRX_PREPARED: fprintf(f, ", ACTIVE %lu sec", (ulong)difftime(time(NULL), trx->start_time)); - break; + break; case TRX_COMMITTED_IN_MEMORY: fputs(", COMMITTED IN MEMORY", f); break; default: fprintf(f, " state %lu", (ulong) trx->conc_state); - } + } #ifdef UNIV_LINUX fprintf(f, ", process no %lu", trx->mysql_process_no); |