diff options
author | unknown <monty@hundin.mysql.fi> | 2001-11-04 16:14:09 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-11-04 16:14:09 +0200 |
commit | 0d1ba873aa11ea581ebbda9f450027329f2e1a3b (patch) | |
tree | 689c9d0271e23431f1ab0ac09e1af4d68a58ca76 /innobase/trx/trx0trx.c | |
parent | 9f90ff3f12f1fc2bcb70cde74dbd6f27e33e230c (diff) | |
parent | 0176dacd54b7eb62ebc4a81909b189517aee2cb4 (diff) | |
download | mariadb-git-0d1ba873aa11ea581ebbda9f450027329f2e1a3b.tar.gz |
merge with 3.23.44
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
Docs/manual.texi:
Auto merged
include/my_base.h:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/join.test:
Auto merged
mysql-test/t/rpl000012.test:
Auto merged
BUILD/FINISH.sh:
Auto merged
BitKeeper/deleted/.del-db_ext.h~a1e210bbd0de0a48:
Auto merged
BitKeeper/deleted/.del-mutex_ext.h~f20f47ddc346598b:
Auto merged
BitKeeper/deleted/.del-violite.c~984c09cffe14a11b:
Auto merged
BitKeeper/deleted/.del-violite.c~d7b85be615595ace:
Auto merged
Build-tools/Do-all-build-steps:
Auto merged
client/client_priv.h:
Auto merged
client/mysqladmin.c:
Auto merged
innobase/include/srv0srv.h:
Auto merged
innobase/include/univ.i:
Auto merged
innobase/log/log0log.c:
Auto merged
innobase/srv/srv0srv.c:
Auto merged
innobase/srv/srv0start.c:
Auto merged
isam/pack_isam.c:
Auto merged
libmysql_r/Makefile.am:
Auto merged
myisam/myisamchk.c:
Auto merged
mysql-test/t/having.test:
Auto merged
mysql-test/t/rpl000015-slave.sh:
Auto merged
mysql-test/t/rpl000016-slave.sh:
Auto merged
mysys/mf_cache.c:
Auto merged
mysys/mf_casecnv.c:
Auto merged
mysys/mf_tempfile.c:
Auto merged
readline/vi_mode.c:
Auto merged
strings/strto.c:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/time.cc:
Auto merged
BUILD/SETUP.sh:
Use -mcpu as default (safe for all x86 cpu's)
client/mysqldump.c:
Merge from 3.23.44
configure.in:
Update version number
extra/resolveip.c:
Portability fix
Diffstat (limited to 'innobase/trx/trx0trx.c')
-rw-r--r-- | innobase/trx/trx0trx.c | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/innobase/trx/trx0trx.c b/innobase/trx/trx0trx.c index 13b37775dce..18c80819245 100644 --- a/innobase/trx/trx0trx.c +++ b/innobase/trx/trx0trx.c @@ -499,7 +499,7 @@ trx_commit_off_kernel( rseg = trx->rseg; - if ((trx->insert_undo != NULL) || (trx->update_undo != NULL)) { + if (trx->insert_undo != NULL || trx->update_undo != NULL) { mutex_exit(&kernel_mutex); @@ -524,7 +524,13 @@ trx_commit_off_kernel( if (undo) { mutex_enter(&kernel_mutex); -#ifdef TRX_UPDATE_UNDO_OPT +#ifdef notdefined + /* ########## There is a bug here: purge and rollback + need the whole stack of old record versions even if no + consistent read would need them!! This is because they + decide on the basis of the old versions when we can + remove delete marked secondary index records! */ + if (!undo->del_marks && (undo->size == 1) && (UT_LIST_GET_LEN(trx_sys->view_list) == 1)) { @@ -584,9 +590,7 @@ trx_commit_off_kernel( mutex_enter(&kernel_mutex); } -#ifdef TRX_UPDATE_UNDO_OPT -shortcut: -#endif + ut_ad(trx->conc_state == TRX_ACTIVE); ut_ad(mutex_own(&kernel_mutex)); @@ -1286,6 +1290,8 @@ trx_commit_for_mysql( sig to the transaction, we must here make sure that trx has been started. */ + ut_a(trx); + trx->op_info = "committing"; trx_start_if_not_started(trx); @@ -1309,29 +1315,13 @@ trx_mark_sql_stat_end( /*==================*/ trx_t* trx) /* in: trx handle */ { - trx_start_if_not_started(trx); - - mutex_enter(&kernel_mutex); - - trx->last_sql_stat_start.least_undo_no = trx->undo_no; - - mutex_exit(&kernel_mutex); -} - -/************************************************************************** -Marks the latest SQL statement ended but does not start a new transaction -if the trx is not started. */ + ut_a(trx); -void -trx_mark_sql_stat_end_do_not_start_new( -/*===================================*/ - trx_t* trx) /* in: trx handle */ -{ - mutex_enter(&kernel_mutex); + if (trx->conc_state == TRX_NOT_STARTED) { + trx->undo_no = ut_dulint_zero; + } trx->last_sql_stat_start.least_undo_no = trx->undo_no; - - mutex_exit(&kernel_mutex); } /************************************************************************** |