summaryrefslogtreecommitdiff
path: root/sql/sql_repl.cc
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-01-25 15:07:51 +0200
committerunknown <monty@mashka.mysql.fi>2003-01-25 15:07:51 +0200
commit6337190c2bd2d1d47948f4d1b467970db7d5b2f6 (patch)
treeec47c385448c97b6f07f4d2851b745236f7e98dd /sql/sql_repl.cc
parentf0a1a571b330a9ca87f81992cdbf8272bcb08934 (diff)
downloadmariadb-git-6337190c2bd2d1d47948f4d1b467970db7d5b2f6.tar.gz
Added timeout for wait_for_master_pos
Fixed comparision of log-binary name to handle comparison when file name extension wraps from .999 to .1000 Don't replicate CREATE/DROP DATABASE if wild_xxx_table=database.% is used. mysql-test/r/rpl000009.result: Fixed replication test after fixing replication of DROP/CREATE DATABASE mysql-test/t/rpl000009.test: Fixed replication test after fixing replication of DROP/CREATE DATABASE sql/item_create.cc: Added timeout for wait_for_master_pos sql/item_create.h: Added timeout for wait_for_master_pos sql/item_func.cc: Added timeout for wait_for_master_pos sql/item_func.h: Added timeout for wait_for_master_pos sql/lex.h: Added timeout for wait_for_master_pos sql/slave.h: Added timeout for wait_for_master_pos Don't replicate CREATE/DROP DATABASE if wild_xxx_table=database.% is used. sql/sql_parse.cc: Don't replicate CREATE/DROP DATABASE if wild_xxx_table=database.% is used. sql/sql_repl.cc: Fixed comparision of log-binary name to handle comparison when file name extension wraps from .999 to .1000
Diffstat (limited to 'sql/sql_repl.cc')
-rw-r--r--sql/sql_repl.cc21
1 files changed, 10 insertions, 11 deletions
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index 02440f511e1..6a14a7c5d16 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -925,18 +925,17 @@ int cmp_master_pos(const char* log_file_name1, ulonglong log_pos1,
const char* log_file_name2, ulonglong log_pos2)
{
int res;
- /*
- TODO: Change compare function to work with file name of type
- '.999 and .1000'
- */
+ uint log_file_name1_len= strlen(log_file_name1);
+ uint log_file_name2_len= strlen(log_file_name2);
- if ((res = strcmp(log_file_name1, log_file_name2)))
- return res;
- if (log_pos1 > log_pos2)
- return 1;
- else if (log_pos1 == log_pos2)
- return 0;
- return -1;
+ // We assume that both log names match up to '.'
+ if (log_file_name1_len == log_file_name2_len)
+ {
+ if ((res= strcmp(log_file_name1, log_file_name2)))
+ return res;
+ return (log_pos1 < log_pos2) ? -1 : (log_pos1 == log_pos2) ? 0 : 1;
+ }
+ return ((log_file_name1_len < log_file_name2_len) ? -1 : 1);
}