summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-02-18 12:02:46 +0100
committerunknown <serg@serg.mylan>2005-02-18 12:02:46 +0100
commit61a88ff0a1dd22df722fa5246075b8d354c683f8 (patch)
treeedca9fef9150201c6434455e186b727517e7d896 /innobase
parentc2e18c5061e24fcafed4bb4f58ef41b6b0a52fcc (diff)
parente31ffa246fa01610c7bb1f9629d95d3cb5283c81 (diff)
downloadmariadb-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.ic7
-rw-r--r--innobase/read/read0read.c7
-rw-r--r--innobase/trx/trx0trx.c7
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);