On Nov 11, 2010, at 5:55 AM, Stewart Smith wrote:

> On Wed, 10 Nov 2010 09:41:52 -0600, Tim Soderstrom 
> <[email protected]> wrote:
>> I noticed later builds of Drizzle basically have the equivalent of
>> lower_case_table_names=1 with no way to reverse the
>> 
>> What I find weird about this is that the "Test" database has a 'test'
>> folder in the 'local' directory. So Drizzle knows what case I
>> originally used for databases. Why not tables? Any reasoning behind
>> this? I much prefer to use mixed case in my table names and while I
>> can still do that on the application side, using the drizzle
>> command-line forces the lower case and makes things a bit harder to
>> wade through.
> 
> With a bit of handwaving and forgetting those particular
> codepaths... does table_raw_reader on the dfe tell you something
> interesting for the table name? what about SHOW CREATE TABLE?
> 
> I'm wondering if there's something in presentation. Certainly we compare
> with things normalised to follow the standard (although case
> insensitivity as always a bug IMHO... but then again, i'm not the SQL 
> standard).

Not sure how to do the table_raw_reader bit but I have expanded on the SHOW 
CREATE TABLE stuff with some examples:

drizzle> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE 
TABLE_SCHEMA='mcptest' ORDER BY TABLE_NAME LIMIT 5;
+--------------+
| TABLE_NAME   |
+--------------+
| art          | 
| blogcomments | 
| blogmoods    | 
| blogposts    | 
| blogtags     | 
+--------------+
5 rows in set (0 sec)

drizzle> SELECT TABLE_NAME FROM DATA_DICTIONARY.TABLES WHERE 
TABLE_SCHEMA='mcptest' ORDER BY TABLE_NAME LIMIT 5;
+--------------+
| TABLE_NAME   |
+--------------+
| art          | 
| blogcomments | 
| blogmoods    | 
| blogposts    | 
| blogtags     | 
+--------------+
5 rows in set (0.15 sec)

drizzle> SHOW CREATE TABLE ShoutBox\G
*************************** 1. row ***************************
       Table: shoutbox
Create Table: CREATE TABLE `shoutbox` (
  `shoutid` INT NOT NULL AUTO_INCREMENT,
  `date` DATETIME DEFAULT NULL,
  `shoutname` TEXT COLLATE utf8_general_ci NOT NULL,
  `shout` TEXT COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`shoutid`),
  KEY `date_idx` (`date`)
) ENGINE=InnoDB COLLATE = utf8_general_ci AUTO_INCREMENT=267
1 row in set (0 sec)

drizzle> SHOW CREATE TABLE SHOUTBOX\G
*************************** 1. row ***************************
       Table: shoutbox
Create Table: CREATE TABLE `shoutbox` (
  `shoutid` INT NOT NULL AUTO_INCREMENT,
  `date` DATETIME DEFAULT NULL,
  `shoutname` TEXT COLLATE utf8_general_ci NOT NULL,
  `shout` TEXT COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`shoutid`),
  KEY `date_idx` (`date`)
) ENGINE=InnoDB COLLATE = utf8_general_ci AUTO_INCREMENT=267
1 row in set (0 sec)

What things look like in MySQL:

mysql> SELECT TABLE_NAME FROM information_schema.TABLES WHERE 
TABLE_SCHEMA='mcptest' LIMIT 5;
+---------------+
| TABLE_NAME    |
+---------------+
| Art           |
| BlogComments  |
| BlogMoods     |
| BlogPosts     |
| BlogPostsView |
+---------------+
5 rows in set (0.01 sec)

mysql> SHOW CREATE TABLE ShoutBox\G
*************************** 1. row ***************************
       Table: ShoutBox
Create Table: CREATE TABLE `ShoutBox` (
  `shoutid` int(11) NOT NULL AUTO_INCREMENT,
  `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `shoutname` tinytext NOT NULL,
  `shout` tinytext NOT NULL,
  PRIMARY KEY (`shoutid`),
  KEY `date_idx` (`date`)
) ENGINE=InnoDB AUTO_INCREMENT=267 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)


As far as to whether this is a bug, I can live with case-insensitivity (I much 
prefer matching on case myself but if the standard says otherwise...) but I 
would like to see case-awareness. So even though blog and Blog are the same 
thing, Drizzle should return back to me the original case I created the table 
with. Either way, the inconsistency between being case-aware for databases but 
lower-case for tables is kinda weird :)

Tim S.










_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to