Bug #7057 improper case syntax in an insert statement causes slave thread to fail
Submitted: 7 Dec 2004 1:29 Modified: 7 Dec 2004 6:09
Reporter: Mike Kelley Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version:5.0.0alpha OS:Linux (SuSE Linux)
Assigned to: CPU Architecture:Any

[7 Dec 2004 1:29] Mike Kelley
Description:
I have a problem that did not seem to be covered in the replication documentation.  I have two computers one running Win2000 with MySQL 5.0.0alpha that is the master db.  The other is running SuSE Linux with MySQL 5.0.2alpha that is set up as the slave.  The master db has a table called mmr_log.  I've noticed that if I issue and INSERT statement into the table using the improper syntax (i.e. using INSERT INTO MMR_LOG... rather than using INSERT INTO mmr_log...) that the slave thread fails and gives an error stating 

Table 'masterserver.MMR_LOG' doesn't exist ' on query. Default database: 'webdb'. Query: 'INSERT INTO MMR_LOG VALUES ('12/16/2004 12:01:01', 'NONE', '', '')

I was able to remedy the problem by changing my script syntax which generated the INSERT statement to read INSERT INTO mmr_log VALUES...  I know that Linux has a filesystem, which unlike Windows, is case sensative but I didn't see any documention requiring a tablename to be stated so concisely.

How to repeat:
Issue an insert command using the wrong case syntax (at least for the table name) against a table on an instance running on a Windows Server.  Then check to see if the slave thread fails (slave instance running on Linux).

Suggested fix:
It would seem that simply entering the statement in the correct case is an acceptable 'work-around' but I was unable to locate any documentation suggesting this as a remedy.
[7 Dec 2004 6:09] Victoria Reznichenko
Hi,

Thank you for the report, but this is really not a bug. Please, read carefully MySQL manual at:
http://dev.mysql.com/doc/mysql/en/Name_case_sensitivity.html