summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <heikki@donna.mysql.fi>2001-04-06 20:37:31 +0300
committerunknown <heikki@donna.mysql.fi>2001-04-06 20:37:31 +0300
commita9c32293404dfa5daafe69f1c2b6745825eff5a5 (patch)
tree2ea76af015747f83b5e9eba769ceccd905e2f9cc /sql
parentefc74d1b22b4ba54fedcd10cad21c6bf67340d3c (diff)
downloadmariadb-git-a9c32293404dfa5daafe69f1c2b6745825eff5a5.tar.gz
univ.i Prevent inlining of functions on HP-UX because GCC is broken there
configure.in Prevent inlining of functions on HP-UX because GCC is broken there trx0trx.h Fix trx->error_info in MySQL debug version: Innobase and ha_innobase.cc saw a different size for pthread_mutex_t trx0trx.c Fix trx->error_info in MySQL debug version: Innobase and ha_innobase.cc saw a different size for pthread_mutex_t ha_innobase.cc Fix trx->error_info in MySQL debug version: Innobase and ha_innobase.cc saw a different size for pthread_mutex_t sql/ha_innobase.cc: Fix trx->error_info in MySQL debug version: Innobase and ha_innobase.cc saw a different size for pthread_mutex_t innobase/trx/trx0trx.c: Fix trx->error_info in MySQL debug version: Innobase and ha_innobase.cc saw a different size for pthread_mutex_t innobase/include/trx0trx.h: Fix trx->error_info in MySQL debug version: Innobase and ha_innobase.cc saw a different size for pthread_mutex_t innobase/configure.in: Prevent inlining of functions on HP-UX because GCC is broken there innobase/include/univ.i: Prevent inlining of functions on HP-UX because GCC is broken there BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
Diffstat (limited to 'sql')
-rw-r--r--sql/ha_innobase.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc
index 0debae9a797..62fa6627ae8 100644
--- a/sql/ha_innobase.cc
+++ b/sql/ha_innobase.cc
@@ -2575,10 +2575,16 @@ ha_innobase::info(
}
}
+ /* The trx struct in Innobase contains a pthread mutex embedded:
+ in the debug version of MySQL that it replaced by a 'safe mutex'
+ which is of a different size. We have to use a function to access
+ trx fields. Otherwise trx->error_info will be a random
+ pointer and cause a seg fault. */
+
if (flag & HA_STATUS_ERRKEY) {
errkey = (unsigned int) row_get_mysql_key_number_for_index(
- (dict_index_t*)
- prebuilt->trx->error_info);
+ (dict_index_t*)
+ trx_get_error_info(prebuilt->trx));
}
DBUG_VOID_RETURN;