rpjd

New Member
Joined
Mar 11, 2011
Messages
78
I am using WAMP server 2.0 on Windows 7. Due to Windows being case insenstive in regards to file names, MySQL is forced to treat the table names 'mytable' and 'MyTable' as being the same, which they are not (personal opinion). MySQL is unable due to Windows file naming system to rename tables such as 'mytable' to 'MyTable'. Though perhaps a solitary voice, and if anyone from Microsoft is actually listening, my message to the powers that be in Microsoft, change the file naming convention is Windows to case sensitive. If I have a MySQL table called totalmonthlycarssalesbyvendors, MySQL will not rename it to TotalMonthlyCarSalesByVendor, giving a table exists error.
TotalMonthlyCarSalesByVendor is cleaner and shorter than
total_monthly_car_sales_by_vendor.
 


Solution
I've been informed on the MySQL forum that MySQL has implemented its 'fix' for table names, but that doesn't change the fact the MySQL cannot change the table name 'mytable' to 'MyTable'. It would seem that the Windows file system being case insensitive is causing the problem. A problem at least from my viewpont anyway. Does anyone from this forum have any sway with the Windows developers to highlight the issue? Making the Windows team aware of it would be something at least!
My usual trick if I get "stuck" like this, very rare these days as I use Better File Rename, I'd rename totalmonthlycarssalesbyvendors to TotalMonthlyCarSalesByVendor1, then rename again removing the 1. A PITA I know but it does work.
 


Long-winded yes, but its unfair that Windows forces the user to do something like that. Even though the MySQL setting lower_case_file_names set to '0' allows the user to create a table named MyTable, (assuming 'mytable' doesn't exist) however when an sql statement is executed by Windows, the OS converts the file name to lowercase before doing the actual transaction. It would be less bothersome, more user-friendly if the Windows file system itself had a something like a BIOS setting for example that allowed both 'mytable' and 'MyTable' to co-exist as table names and allow 'mytable' to be renamed 'MyTable'. My database has a lot of tables and long file names which are not easy to read. Problem is I can't rename mytable to MyTable, I have to drop (delete) mytable in order to create the table MyTable. That for me is a flaw in the Windows file system.
 


Couldn't agree more rpjd. For every attempt ever made in the IT industry to establish a "standard" there has always been an organisation who thinks they are big enough to go their own sweet way, even seeking to impose their way as the accepted standard. The classic was in the early days when seeking to differentiate between the capital letter "O" and the digit zero the industry agreed to draw a stroke through the zero - except for one computer giant who adopted the inverse practice so demolishing the whole objective. As the industry is based on an 8 bit ASCII code (the same people who adopted the inverse standard for O and 0 sought to operate their own character code as well but that is another chapter of the same story) which clearly defines "a" and "A" as different entities then we should recognise those differences in our file naming standards (as Linux do for example).
 


Thanks patcooke, thought I was a solitary voice in this. I have raised this issue in the MySQL forum and have been told that this fiasco with table names in MySQL is in fact combined problem, Windows file system being case insensitive and something within the MySQL architecture adding to the debacle. I explained that as a Windows and MySQL I felt this problem should be addressed either seperately or jointly. If MySQL sees it as a issue, surely they as an organisation should speak to Mr Ballmer & Company in an effort to resolve it. I'm only a user, not much I can do alone but see if anyone feels the same way about it. Whle not being in a position to do so, I would be fascinated to do a survey in both communities, MySQL and Windows to see who esle feels as disgruntled by this as I am.
 


I've been informed on the MySQL forum that MySQL has implemented its 'fix' for table names, but that doesn't change the fact the MySQL cannot change the table name 'mytable' to 'MyTable'. It would seem that the Windows file system being case insensitive is causing the problem. A problem at least from my viewpont anyway. Does anyone from this forum have any sway with the Windows developers to highlight the issue? Making the Windows team aware of it would be something at least!
 


Solution
We could of course adopt a well established industry programming standard for filenaming which recommends use of lowercase throughout for all letters excepting the initial letter of all words except the first. Then the only valid format of a filename like myFile would be just that - myFile - variations such as Myfile, myfile, MyFile, MYFILE, etc would not be used. But there again, we're expecting the impossible - universal adoption of standards in the IT industry.
 


But there again, we're expecting the impossible - universal adoption of standards in the IT industry
Ever heard of the phrase, 'ask and you shall receive'? Well, if you don't ask(politely at least), i.e. say nothing, you won't receive, i.e. don't expect anything. Remember, this is not an element of software that doesn't work at all, it just doesn't work in the way that I, and perhaps others might want it to work or feel it should work. It wouldn't hurt to poll the Windows forum, just as a guide to see what numbers would be in favour of as you said the initial letter of a word or words in a file(table) name being uppercase, MyTable being the naming standard as opposed to mytable. If there is a concensus in favour, thats something the Windows developers I think should be aware of, how to make them aware is another matter entirely!
 


Ever heard of the phrase, 'ask and you shall receive'?
I certainly have - John 16, verse 24 :)

Seriously though, the only way you get a broad adoption of standards is when there are financial losses incurred by not adopting them or actual financial incentives for doing so - the seven layer model for communications is a classic example of this where if the interface between the layers is not adhered to then a manufacturer will have little hope of selling whatever networking hardware or software they are producing. Insofar as programming practices and standards are concerned the boundaries for standards have tended to be the limits of the organisation within which they are written to support team production of software. But hope springs eternal (Pope Essay on Man I.95) - I applaud your noble aim and am happy to cast my vote in the "pro" lobby for establishment of a standard.
 


That phrase just popped into my head at the time and I went with it. It would be my assumption, that the file naming protocol would be at the bottom layer of the architecture. So if the protocol for file names is changed to allow first-letter-of-word to be uppercase, having the option to name a file(table) MyTable as well as mytable would be adequate. I would be surprised if this would have any significant financial impact at all. I don't suppose a poll of the forum would be possible then?
 


I can't think of any reason why you shouldn't set up a poll on this issue in the forums, presumably in the programming and scripting forum. Polls always need a bit of thinking time to make sure that the right question(s) are asked and the best options given to get the best out of the poll. Look forward to seeing it.
 


Back
Top