Commit graph

14 commits

Author SHA1 Message Date
Dmitry Lenev
a7b0148057 Fix for bug #44738 "fill_schema_table_from_frm() opens tables without
lowercasing table name".

In lower_case_table_names > 0 mode some queries to I_S left entries
with incorrect key in table definition cache. This wasted memory and
caused some of the further queries to I_S to produce stale results
in cases when table definition was changed by a DDL statement.
Also in combination with similar problem in CREATE TABLE (which also
has peeked into table definition cache using non-normalized key) this
issue led to to spurious ER_TABLE_EXISTS_ERROR errors when one tried
to create a table with the same name as a previously existing but
dropped table (assuming that table name contained characters in upper
case).

This problem occured due to fact that fill_schema_table_from_frm()
was not properly normalizing (lowercasing) database and table names
which it used for lookups in table definition cache.

This fix adds proper normalization to this function. It also solves
similar problem in CREATE TABLE's code by ensuring that it uses
properly normalized version of table name when it peeks into table
definition cache instead of non-normalized one.
2009-10-09 13:00:18 +04:00
gluh@eagle.intranet.mysql.r18.ru
03d8717ac8 Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
fix: return db name for I_S.TABLES(and others) in original letter case.
if mysql starts with lower_case_table_names=1 | 2 then original db name is converted
to lower case(for I_S tables). It happens when we perform add_table_to_list. 
to avoid this we make a copy of original db name and use the copy hereafter.
2006-06-06 11:25:31 +05:00
monty@mysql.com
3c12d0ae54 Added end marker for tests to make future merges easier 2005-07-28 03:22:47 +03:00
kent@mysql.com
37dd997d8b lowercase_table2.test, lowercase_table2.result:
Use IF EXISTS in initiation section
2005-07-05 17:27:37 +02:00
monty@mishka.local
1524cd001d Cleanup during review of new code
Fixed wrong allocation that could cause buffer overrun when using join cache
2005-06-21 18:18:58 +03:00
jimw@mysql.com
495ee34be0 Fix problem with handling of lower_case_table_name == 2 when
the case in the FROM and WHERE clauses didn't agree. (Bug #9500)
2005-06-08 14:35:16 -07:00
jimw@mysql.com
5ebbc834fe Fix removal of tables from cache when the database they are contained
within is dropped and lower_case_table_names is set. (Bug #8355)
2005-02-08 15:14:14 -08:00
ram@gw.mysql.r18.ru
3064b555a6 tT replaced with T1 to be more predictable. 2005-01-25 16:42:16 +04:00
ram@gw.mysql.r18.ru
35b521c925 Test case (bug #7261: Alter table loses temp table with lower_case_table_names=2). 2005-01-25 10:58:30 +04:00
monty@mysql.com
b1d08ba2b4 Merge with 4.0 to get the latest bug patches to 4.1 2004-06-25 20:13:05 +03:00
monty@mysql.com
ad86016e2f lower_case_table_names=2 (Keep case for table names) was not honored
with ALTER TABLE and CREATE/DROP INDEX. (Bug #3109)
Make net_buffer_length visible for mysql clients (Bug #4206)
2004-06-23 16:44:34 +03:00
serg@serg.mylan
6fc74e13e7 post-review fixes
HA_EXTRA_WRITE_CACHE now part of start_bulk_insert()
test cleanups
2004-04-07 16:04:28 +02:00
monty@mysql.com
4ee44751d9 Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) 2004-03-10 13:46:11 +02:00
monty@mysql.com
c1dd070ba7 Some small portability fixes.
Added support for lower_case_table_names=2, which is to be used on case insensitive file systems.
This tells MySQL to preserve the used case of filenames and database names to make it esier to move files between cases sensitive can case insensitive file systems (like Windows and Linux)
2003-12-30 13:14:21 +02:00