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
@ -804,8 +804,13 @@ my_bool my_gethwaddr(uchar *to);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f)
|
#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_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
|
#else
|
||||||
/* not a complete set of mmap() flags, but only those that nesessary */
|
/* not a complete set of mmap() flags, but only those that nesessary */
|
||||||
|
@ -175,7 +175,7 @@ while ($1)
|
|||||||
commit;
|
commit;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
let $VERSION=`select version()`;
|
let $VERSION=`select version()`;
|
||||||
--replace_result $VERSION VERSION
|
--replace_result $VERSION VERSION "xid=373" "xid=146"
|
||||||
show binlog events in 'master-bin.000001';
|
show binlog events in 'master-bin.000001';
|
||||||
--replace_result $VERSION VERSION
|
--replace_result $VERSION VERSION
|
||||||
show binlog events in 'master-bin.000002';
|
show binlog events in 'master-bin.000002';
|
||||||
|
@ -1346,7 +1346,7 @@ innobase_commit_low(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef DISABLE_HAVE_REPLICATION
|
||||||
if (current_thd->slave_thread) {
|
if (current_thd->slave_thread) {
|
||||||
/* Update the replication position info inside InnoDB */
|
/* Update the replication position info inside InnoDB */
|
||||||
|
|
||||||
|
@ -553,6 +553,7 @@ int ha_commit_trans(THD *thd, bool all)
|
|||||||
#ifdef USING_TRANSACTIONS
|
#ifdef USING_TRANSACTIONS
|
||||||
if (trans->nht)
|
if (trans->nht)
|
||||||
{
|
{
|
||||||
|
DBUG_EXECUTE_IF("crash_commit_before", abort(););
|
||||||
if (!trans->no_2pc && trans->nht > 1)
|
if (!trans->no_2pc && trans->nht > 1)
|
||||||
{
|
{
|
||||||
for (; *ht && !error; ht++)
|
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);
|
statistic_increment(thd->status_var.ha_prepare_count,&LOCK_status);
|
||||||
}
|
}
|
||||||
|
DBUG_EXECUTE_IF("crash_commit_after_prepare", abort(););
|
||||||
if (error || (is_real_trans && xid &&
|
if (error || (is_real_trans && xid &&
|
||||||
(error= !(cookie= tc_log->log(thd, xid)))))
|
(error= !(cookie= tc_log->log(thd, xid)))))
|
||||||
{
|
{
|
||||||
ha_rollback_trans(thd, all);
|
ha_rollback_trans(thd, all);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
DBUG_EXECUTE_IF("crash_commit_after_log", abort(););
|
||||||
}
|
}
|
||||||
error=ha_commit_one_phase(thd, all) ? cookie ? 2 : 1 : 0;
|
error=ha_commit_one_phase(thd, all) ? cookie ? 2 : 1 : 0;
|
||||||
|
DBUG_EXECUTE_IF("crash_commit_before_unlog", abort(););
|
||||||
if (cookie)
|
if (cookie)
|
||||||
tc_log->unlog(cookie, xid);
|
tc_log->unlog(cookie, xid);
|
||||||
|
DBUG_EXECUTE_IF("crash_commit_after", abort(););
|
||||||
}
|
}
|
||||||
#endif /* USING_TRANSACTIONS */
|
#endif /* USING_TRANSACTIONS */
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
@ -738,8 +743,7 @@ int ha_recover(HASH *commit_list)
|
|||||||
DBUG_ASSERT(total_ha_2pc);
|
DBUG_ASSERT(total_ha_2pc);
|
||||||
DBUG_ASSERT(commit_list || tc_heuristic_recover);
|
DBUG_ASSERT(commit_list || tc_heuristic_recover);
|
||||||
|
|
||||||
for (len=commit_list ? commit_list->records : MAX_XID_LIST_SIZE ;
|
for (len= MAX_XID_LIST_SIZE ; list==0 && len > MIN_XID_LIST_SIZE; len/=2)
|
||||||
list==0 && len > MIN_XID_LIST_SIZE; len/=2)
|
|
||||||
{
|
{
|
||||||
list=(XID *)my_malloc(len*sizeof(XID), MYF(0));
|
list=(XID *)my_malloc(len*sizeof(XID), MYF(0));
|
||||||
}
|
}
|
||||||
|
@ -253,7 +253,11 @@ typedef struct xid_t XID;
|
|||||||
|
|
||||||
/* for recover() handlerton call */
|
/* for recover() handlerton call */
|
||||||
#define MIN_XID_LIST_SIZE 128
|
#define MIN_XID_LIST_SIZE 128
|
||||||
|
#ifdef SAFEMALLOC
|
||||||
|
#define MAX_XID_LIST_SIZE 256
|
||||||
|
#else
|
||||||
#define MAX_XID_LIST_SIZE (1024*128)
|
#define MAX_XID_LIST_SIZE (1024*128)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
handlerton is a singleton structure - one instance per storage engine -
|
handlerton is a singleton structure - one instance per storage engine -
|
||||||
|
@ -2903,7 +2903,12 @@ int TC_LOG_BINLOG::open(const char *opt_name)
|
|||||||
pthread_cond_init (&COND_prep_xids, 0);
|
pthread_cond_init (&COND_prep_xids, 0);
|
||||||
|
|
||||||
if (using_heuristic_recover())
|
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;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
if ((error= find_log_pos(&log_info, NullS, 1)))
|
if ((error= find_log_pos(&log_info, NullS, 1)))
|
||||||
{
|
{
|
||||||
|
@ -2738,7 +2738,7 @@ server.");
|
|||||||
(TC_LOG *)&tc_log_mmap :
|
(TC_LOG *)&tc_log_mmap :
|
||||||
(TC_LOG *)&tc_log_dummy;
|
(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");
|
sql_print_error("Can't init tc log");
|
||||||
unireg_abort(1);
|
unireg_abort(1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user