Below is the list of changes that have just been committed into a local
5.1 repository of tomas. When tomas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.1831 05/05/09 15:35:37 tomas@stripped +7 -0
handle with and without ndbcluster enabled
added option to be able to run statement binlogging although ndbcluster is on
bugfix error in setting of gci
check for "only mysql" tables at startup
print error if statement based loggon is used with ndb
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp
1.4 05/05/09 15:35:30 tomas@stripped +2 -0
bugfix error in setting of gci
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
1.71 05/05/09 15:35:30 tomas@stripped +3 -0
added extra check for correct gci setting
sql/mysqld.cc
1.462 05/05/09 15:35:30 tomas@stripped +7 -4
added option to be able to run statement binlogging although ndbcluster is on
sql/ha_ndbcluster.cc
1.237 05/05/09 15:35:30 tomas@stripped +10 -3
check for "only mysql" tables at startup
print error if statement based loggon is used with ndb
mysql-test/t/information_schema.test
1.34 05/05/09 15:35:30 tomas@stripped +4 -2
handle with and without ndbcluster enabled
mysql-test/t/disabled.def
1.12 05/05/09 15:35:30 tomas@stripped +2 -1
test disabled
mysql-test/r/information_schema.result
1.44 05/05/09 15:35:29 tomas@stripped +1 -1
handle with and without ndbcluster enabled
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: tomas
# Host: poseidon.ndb.mysql.com
# Root: /home/tomas/wl2325
--- 1.461/sql/mysqld.cc 2005-05-06 13:45:53 +02:00
+++ 1.462/sql/mysqld.cc 2005-05-09 15:35:30 +02:00
@@ -6782,11 +6782,14 @@
if (opt_bin_log)
{
if (opt_binlog_format_id == BF_NONE)
- opt_binlog_format_id= BF_STMT;
- if (have_ndbcluster == SHOW_OPTION_YES)
{
- rpl_filter->add_ignore_table("cluster_replication.binlog_index");
- opt_binlog_format_id= BF_ROW;
+ if (have_ndbcluster == SHOW_OPTION_YES)
+ {
+ rpl_filter->add_ignore_table("cluster_replication.binlog_index");
+ opt_binlog_format_id= BF_ROW;
+ }
+ else
+ opt_binlog_format_id= BF_STMT;
}
if (opt_binlog_format_id == BF_ROW)
opt_binlog_row_level= TRUE;
--- 1.43/mysql-test/r/information_schema.result 2005-04-14 14:19:30 +02:00
+++ 1.44/mysql-test/r/information_schema.result 2005-05-09 15:35:29 +02:00
@@ -30,7 +30,7 @@
create table t3(a int, KEY a_data (a));
create table mysqltest.t4(a int);
create view v1 (c) as select table_name from information_schema.TABLES;
-select * from v1;
+select * from v1 where c not in ('apply_status');
c
SCHEMATA
TABLES
--- 1.33/mysql-test/t/information_schema.test 2005-04-14 08:03:09 +02:00
+++ 1.34/mysql-test/t/information_schema.test 2005-05-09 15:35:30 +02:00
@@ -23,7 +23,8 @@
create table t3(a int, KEY a_data (a));
create table mysqltest.t4(a int);
create view v1 (c) as select table_name from information_schema.TABLES;
-select * from v1;
+# the presence of 'apply_status' will depend on if cluster is running or not so skip
+select * from v1 where c not in ('apply_status');
select c,table_name from v1
inner join information_schema.TABLES v2 on (v1.c=v2.table_name)
@@ -417,7 +418,8 @@
--disable_result_log
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES;
--enable_result_log
-SELECT count(*) FROM INFORMATION_SCHEMA.TABLES;
+# the presence of 'apply_status' will depend on if cluster is running or not, so skip
+SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE table_name NOT IN ('apply_status');
let $tab_count= 65;
while ($tab_count)
{
--- 1.11/mysql-test/t/disabled.def 2005-05-06 18:46:57 +02:00
+++ 1.12/mysql-test/t/disabled.def 2005-05-09 15:35:30 +02:00
@@ -16,7 +16,8 @@
ndb_cache_multi : replication conflict
ndb_cache_multi2 : replication conflict
ndb_insert : Tomas fix sql REPLACE replication conflict
-ndb_multi : replication conflict
rpl_change_master : result mismatch, Mats, Lars check
rpl_deadlock : result mismatch, Mats, Lars check
ps_1general : row-based currently allow max 128 cols /Mats
+myisam : row-based currently allow max 128 cols /Mats
+mysql_client_test : row-based currently allow max 128 cols /Mats
--- 1.70/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2005-05-02 17:06:36 +02:00
+++ 1.71/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2005-05-09 15:35:30 +02:00
@@ -3260,6 +3260,7 @@
locTcConnectptr.p->tcTimer = cLqhTimeOutCount;
locTcConnectptr.p->tableref = RNIL;
locTcConnectptr.p->savePointId = 0;
+ locTcConnectptr.p->gci = 0;
cfirstfreeTcConrec = nextTc;
tcConnectptr = locTcConnectptr;
locTcConnectptr.p->connectState = TcConnectionrec::CONNECTED;
@@ -5408,6 +5409,7 @@
TcConnectionrec * const regTcPtr = tcConnectptr.p;
TcConnectionrec::LogWriteState logWriteState = regTcPtr->logWriteState;
TcConnectionrec::TransactionState transState = regTcPtr->transactionState;
+ ndbrequire(regTcPtr->gci == gci || regTcPtr->gci == 0);
regTcPtr->gci = gci;
if (transState == TcConnectionrec::PREPARED) {
if (logWriteState == TcConnectionrec::WRITTEN) {
@@ -5477,6 +5479,7 @@
Uint32 newestGci = cnewestGci;
TcConnectionrec::LogWriteState logWriteState = regTcPtr->logWriteState;
TcConnectionrec::TransactionState transState = regTcPtr->transactionState;
+ ndbrequire(regTcPtr->gci == gci || regTcPtr->gci == 0);
regTcPtr->gci = gci;
if (gci > newestGci) {
jam();
--- 1.3/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp 2005-04-08 02:44:04 +02:00
+++ 1.4/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp 2005-05-09 15:35:30 +02:00
@@ -443,6 +443,7 @@
saveAttributeMask.bitOR(befOpPtr.p->changeMask);
befOpPtr.p->changeMask.clear();
befOpPtr.p->changeMask.bitOR(attributeMask);
+ befOpPtr.p->gci = regOperPtr->gci;
operPtr.p = befOpPtr.p;
checkDetachedTriggers(signal,
@@ -480,6 +481,7 @@
befOpPtr.p->pageOffset = befOpPtr.p->pageOffsetC;
befOpPtr.p->fragPageId = befOpPtr.p->fragPageIdC;
befOpPtr.p->pageIndex = befOpPtr.p->pageIndexC;
+ befOpPtr.p->gci = regOperPtr->gci;
operPtr.p = befOpPtr.p;
checkDetachedTriggers(signal,
--- 1.236/sql/ha_ndbcluster.cc 2005-05-09 05:10:41 +02:00
+++ 1.237/sql/ha_ndbcluster.cc 2005-05-09 15:35:30 +02:00
@@ -5041,6 +5041,9 @@
continue;
}
+ if (ndbtab->getFrmLength() == 0)
+ continue;
+
strxnmov(key, FN_LEN, mysql_data_home,"/",t.database,"/",t.name, NullS);
const void *data, *pack_data;
uint length, pack_length;
@@ -5327,10 +5330,14 @@
pthread_mutex_init(&ndbcluster_mutex,MY_MUTEX_INIT_FAST);
#ifdef HAVE_REPLICATION
- if (opt_bin_log && ndbcluster_binlog_start())
+ if (opt_binlog_row_level && ndbcluster_binlog_start())
{
goto ndbcluster_init_error;
}
+ else if (opt_bin_log)
+ {
+ sql_print_error("NDB: only row based binary logging is supported");
+ }
#endif /* HAVE_REPLICATION */
pthread_mutex_init(&LOCK_ndb_util_thread, MY_MUTEX_INIT_FAST);
@@ -9082,7 +9089,7 @@
thd->db=db;
}
for (;!((abort_loop || do_ndbcluster_binlog_close_connection) &&
- ndb_latest_received_binlog_epoch >= g_latest_trans_gci);)
+ ndb_latest_handled_binlog_epoch >= g_latest_trans_gci);)
{
/**
* now we don't want any events before next gci is complete
@@ -9093,7 +9100,7 @@
int res= ndb->pollEvents(1000); // wait for event or 1000 ms
if ( (abort_loop || do_ndbcluster_binlog_close_connection) &&
- ndb_latest_received_binlog_epoch >= g_latest_trans_gci )
+ ndb_latest_handled_binlog_epoch >= g_latest_trans_gci )
{
break; /* Shutting down server */
}
| Thread |
|---|
| • bk commit into 5.1 tree (tomas:1.1831) | tomas | 9 May |