5401 Bjorn Munch 2013-01-21 [merge]
Add --unit-tests to an mtr run in default.release, so it will be run in gcov
modified:
mysql-test/collections/default.release.in
5400 Sujatha Sivakumar 2013-01-21
Bug#16061982:REPLICATION BETWEEN A LINUX MASTER AND WINDOWS
SLAVE, WITH MIXED CASE BREAKS
Problem:
=======
Replication between a Linux master and Windows slave, with
mixed case database/table names, fails after a replicated
table is opened locally on the slave. "FLUSH TABLES" command
needs to be issued on the salve to see the latest updates
that are applied on slave. The master and the slave should
have the following case settings.
Linux master:
lower_case_table_names=0
Windows slave:
lower_case_table_names=2
Analysis:
========
When "lower_case_table_names" is set to 1 or 2 in a general
scenario without replication the database names and the
table names are converted to lower case.
The following two function check for "lower_case_table_names>0"
and convert the db and table name to lower case.
"check_and_convert_db_name" and "st_select_lex::add_table_to_list"
But when replication is enabled dabase names and table names
are reassigned once again as per the events that are received
from the binlog without checking for "lower_case_table_names=2".
For example if the database name is "TestME" when the table
is opened locally on windows a new table cache entry is
created "testme.testnumberone" and when opened through replication
another table cache entry "TestME.testnumberone" is created.
Because of this problem users will not be able see the latest
updates. "Flush Tables" flushes both the cache entries hence
they are able to see the updates.
Fix:
===
Existing code checks only for "if (lower_case_table_names == 1)".
This has been replaced with "if (lower_case_table_names)".
modified:
sql/log_event.cc
=== modified file 'mysql-test/collections/default.release.in'
--- a/mysql-test/collections/default.release.in 2012-11-21 13:23:34 +0000
+++ b/mysql-test/collections/default.release.in 2013-01-21 10:00:18 +0000
@@ -4,7 +4,7 @@
# include default.daily
# include default.weekly
-perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=debug --vardir=var-debug --skip-rpl --report-features --debug-server
+perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=debug --vardir=var-debug --skip-rpl --report-features --debug-server --unit-tests
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --report-features
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=ps --vardir=var-ps --ps-protocol
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs1+ps --vardir=var-funcs_1_ps --suite=funcs_1 --ps-protocol
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (bjorn.munch:5400 to 5401) | Bjorn Munch | 21 Feb 2013 |