[MDEV-15919] lower_case_table_names does not behave as expected(nor consistently) on Replication Slave Created: 2018-04-18 Updated: 2023-06-16 Resolved: 2018-10-29 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Affects Version/s: | 10.2 |
| Fix Version/s: | 5.5.62, 10.0.37, 10.3.11, 10.1.37, 10.2.19 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Claudio Nanni | Assignee: | Alice Sherepa |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | upstream-fixed | ||
| Description |
|
While it's not a good idea to use a different setting of lower_case_table_names on Master and Slave that should still behave consistently. binlog_format doesn't make any difference. Two are the relevant observations: 1) I can use uppercase or lowercase table name on B and still address the same table without any problem: Slave B:
This is expected having lower_case_table_names=1 But if I run the same insert on the Master A (which is case sensitive): Master A:
That command will not make it on the Slave, like that the table name is not converted to lower case as it's done for the commands run via the cli: Slave B:
Consideration: The Slave SQL thread is not treated like the client thread 2) With all the above said, if I run a DDL on the Master A, that will actually make it: Master A:
Slave B:
Consideration: The Slave SQL thread treats DDLs and DMLs differently This was apparently fixed in 5.6: https://bugs.mysql.com/bug.php?id=37656 |
| Comments |
| Comment by Sachin Setiya (Inactive) [ 2018-06-26 ] | ||||||||||||||||||
|
I think row format matter , it fails only in row format
slave
master
| ||||||||||||||||||
| Comment by Sachin Setiya (Inactive) [ 2018-07-23 ] | ||||||||||||||||||
|
bb-5.5-15919 | ||||||||||||||||||
| Comment by Andrei Elkin [ 2018-10-16 ] | ||||||||||||||||||
|
Finished the current round to wait for the final patch. | ||||||||||||||||||
| Comment by Andrei Elkin [ 2018-10-29 ] | ||||||||||||||||||
|
Fixed by commit e31e697f17f79ffa6913499e7e2d29866f24b475 |