Well, I checked the code and looks like in 4.0.17 lower_case_table_names
is NOT forced to 1 on case-insensitive file system, despite the
changelog entry (that we will fix, by the way). Obviously a programming
mistake, but for now only warning that lower_case_table_names is forced to 1
is issued, no actual assignement takes place.
I think, as there are users that need lower_case_table_names=0 on
Windows, we could set the *default* value based on filesystem
case-sensitivity, but with the possibility to change it from the command
line, and issue a BIG RED WARNING if you'll do.
So don't do it unless you know what you are doing.
To quote Monty:
The 'bug' here is that if you set lower_case_table_names to OFF on a
system where you have case insensitive file names (like windows) you
WILL get table corruption if you access tables with different cases.
This is becasue MySQL doesn't know that the tables 'name' and 'NAME'
are in fact the same table and will cache and lock each of these
On Dec 17, Reverend Deuce wrote:
> I agree, 100%. We live in a mixed environment of UNIX and Windows and as
> such, we've assumed case insensitivity in our apps. I know that this is bad
> practice, but forcing this flag on us is and even worse practice. This
> should always, always be an option.
> I wont be able to upgrade until this is fixed. :(
> -- R
> ----- Original Message -----
> From: "Yves Goergen" <nospam.list@stripped>
> To: "Lenz Grimmer" <lenz@stripped>; <mysql@stripped>
> Sent: Wednesday, December 17, 2003 1:12 PM
> Subject: Re: MySQL 4.0.17 has been released
> > On Wednesday, December 17, 2003 1:58 PM CET, Lenz Grimmer wrote:
> > > Functionality added or changed:
> > >
> > > * `lower_case_table_names' is now forced to 1 if the database
> > > directory is located on a case-insensitive file system. (Bug #1812)
> > Uh, _very_ bad. I know that my Windows filesystem is case-insensitive and
> > that I cannot create tables only differing by case of the name, but I need
> > to have this setting off to be able to dump my tables on Windows with the
> > correct (and not lower-cased!!) table names to import them on my webhoster's
> > Linux server. If the setting was enabled, I'd get all wrong table names and
> > my application couldn't find its tables anymore (as 'bb1_GroupMembers' gets
> > to 'bb1_groupmembers' and that's something else!).
> > So please change this back again, I believe it's up to the server
> > administrator to set this in a correct and reasonable way, don't you?
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Sergei Golubchik <serg@stripped>
/ /|_/ / // /\ \/ /_/ / /__ MySQL AB, Senior Software Developer
/_/ /_/\_, /___/\___\_\___/ Osnabrueck, Germany