Bug #35257 | Falcon: tablespace names are case sensitive | ||
---|---|---|---|
Submitted: | 12 Mar 2008 22:41 | Modified: | 15 May 2009 13:08 |
Reporter: | Peter Gulutzan | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S3 (Non-critical) |
Version: | 6.0.5-alpha-debug | OS: | Linux (SUSE 10 | 32-bit) |
Assigned to: | Sergey Vojtovich | CPU Architecture: | Any |
Tags: | F_TABLESPACE |
[12 Mar 2008 22:41]
Peter Gulutzan
[12 Mar 2008 23:25]
MySQL Verification Team
Thank you for the bug report.
[13 Mar 2008 5:40]
Jon Stephens
See my comments to Bug #33719. I see no reason why individual storage engines should violate norms for the MySQL Server as a whole.
[13 Mar 2008 5:52]
Kevin Lewis
Jim Starkey wrote; Falcon currently (and incorrectly) preserves case of tablespace name. Hence, create tablespace foo ... create tablespace FOO ... will create two tablespaces, one named "foo" and one named "FOO". This is inconsistent with other object naming rules in Falcon. I am fixing the code so that each of the two statements above create the table space FOO. In a better world, we would preserve case for quoted identifiers, but the server doesn't pass through this information. The change doesn't actually break anything, per se, but does make existing tablespaces inaccessible for DDL purposes. If for example, a user executed the following statements in the first beta: create tablespace foo add file 'foo.fts' engine=falcon; create table t1 (n int) tablespace foo; This would create the tablespace "foo" (lower case) with a table T1. This would continue to work in beta 2. However, using the 2nd beta, the same user tried to execute create table t2 (n int) tablespace foo; he would create an error 'tablespace "FOO" doesn't exist' (or something like that). He could, however, execute: create tablespace foo add file "bar.fts" engine=falcon; create table t2 (n int) tablespace foo; which would work like charm, leaving the user with two tablespaces, "foo" and "FOO". He could also, if he wished, execute the statement alter table t1 tablespace foo; to move T1 from "foo" to "FOO". What he can't do is add any more tables to "foo" or even drop it. He would be stuck with a useless, inaccessible, undroppable tablespace until we beefed up the server to indicate quoted names to storage engines. I think this is an acceptable workaound for an early beta.... Comments or questions?
[13 Mar 2008 13:24]
Peter Gulutzan
Jon Stephens commented: "I see no reason why individual storage engines should violate norms for the MySQL Server as a whole." I believe the applicable "norm" may be the case insensitivity of most object names other than databases and tables.
[11 Nov 2008 22:27]
Kevin Lewis
Sergey, Can you look into this? It may be related to a Beta bug in Backup, Bug#35257.
[26 Nov 2008 11:30]
Jørgen Løland
The backup bug that relies on this bug being fixed is bug#33569.
[10 Dec 2008 14:27]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/61219 2930 Sergey Vojtovich 2008-12-10 BUG#35257 - Falcon: tablespace names are case sensitive Fixed that falcon tablespace names were case sensitive. With this fix the rules for tablespace names are the same as for table names, that is case insensitive. Fixed by performing case up on tablespace name whenever tablespace is created/dropped or a table is created/altered. Note that it is incompatible fix: - it is not possible to drop existing tablespace created by previous versions, if it's name wasn't in upper case. - it is not possible to create tables using tablespace created by previous versions, if tablespace name wasn't in upper case.
[15 Dec 2008 17:47]
Kevin Lewis
Code looks good, OK to push
[17 Dec 2008 11:06]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/61850 2941 Sergey Vojtovich 2008-12-17 An addition to fix for BUG#35257 - Falcon: tablespace names are case sensitive Fixed a test case - Falcon tablespace names are now in upper case.
[13 Feb 2009 7:24]
Bugs System
Pushed into 6.0.10-alpha (revid:alik@sun.com-20090211182317-uagkyj01fk30p1f8) (version source revid:svoj@mysql.com-20081217100427-wyn8rhxammwm5a0p) (merge vers: 6.0.9-alpha) (pib:6)
[26 Feb 2009 13:57]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/67686 2784 Ingo Struewing 2009-02-26 Post-merge fix due to Bug#35257 (Falcon: tablespace names are case sensitive) @ mysql-test/suite/backup/r/backup_client.result Post-merge fix due to Bug#35257 (Falcon: tablespace names are case sensitive)
[26 Mar 2009 12:35]
Bugs System
Pushed into 6.0.11-alpha (revid:alik@sun.com-20090326121822-pt84kzxxayzho4mn) (version source revid:rafal.somla@sun.com-20090302164601-znhm4tadplfi2iqu) (merge vers: 6.0.11-alpha) (pib:6)
[15 May 2009 13:08]
MC Brown
An entry has been added to the 6.0.10 changelog: Incompatible Change: Falcon supported case-sensitive tablespace names. The code has been changed so that all tablespace names are converted to uppercase names during creation. Because of this change: It is not possible to drop existing tablespace created by previous versions, if it's name wasn't in upper case. It is not possible to create tables using tablespace created by previous versions, if tablespace name wasn't in upper case.