Bug #51639 Some replication filters are case sensitive, some are not!
Submitted: 2 Mar 2010 11:43 Modified: 29 Nov 2010 16:16
Reporter: Luis Soares Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.1.45, 5.0, 5.1, 5.5.99 OS:Any
Assigned to: Daogang Qu CPU Architecture:Any
Tags: replicate-do-db, rpl_filters

[2 Mar 2010 11:43] Luis Soares
Description:
There is an inconsistency in rpl filters. Some are case sensitive, while 
others are not.

At least, replicate-do-db and replicate-rewrite-db seem to be case 
sensitive while replicate-do-table is not. I suspect that there is 
an inconsistency in replicate-ignore-... rules as well.

Looking at rpl_filter.cc, I find that:

 Rpl_filter::db_ok(const char* db)
 Rpl_filter::get_rewrite_db(const char* db, size_t *new_len)
 - both use strcmp while comparing db names.

 Rpl_filter::tables_ok(const char* db, TABLE_LIST* tables)
 - uses either hash_search or find_wild

I have checked this in:
  - MySQL Version 5.1.45
  - revision-id: joro@sun.com-20100215085427-g2we19b3m2a3jvne

For details, check the how to repeat section.

How to repeat:
1. Add a test file: rpl_do_filter.test

-- source include/master-slave.inc

CREATE DATABASE DB; 
USE DB; 

CREATE TABLE T1 (a INT);
INSERT INTO T1 VALUES (1);

-- sync_slave_with_master

USE DB; 
SELECT * FROM T1; 
-- connection master
DROP DATABASE DB; 
-- sync_slave_with_master

-- exit

2. Add a opt file for slave: rpl_do_filter-slave.opt
--replicate-do-db=db --replicate-do-table=db.t1

NOTE: notice the lower case in "...do-db=db" and in "...do-table=db.t1"

3. perl mysql-test-run.pl rpl_do_filter

mysqltest: At line 11: query 'USE DB' failed: 1049: Unknown database 'DB'

NOTE: fails for all three formats: MIXED, STATEMENT and ROW

4. Now change  rpl_do_filter-slave.opt:
--replicate-do-db=DB --replicate-do-table=db.t1

NOTE: notice the upper case in "...do-db=DB" but not in "...do-table=db.t1"

5. perl mysql-test-run.pl rpl_do_filter
(...)
rpl.rpl_do_db 'row'                      [ pass ]     96

========================================
Rewrite rules are also affected!

1. Create file: rpl_rewrite_filter
-- source include/master-slave.inc

SET SQL_LOG_BIN=0;
CREATE DATABASE DB;
SET SQL_LOG_BIN=1;

-- connection slave
CREATE DATABASE db2;
-- connection master

USE DB;
CREATE TABLE T1 (a INT);
INSERT INTO T1 VALUES (1);

-- sync_slave_with_master
SHOW TABLES;
USE db2;
SHOW TABLES;
SELECT * FROM T1;
-- connection master
SET SQL_LOG_BIN=0;
DROP DATABASE DB;
SET SQL_LOG_BIN=1;

-- sync_slave_with_master
DROP DATABASE db2;

-- exit

2. Add a opt file for slave: rpl_rewrite_filter-slave.opt
--replicate-rewrite-db="DB->db2"

3. perl mysql-test-run.pl rpl_rewrite_filter
rpl.rpl_do_db 'row'                      [ pass ]     76
rpl.rpl_do_db 'stmt'                     [ pass ]     87
rpl.rpl_do_db 'mix'                      [ pass ]     78

4. Change opt file:
--replicate-rewrite-db="db->db2"

5. perl mysql-test-run.pl rpl_rewrite_filter
Error 'Unknown database 'DB'' on query. Default database: 'DB'. Query: 'CREATE TABLE T1 (a INT)'

NOTE: fails for all three formats: MIXED, STATEMENT and ROW

Conclusion: replicate-do-table is case insensitive while
            replicate-rewrite-db and replicate-do-db are not

Suggested fix:
Maybe all filters behave the same way, either case sensitive or 
case insensitive.
[3 Mar 2010 9:09] Sveta Smirnova
Thank you for the report.

Verified as described.
[27 Jul 2010 3:19] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/114390

3310 Dao-Gang.Qu@sun.com	2010-07-27
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in rpl filters. Some are case
      sensitive, while others are not. And they did not follow
      the set of lower_case_table_names.
      
      To fix the problem to make all the filters follow the set
      of lower_case_table_name to be case insensitive when seting
      lower_case_table_name=1. Otherwise they go to case sensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the set of lower_case_table_name to be case
        insensitive when seting lower_case_table_name=1
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the set of lower_case_table_name to be case insensitive when
        seting lower_case_table_name=1
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'ignore table' filter will follow
        the set of lower_case_table_name to be case sensitive when seting
        lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the set of lower_case_table_name to be case insensitive when
        seting lower_case_table_name=1
     @ sql/rpl_filter.cc
        Added code to make filters will follow the set of lower_case_table_name
        to be case insensitive when seting lower_case_table_name=1. Otherwise
        they go to case sensitive.
[27 Jul 2010 6:44] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/114398

3310 Dao-Gang.Qu@sun.com	2010-07-27
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in rpl filters. Some are case
      sensitive, while others are not. And they did not follow
      the set of lower_case_table_names.
      
      To fix the problem to make all the filters follow the set
      of lower_case_table_name to be case sensitive when seting
      lower_case_table_name=0. Otherwise they go to case insensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the set of lower_case_table_name to be case
        insensitive when seting lower_case_table_name=1
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the set of lower_case_table_name to be case insensitive when
        seting lower_case_table_name=1
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'ignore table' filter will follow
        the set of lower_case_table_name to be case sensitive when seting
        lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the set of lower_case_table_name to be case insensitive when
        seting lower_case_table_name=1
     @ sql/rpl_filter.cc
        Added code to make filters will follow the set of lower_case_table_name
        to be case sensitive when seting lower_case_table_name=0. Otherwise
        they go to case insensitive.
[27 Jul 2010 9:46] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/114417

3310 Dao-Gang.Qu@sun.com	2010-07-27
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in name comparison of rpl filters.
      Some are case sensitive, while others are not. And they did
      not follow the setting of lower_case_table_names.
      
      To fix the problem to make all the filters follow the setting
      of lower_case_table_name to be case sensitive when setting
      lower_case_table_name=0. Otherwise they will be case insensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the setting of lower_case_table_name to be case
        insensitive when setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the setting of lower_case_table_name to be case insensitive when
        setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'ignore table' filter will follow
        the setting of lower_case_table_name to be case sensitive when
        setting lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the setting of lower_case_table_name to be case insensitive
        when setting lower_case_table_name > 0
     @ sql/rpl_filter.cc
        Added code to make filters follow the setting of lower_case_table_name
        to be case sensitive when setting lower_case_table_name=0. Otherwise they
        will be case insensitive.
[28 Jul 2010 6:26] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/114502

3310 Dao-Gang.Qu@sun.com	2010-07-28
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in name comparison of rpl filters.
      Some are case sensitive, while others are not. And they did
      not follow the setting of lower_case_table_names.
      
      To fix the problem to make all the filters follow the setting
      of lower_case_table_name to be case sensitive when setting
      lower_case_table_name=0. Otherwise they will be case insensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the setting of lower_case_table_name to be case
        insensitive when setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the setting of lower_case_table_name to be case insensitive when
        setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'ignore table' filter will follow
        the setting of lower_case_table_name to be case sensitive when
        setting lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the setting of lower_case_table_name to be case insensitive
        when setting lower_case_table_name > 0
     @ sql/rpl_filter.cc
        Added code to make filters follow the setting of lower_case_table_name
        to be case sensitive when setting lower_case_table_name=0. Otherwise they
        will be case insensitive.
[30 Jul 2010 3:14] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/114691

3310 Dao-Gang.Qu@sun.com	2010-07-30
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in name comparison of rpl filters.
      Some are case sensitive, while others are not. And they did
      not follow the setting of lower_case_table_names.
      
      To fix the problem to make all the filters follow the setting
      of lower_case_table_name to be case sensitive when setting
      lower_case_table_name=0. Otherwise they will be case insensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the setting of lower_case_table_name to be case
        insensitive when setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the setting of lower_case_table_name to be case insensitive when
        setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'ignore table' filter will follow
        the setting of lower_case_table_name to be case sensitive when
        setting lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the setting of lower_case_table_name to be case insensitive
        when setting lower_case_table_name > 0
     @ sql/rpl_filter.cc
        Added code to make filters follow the setting of lower_case_table_name
        to be case sensitive when setting lower_case_table_name=0. Otherwise they
        will be case insensitive.
     @ sql/rpl_filter.h
        Added code to change the data struct from HASH to DYNAMIC_ARRAY
        for do_table and ignore_table in order to the setting of the
        'do_table' and 'ignore_table' filters is affected by the setting
        of lower_case_table_name regardless of the setting order.
[13 Aug 2010 7:38] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/115638

3310 Dao-Gang.Qu@sun.com	2010-08-13
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in name comparison of rpl filters.
      Some are case sensitive, while others are not. And they did
      not follow the setting of lower_case_table_names.
      
      To fix the problem to make all the filters follow the setting
      of lower_case_table_name to be case sensitive when setting
      lower_case_table_name=0. Otherwise they will be case insensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the setting of lower_case_table_name to be case
        insensitive when setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the setting of lower_case_table_name to be case insensitive when
        setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'ignore table' filter will follow
        the setting of lower_case_table_name to be case sensitive when
        setting lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the setting of lower_case_table_name to be case insensitive
        when setting lower_case_table_name > 0
     @ sql/mysqld.cc
        Added code to build do_table and ignore_table rules to hush
        after resetting of table_alias_charset, so that the filters
        is affected by the setting of lower_case_table_name
        regardless of the setting order.
     @ sql/rpl_filter.cc
        Added code to make filters follow the setting of lower_case_table_name
        to be case sensitive when setting lower_case_table_name=0. Otherwise they
        will be case insensitive. And build do_table and ignore table rules to
        Hash from DYNAMIC_ARRAY for quick search.
[19 Aug 2010 10:07] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/116221

3310 Dao-Gang.Qu@sun.com	2010-08-19
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in name comparison of rpl filters.
      Some are case sensitive, while others are not. And they did
      not follow the setting of lower_case_table_names.
      
      To fix the problem to make all the filters follow the setting
      of lower_case_table_name to be case sensitive when setting
      lower_case_table_name=0. Otherwise they will be case insensitive.
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the setting of lower_case_table_name to be case
        insensitive when setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the setting of lower_case_table_name to be case insensitive when
        setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'wild ignore table' and 'ignore table'
        filters will follow the setting of lower_case_table_name to be case
        sensitive when setting lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the setting of lower_case_table_name to be case insensitive
        when setting lower_case_table_name > 0
     @ sql/mysqld.cc
        Added code to build do_table and ignore_table rules to hush
        after resetting of table_alias_charset, so that the filters
        is affected by the setting of lower_case_table_name
        regardless of the setting order.
     @ sql/rpl_filter.cc
        Added code to make filters follow the setting of lower_case_table_name
        to be case sensitive when setting lower_case_table_name=0. Otherwise they
        will be case insensitive. And build do_table and ignore table rules to
        Hash from DYNAMIC_ARRAY for faster filter checking.
[15 Sep 2010 7:34] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/118275

3287 Dao-Gang.Qu@sun.com	2010-09-15
      Bug #51639  Some replication filters are case sensitive, some are not!
      
      There is an inconsistency in name comparison of rpl filters.
      Some are case sensitive, while others are not. And they did
      not follow the setting of lower_case_table_names.
      
      To fix the problem to make all the filters follow the setting
      of lower_case_table_name to be case sensitive when setting
      lower_case_table_name=0. Otherwise they will be case insensitive
      but accent sensitive.
     @ include/m_ctype.h
        Added code to extern my_charset_utf8_tolower_ci
     @ mysql-test/suite/rpl/r/rpl_do_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_ignore_table_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
        Test result for BUG# 51639
     @ mysql-test/suite/rpl/t/rpl_do_filter.test
        Added test file to verify that 'do db' and 'do table 'filters
        will follow the setting of lower_case_table_name to be case
        insensitive when setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_db_filter.test
        Added test file to verify that 'ignore db' filter will follow
        the setting of lower_case_table_name to be case insensitive when
        setting lower_case_table_name > 0
     @ mysql-test/suite/rpl/t/rpl_ignore_table_filter.test
        Added test file to verify that 'wild ignore table' and 'ignore table'
        filters will follow the setting of lower_case_table_name to be case
        sensitive when setting lower_case_table_name=0
     @ mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
        Added test file to verify that 'rewrite db' filter will follow
        the setting of lower_case_table_name to be case insensitive
        when setting lower_case_table_name > 0
     @ sql/mysqld.cc
        Added code to build do_table and ignore_table rules to hush
        after resetting of table_alias_charset, so that the filters
        is affected by the setting of lower_case_table_name
        regardless of the setting order.
     @ sql/rpl_filter.cc
        Added code to make filters follow the setting of lower_case_table_name
        to be case sensitive when setting lower_case_table_name=0. Otherwise
        they will be case insensitive but accent sensitive. And build do_table
        and ignore table rules to Hash from DYNAMIC_ARRAY for faster filter
        checking.
     @ strings/ctype-utf8.c
        Added code to define a new CHARSET_INFO to support
        case insensitive but accent sensitive.
[8 Oct 2010 6:33] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/120339
[8 Oct 2010 6:51] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/120340
[13 Oct 2010 7:13] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/120621
[13 Oct 2010 8:57] Alexander Barkov
The patch http://lists.mysql.com/commits/120621 is Ok to push.
[13 Oct 2010 23:19] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/120735
[13 Oct 2010 23:23] Daogang Qu
Pushed into mysql-next-mr-bugfixing
[13 Nov 2010 16:25] Bugs System
Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:vasil.dimov@oracle.com-20100629074804-359l9m9gniauxr94) (merge vers: 5.6.99-m4) (pib:21)
[13 Nov 2010 16:36] Bugs System
Pushed into mysql-next-mr (revid:alexander.nozdrin@oracle.com-20101113160336-atmtmfb3mzm4pz4i) (version source revid:jimmy.yang@oracle.com-20100804103744-vbpeghipkz6pyc9z) (pib:21)
[29 Nov 2010 16:16] Jon Stephens
Documented as follows in the 5.6.1 changelog:

       Replication filtering options such as --replicate-do-db, 
       --replicate-rewrite-db, and --replicate-do-table were not 
       consistent with one another in regard to case sensitivity. 
       Now all --replicate-* options follow the same rules for case 
       sensitivity applying to names of databases and tables elsewhere 
       in the MySQL server, including the effects of the 
       lower_case_table_names system variable. 

Also added notes to replication-rules and the description of lower_case_table_names in all versions of the Manual. See 
http://lists.mysql.com/commits/125381 for details.

Closed.