#At file:///home/tomas/mysql_src/mysql-5.1-telco-6.4/
3225 Tomas Ulin 2009-01-23 [merge]
merge
modified:
mysql-test/suite/ndb/r/ndb_basic.result
mysql-test/suite/ndb/r/ndb_dbug_lock.result
mysql-test/suite/ndb/t/ndb_dbug_lock.test
sql/ha_ndbcluster_binlog.cc
sql/mysqld.cc
sql/set_var.cc
storage/ndb/src/ndbapi/TransporterFacade.hpp
=== modified file 'mysql-test/suite/ndb/r/ndb_basic.result'
--- a/mysql-test/suite/ndb/r/ndb_basic.result 2008-11-13 16:32:23 +0000
+++ b/mysql-test/suite/ndb/r/ndb_basic.result 2009-01-23 10:10:40 +0000
@@ -30,6 +30,7 @@ ndb_force_send #
ndb_index_stat_cache_entries #
ndb_index_stat_enable #
ndb_index_stat_update_freq #
+ndb_log_binlog_index #
ndb_log_update_as_write #
ndb_log_updated_only #
ndb_optimization_delay #
=== modified file 'mysql-test/suite/ndb/r/ndb_dbug_lock.result'
--- a/mysql-test/suite/ndb/r/ndb_dbug_lock.result 2008-10-29 13:09:15 +0000
+++ b/mysql-test/suite/ndb/r/ndb_dbug_lock.result 2009-01-23 09:40:08 +0000
@@ -40,5 +40,5 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`a`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
# Cleanup
-set session debug="-d,sleep_after_global_schema_lock";
+set session debug="-d,";
drop table t1;
=== modified file 'mysql-test/suite/ndb/t/ndb_dbug_lock.test'
--- a/mysql-test/suite/ndb/t/ndb_dbug_lock.test 2008-11-07 10:33:31 +0000
+++ b/mysql-test/suite/ndb/t/ndb_dbug_lock.test 2009-01-23 09:55:57 +0000
@@ -69,5 +69,5 @@ show create table t1;
--echo # Cleanup
--connection default
-set session debug="-d,sleep_after_global_schema_lock";
+set session debug="-d,";
drop table t1;
=== modified file 'sql/ha_ndbcluster_binlog.cc'
--- a/sql/ha_ndbcluster_binlog.cc 2009-01-12 13:17:31 +0000
+++ b/sql/ha_ndbcluster_binlog.cc 2009-01-23 10:10:40 +0000
@@ -35,6 +35,7 @@
#endif
extern my_bool opt_ndb_log_orig;
+extern my_bool opt_ndb_log_bin;
extern my_bool opt_ndb_log_empty_epochs;
extern my_bool opt_ndb_log_update_as_write;
@@ -42,6 +43,8 @@ extern my_bool opt_ndb_log_updated_only;
extern my_bool ndbcluster_silent;
+extern my_bool ndb_log_binlog_index;
+
/*
defines for cluster replication table names
*/
@@ -3087,6 +3090,8 @@ ndb_add_ndb_binlog_index(THD *thd, ndb_b
*/
do
{
+ ulonglong epoch, orig_epoch;
+ uint orig_server_id;
empty_record(ndb_binlog_index);
ndb_binlog_index->field[0]->store(first->master_log_pos, true);
@@ -3100,8 +3105,8 @@ ndb_add_ndb_binlog_index(THD *thd, ndb_b
ndb_binlog_index->field[4]->store(row->n_updates);
ndb_binlog_index->field[5]->store(row->n_deletes);
ndb_binlog_index->field[6]->store(row->n_schemaops);
- ndb_binlog_index->field[7]->store(row->orig_server_id);
- ndb_binlog_index->field[8]->store(row->orig_epoch, true);
+ ndb_binlog_index->field[7]->store(orig_server_id= row->orig_server_id);
+ ndb_binlog_index->field[8]->store(orig_epoch= row->orig_epoch, true);
ndb_binlog_index->field[9]->store(first->gci);
row= row->next;
}
@@ -3122,7 +3127,17 @@ ndb_add_ndb_binlog_index(THD *thd, ndb_b
if ((error= ndb_binlog_index->file->ha_write_row(ndb_binlog_index->record[0])))
{
- sql_print_error("NDB Binlog: Writing row to ndb_binlog_index: %d", error);
+ char tmp[128];
+ if (ndb_binlog_index->s->fields > 7)
+ my_snprintf(tmp, sizeof(tmp), "%u/%u,%u,%u/%u",
+ uint(epoch >> 32), uint(epoch),
+ orig_server_id,
+ uint(orig_epoch >> 32), uint(orig_epoch));
+
+ else
+ my_snprintf(tmp, sizeof(tmp), "%u/%u", uint(epoch >> 32), uint(epoch));
+ sql_print_error("NDB Binlog: Writing row (%s) to ndb_binlog_index: %d",
+ tmp, error);
error= -1;
goto add_ndb_binlog_index_err;
}
@@ -5383,7 +5398,6 @@ pthread_handler_t ndb_binlog_thread_func
Ndb *i_ndb= 0;
Ndb *s_ndb= 0;
Thd_ndb *thd_ndb=0;
- int ndb_update_ndb_binlog_index= 1;
injector *inj= injector::instance();
uint incident_id= 0;
Binlog_thread_state do_ndbcluster_binlog_close_connection;
@@ -5484,7 +5498,7 @@ restart_cluster_failure:
injector_ndb= i_ndb;
schema_ndb= s_ndb;
- if (opt_bin_log)
+ if (opt_bin_log && opt_ndb_log_bin)
{
ndb_binlog_running= TRUE;
}
@@ -6103,7 +6117,7 @@ restart_cluster_failure:
rows->master_log_pos= start.file_pos();
DBUG_PRINT("info", ("COMMIT gci: %lu", (ulong) gci));
- if (ndb_update_ndb_binlog_index)
+ if (ndb_log_binlog_index)
{
ndb_add_ndb_binlog_index(thd, rows);
}
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2009-01-19 14:40:33 +0000
+++ b/sql/mysqld.cc 2009-01-23 10:10:40 +0000
@@ -420,9 +420,11 @@ ulong opt_ndb_cluster_connection_pool;
ulong ndb_extra_logging;
ulong ndb_report_thresh_binlog_epoch_slip= 0;
ulong ndb_report_thresh_binlog_mem_usage= 0;
+my_bool ndb_log_binlog_index= FALSE;
my_bool opt_ndb_log_update_as_write= FALSE;
my_bool opt_ndb_log_updated_only= FALSE;
my_bool opt_ndb_log_orig= FALSE;
+my_bool opt_ndb_log_bin= FALSE;
my_bool opt_ndb_log_empty_epochs= FALSE;
extern "C" char opt_ndb_constrbuf[1024];
@@ -5506,7 +5508,7 @@ enum options_mysqld
OPT_NDB_REPORT_THRESH_BINLOG_MEM_USAGE,
OPT_NDB_USE_COPYING_ALTER_TABLE,
OPT_NDB_LOG_UPDATE_AS_WRITE, OPT_NDB_LOG_UPDATED_ONLY,
- OPT_NDB_LOG_ORIG,
+ OPT_NDB_LOG_ORIG, OPT_NDB_LOG_BIN, OPT_NDB_LOG_BINLOG_INDEX,
OPT_NDB_LOG_EMPTY_EPOCHS,
OPT_SKIP_SAFEMALLOC,
OPT_TEMP_POOL, OPT_TX_ISOLATION, OPT_COMPLETION_TYPE,
@@ -6104,6 +6106,16 @@ master-ssl",
(uchar**) &opt_ndb_log_orig,
(uchar**) &opt_ndb_log_orig,
0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"ndb-log-bin", OPT_NDB_LOG_BIN,
+ "Log ndb tables in the binary log. Option only has meaning if "
+ "the binary log has been turned on for the server.",
+ (uchar**) &opt_ndb_log_bin, (uchar**) &opt_ndb_log_bin,
+ 0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
+ {"ndb-log-binlog-index", OPT_NDB_LOG_BINLOG_INDEX,
+ "Insert mapping between epochs and binlog positions into the "
+ "ndb_binlog_index table.",
+ (uchar**) &ndb_log_binlog_index, (uchar**) &ndb_log_binlog_index,
+ 0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
{"ndb-log-empty-epochs", OPT_NDB_LOG_EMPTY_EPOCHS,
"",
(uchar**) &opt_ndb_log_empty_epochs,
=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc 2009-01-19 14:40:33 +0000
+++ b/sql/set_var.cc 2009-01-23 10:10:40 +0000
@@ -69,6 +69,7 @@ extern "C" char opt_ndb_constrbuf[];
extern ulong ndb_extra_logging;
extern ulong ndb_report_thresh_binlog_epoch_slip;
extern ulong ndb_report_thresh_binlog_mem_usage;
+extern my_bool ndb_log_binlog_index;
extern my_bool opt_ndb_log_update_as_write;
extern my_bool opt_ndb_log_updated_only;
#endif
@@ -665,6 +666,8 @@ sys_ndb_report_thresh_binlog_epoch_slip(
static sys_var_long_ptr
sys_ndb_report_thresh_binlog_mem_usage(&vars, "ndb_report_thresh_binlog_mem_usage",
&ndb_report_thresh_binlog_mem_usage);
+static sys_var_bool_ptr
+sys_ndb_log_binlog_index(&vars, "ndb_log_binlog_index", &ndb_log_binlog_index);
static sys_var_bool_ptr
sys_ndb_log_update_as_write(&vars, "ndb_log_update_as_write", &opt_ndb_log_update_as_write);
static sys_var_bool_ptr
=== modified file 'storage/ndb/src/ndbapi/TransporterFacade.hpp'
--- a/storage/ndb/src/ndbapi/TransporterFacade.hpp 2009-01-09 09:34:36 +0000
+++ b/storage/ndb/src/ndbapi/TransporterFacade.hpp 2009-01-23 10:10:40 +0000
@@ -359,7 +359,9 @@ TransporterFacade::unlock_mutex()
inline
unsigned Ndb_cluster_connection_impl::get_connect_count() const
{
- return m_transporter_facade->theClusterMgr->m_connect_count;
+ if (m_transporter_facade->theClusterMgr)
+ return m_transporter_facade->theClusterMgr->m_connect_count;
+ return 0;
}
inline
| Thread |
|---|
| • bzr commit into mysql-5.1-bugteam branch (tomas.ulin:3225) | Tomas Ulin | 23 Jan |