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: | |
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
[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.