Bug #376 Inserting a row into a table results in inserting also into another table
Submitted: 6 May 2003 3:22 Modified: 4 Jun 2003 11:41
Reporter: [ name withheld ] Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S1 (Critical)
Version:4.1 alpha OS:Linux (linux)
Assigned to: CPU Architecture:Any

[6 May 2003 3:22] [ name withheld ]
Description:

Inserting a row into a table results in inserting also into another table
Two tables are the same name except case.

How to repeat:
make two tables t and T. And insert one row into t or T.
Then you will see that row also in the other table.

Suggested fix:

I don't know
[14 May 2003 8:48] Indrek Siitan
Is not repeatable on neither 4.0 or 4.1. What is lower_case_table_names set to on your system?
[15 May 2003 23:48] [ name withheld ]
Of cource, lower_case_table_names = 0.
I compiled mysql with --charset=euckr
It's reproducable to me.
[2 Jun 2003 11:48] Michael Widenius
Sorry, but can't repeat this with 4.1
mysql> create table t (a int);
Query OK, 0 rows affected (0.01 sec)
mysql> create table T (a int);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into T values (1);
Query OK, 1 row affected (0.00 sec)
ysql> select * from t;
Empty set (0.00 sec)

Please provide a full test case that shows the problem.
You can probably find out what's going on by compiling MySQL with --debug, start mysqld with --debug and then check the /tmp/mysqld.trace file when you have run your test case.
[3 Jun 2003 1:41] [ name withheld ]
I compiled mysql like this.

$ ./configure --prefix=/usr/local/mysql --enable-assembler --enable-local-infile --with-mysqld-user=hanadmin --with-charset=euckr --with-extra-charsets=complex --enable-thread-safe-client --disable-shared --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --without-berkeley-db --with-innodb --without-vio --without-openssl --with-debug

It is even possible to insert into non-exist table with the same case-insensitive name.

mysql> use test;
Database changed
mysql> create table test (a int);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into TEST values (1);
ERROR 1146: Table 'test.TEST' doesn't exist

mysql> insert into test values (2);
Query OK, 1 row affected (0.00 sec)

mysql> insert into TEST values (3);
Query OK, 1 row affected (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_test   |
+------------------+
| genbbsitem_0010U |
| genbbsitem_0010u |
| test             |
| x                |
+------------------+
4 rows in set (0.00 sec)

I will send the mysql.trace file by email because of file length.
[4 Jun 2003 1:27] Alexander Barkov
Thank you for your bug report. This issue has been fixed in the latest
development tree for that product. You can find more information about
accessing our development trees at 
    http://www.mysql.com/doc/en/Installing_source_tree.html

I fixed this on 22 April, when 4.1 had already been released.
I'm sorry that I didn't notice this bug report and kept you waiting.
[4 Jun 2003 11:41] MySQL Verification Team
Hi!

Thank you for your bug report.

Are you using 4.1.0 or latest source from our BK 4.1 tree ???

There was a bug in 4.1.0 that was fixed meanwhile in our source tree.

You can find more information about accessing our development trees at 

    http://www.mysql.com/doc/en/Installing_source_tree.html

We have built latest source with all options as you have outlined and were not able to reproduce it.