mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
This commit is contained in:
commit
b60d8e7b00
7 changed files with 28 additions and 10 deletions
|
@ -804,8 +804,13 @@ my_bool my_gethwaddr(uchar *to);
|
|||
#endif
|
||||
|
||||
#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f)
|
||||
#ifdef HAVE_GETPAGESIZE
|
||||
#define my_getpagesize() getpagesize()
|
||||
#define my_munmap(a,b) munmap(a,b)
|
||||
#else
|
||||
/* qnx ? */
|
||||
#define my_getpagesize() 8192
|
||||
#endif
|
||||
#define my_munmap(a,b) munmap((char*)(a),(b))
|
||||
|
||||
#else
|
||||
/* not a complete set of mmap() flags, but only those that nesessary */
|
||||
|
|
|
@ -175,7 +175,7 @@ while ($1)
|
|||
commit;
|
||||
drop table t1;
|
||||
let $VERSION=`select version()`;
|
||||
--replace_result $VERSION VERSION
|
||||
--replace_result $VERSION VERSION "xid=373" "xid=146"
|
||||
show binlog events in 'master-bin.000001';
|
||||
--replace_result $VERSION VERSION
|
||||
show binlog events in 'master-bin.000002';
|
||||
|
|
|
@ -1346,14 +1346,14 @@ innobase_commit_low(
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef HAVE_REPLICATION
|
||||
#ifdef DISABLE_HAVE_REPLICATION
|
||||
if (current_thd->slave_thread) {
|
||||
/* Update the replication position info inside InnoDB */
|
||||
|
||||
trx->mysql_master_log_file_name
|
||||
= active_mi->rli.group_master_log_name;
|
||||
trx->mysql_master_log_pos= ((ib_longlong)
|
||||
active_mi->rli.future_group_master_log_pos);
|
||||
active_mi->rli.future_group_master_log_pos);
|
||||
}
|
||||
#endif /* HAVE_REPLICATION */
|
||||
|
||||
|
|
|
@ -553,6 +553,7 @@ int ha_commit_trans(THD *thd, bool all)
|
|||
#ifdef USING_TRANSACTIONS
|
||||
if (trans->nht)
|
||||
{
|
||||
DBUG_EXECUTE_IF("crash_commit_before", abort(););
|
||||
if (!trans->no_2pc && trans->nht > 1)
|
||||
{
|
||||
for (; *ht && !error; ht++)
|
||||
|
@ -565,16 +566,20 @@ int ha_commit_trans(THD *thd, bool all)
|
|||
}
|
||||
statistic_increment(thd->status_var.ha_prepare_count,&LOCK_status);
|
||||
}
|
||||
DBUG_EXECUTE_IF("crash_commit_after_prepare", abort(););
|
||||
if (error || (is_real_trans && xid &&
|
||||
(error= !(cookie= tc_log->log(thd, xid)))))
|
||||
{
|
||||
ha_rollback_trans(thd, all);
|
||||
return 1;
|
||||
}
|
||||
DBUG_EXECUTE_IF("crash_commit_after_log", abort(););
|
||||
}
|
||||
error=ha_commit_one_phase(thd, all) ? cookie ? 2 : 1 : 0;
|
||||
DBUG_EXECUTE_IF("crash_commit_before_unlog", abort(););
|
||||
if (cookie)
|
||||
tc_log->unlog(cookie, xid);
|
||||
DBUG_EXECUTE_IF("crash_commit_after", abort(););
|
||||
}
|
||||
#endif /* USING_TRANSACTIONS */
|
||||
DBUG_RETURN(error);
|
||||
|
@ -738,8 +743,7 @@ int ha_recover(HASH *commit_list)
|
|||
DBUG_ASSERT(total_ha_2pc);
|
||||
DBUG_ASSERT(commit_list || tc_heuristic_recover);
|
||||
|
||||
for (len=commit_list ? commit_list->records : MAX_XID_LIST_SIZE ;
|
||||
list==0 && len > MIN_XID_LIST_SIZE; len/=2)
|
||||
for (len= MAX_XID_LIST_SIZE ; list==0 && len > MIN_XID_LIST_SIZE; len/=2)
|
||||
{
|
||||
list=(XID *)my_malloc(len*sizeof(XID), MYF(0));
|
||||
}
|
||||
|
|
|
@ -253,7 +253,11 @@ typedef struct xid_t XID;
|
|||
|
||||
/* for recover() handlerton call */
|
||||
#define MIN_XID_LIST_SIZE 128
|
||||
#ifdef SAFEMALLOC
|
||||
#define MAX_XID_LIST_SIZE 256
|
||||
#else
|
||||
#define MAX_XID_LIST_SIZE (1024*128)
|
||||
#endif
|
||||
|
||||
/*
|
||||
handlerton is a singleton structure - one instance per storage engine -
|
||||
|
|
11
sql/log.cc
11
sql/log.cc
|
@ -2903,7 +2903,12 @@ int TC_LOG_BINLOG::open(const char *opt_name)
|
|||
pthread_cond_init (&COND_prep_xids, 0);
|
||||
|
||||
if (using_heuristic_recover())
|
||||
{
|
||||
/* generate a new binlog to mask a corrupted one */
|
||||
open(opt_name, LOG_BIN, 0, WRITE_CACHE, 0, max_binlog_size, 0);
|
||||
cleanup();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((error= find_log_pos(&log_info, NullS, 1)))
|
||||
{
|
||||
|
@ -2946,9 +2951,9 @@ int TC_LOG_BINLOG::open(const char *opt_name)
|
|||
if ((ev= Log_event::read_log_event(&log, 0, &fdle)) &&
|
||||
ev->get_type_code() == FORMAT_DESCRIPTION_EVENT &&
|
||||
ev->flags & LOG_EVENT_BINLOG_IN_USE_F)
|
||||
error= recover(&log, (Format_description_log_event *)ev);
|
||||
else
|
||||
error=0;
|
||||
error= recover(&log, (Format_description_log_event *)ev);
|
||||
else
|
||||
error=0;
|
||||
|
||||
delete ev;
|
||||
end_io_cache(&log);
|
||||
|
|
|
@ -2738,7 +2738,7 @@ server.");
|
|||
(TC_LOG *)&tc_log_mmap :
|
||||
(TC_LOG *)&tc_log_dummy;
|
||||
|
||||
if (tc_log->open(opt_tc_log_file))
|
||||
if (tc_log->open(opt_bin_logname))
|
||||
{
|
||||
sql_print_error("Can't init tc log");
|
||||
unireg_abort(1);
|
||||
|
|
Loading…
Reference in a new issue