summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2012-05-31 22:39:11 +0300
committerMichael Widenius <monty@askmonty.org>2012-05-31 22:39:11 +0300
commit83c02f32375bcb38ba96c0e757f5a302ec32d76a (patch)
treece769238f31169ed6f7c4e0397785efecad5bd59 /sql/slave.cc
parent59b4ee145452f57be86f1a983186d18e712138ef (diff)
downloadmariadb-git-83c02f32375bcb38ba96c0e757f5a302ec32d76a.tar.gz
Increased the version number to 10.0
- Fixed code that was not ready for a major version number > 9 - Fixed test cases that assumed max major version number could be 9 Updated version number for depricated options (will be removed in a later commit) VERSION: Version number 10.0.0 client/mysqlbinlog.cc: Added support for major version numbers > 9 cmake/mysql_version.cmake: Added support for version numbers that is 0 mysql-test/r/comments.result: Modified test to handle version number 100000 mysql-test/r/func_system.result: Modified test to handle version number 100000 mysql-test/r/log_state.result: Updated depricated error message mysql-test/r/sp.result: Modified test to handle version number 100000 mysql-test/r/subselect4.result: Updated depricated error message mysql-test/r/variables.result: Updated depricated error message mysql-test/suite/rpl/r/rpl_conditional_comments.result: Modified test to handle version number 100000 mysql-test/suite/rpl/r/rpl_loaddatalocal.result: Modified test to handle version number 100000 mysql-test/suite/rpl/t/rpl_conditional_comments.test: Modified test to handle version number 100000 mysql-test/suite/rpl/t/rpl_loaddatalocal.test: Modified test to handle version number 100000 mysql-test/suite/sys_vars/r/debug_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/engine_condition_pushdown_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/log_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/log_slow_queries_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/multi_range_count_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/rpl_recovery_rank_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/sql_big_selects_func.result: Updated depricated error message mysql-test/suite/sys_vars/r/sql_max_join_size_basic.result: Updated depricated error message mysql-test/suite/sys_vars/r/sql_max_join_size_func.result: Updated depricated error message mysql-test/t/comments.test: Modified test to handle version number 100000 mysql-test/t/file_contents.test: Modified test to handle version number 100000 mysql-test/t/func_system.test: Modified test to handle version number 100000 mysql-test/t/parser_not_embedded.test: Modified test to handle version number 100000 mysql-test/t/sp.test: Modified test to handle version number 100000 sql/mysqld.cc: Updated version number for depricated options (will be removed in a later commit) sql/slave.cc: Modified test to handle version number 100000 Better error messages sql/sql_lex.cc: Modified test to handle version number 100000 in comment syntax sql/sys_vars.cc: Updated version number for depricated options (will be removed in a later commit)
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc36
1 files changed, 21 insertions, 15 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index 5292595d157..5f2a25d2c26 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1211,11 +1211,12 @@ bool is_network_error(uint errorno)
static int get_master_version_and_clock(MYSQL* mysql, Master_info* mi)
{
- char err_buff[MAX_SLAVE_ERRMSG];
+ char err_buff[MAX_SLAVE_ERRMSG], err_buff2[MAX_SLAVE_ERRMSG];
const char* errmsg= 0;
int err_code= 0;
MYSQL_RES *master_res= 0;
MYSQL_ROW master_row;
+ uint version= mysql_get_server_version(mysql) / 10000;
DBUG_ENTER("get_master_version_and_clock");
/*
@@ -1227,29 +1228,34 @@ static int get_master_version_and_clock(MYSQL* mysql, Master_info* mi)
if (!my_isdigit(&my_charset_bin,*mysql->server_version))
{
- errmsg = "Master reported unrecognized MySQL version";
+ errmsg= err_buff2;
+ snprintf(err_buff2, sizeof(err_buff2),
+ "Master reported unrecognized MySQL version: %s",
+ mysql->server_version);
err_code= ER_SLAVE_FATAL_ERROR;
- sprintf(err_buff, ER(err_code), errmsg);
+ sprintf(err_buff, ER(err_code), err_buff2);
}
else
{
/*
Note the following switch will bug when we have MySQL branch 30 ;)
*/
- switch (*mysql->server_version)
- {
- case '0':
- case '1':
- case '2':
- errmsg = "Master reported unrecognized MySQL version";
+ switch (version) {
+ case 0:
+ case 1:
+ case 2:
+ errmsg= err_buff2;
+ snprintf(err_buff2, sizeof(err_buff2),
+ "Master reported unrecognized MySQL version: %s",
+ mysql->server_version);
err_code= ER_SLAVE_FATAL_ERROR;
- sprintf(err_buff, ER(err_code), errmsg);
+ sprintf(err_buff, ER(err_code), err_buff2);
break;
- case '3':
+ case 3:
mi->rli.relay_log.description_event_for_queue= new
Format_description_log_event(1, mysql->server_version);
break;
- case '4':
+ case 4:
mi->rli.relay_log.description_event_for_queue= new
Format_description_log_event(3, mysql->server_version);
break;
@@ -1466,10 +1472,10 @@ maybe it is a *VERY OLD MASTER*.");
*/
/* redundant with rest of code but safer against later additions */
- if (*mysql->server_version == '3')
+ if (version == 3)
goto err;
- if (*mysql->server_version == '4')
+ if (version == 4)
{
master_res= NULL;
if (!mysql_real_query(mysql,
@@ -1532,7 +1538,7 @@ inconsistency if replicated data deals with collation.");
This check is only necessary for 4.x masters (and < 5.0.4 masters but
those were alpha).
*/
- if (*mysql->server_version == '4')
+ if (version == 4)
{
master_res= NULL;
if (!mysql_real_query(mysql, STRING_WITH_LEN("SELECT @@GLOBAL.TIME_ZONE")) &&