Below is the list of changes that have just been committed into a local
6.0 repository of svoj. When svoj does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-04-16 13:54:53+05:00, svoj@stripped +3 -0
BUG#33723 - ALTER TABLE into non-existing Falcon tablespace blocks
further ALTERs
BUG#34048 - Falcon: after error with tablespace, I can't create table
BUG#34617 - Falcon assertion in StorageHandler::addTable, line 622
If Falcon fails to create a table for some reason (e.g. non-existent
tablespace), it is not possible to create a table in the same database
with the same name anymore (until server is restarted). Or assertion
failure (=server crash) may occur for further create table statements.
The above is true for ALTER TABLE as well, when it fails to create
temporary table.
The problem was that table share was not removed from table share
hash on error.
mysql-test/suite/falcon/r/falcon_bug_34617.result@stripped, 2008-04-16 13:54:50+05:00,
svoj@stripped +8 -0
A test case for BUG#34617.
mysql-test/suite/falcon/r/falcon_bug_34617.result@stripped, 2008-04-16 13:54:50+05:00,
svoj@stripped +0 -0
mysql-test/suite/falcon/t/falcon_bug_34617.test@stripped, 2008-04-16 13:54:50+05:00,
svoj@stripped +18 -0
A test case for BUG#34617.
mysql-test/suite/falcon/t/falcon_bug_34617.test@stripped, 2008-04-16 13:54:50+05:00,
svoj@stripped +0 -0
storage/falcon/StorageTableShare.cpp@stripped, 2008-04-16 13:54:50+05:00, svoj@stripped +1
-2
When a table is being created, falcon adds table share to table share
hash and creates a table. If an error occurs between these operations,
table share entry was not removed from the hash.
Attempt to remove table share from table share hash even if table was not
actually created yet (in other words when storageDatabase::deleteTable
returns StorageErrorTableNotFound).
diff -Nrup a/mysql-test/suite/falcon/r/falcon_bug_34617.result
b/mysql-test/suite/falcon/r/falcon_bug_34617.result
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/falcon/r/falcon_bug_34617.result 2008-04-16 13:54:50 +05:00
@@ -0,0 +1,8 @@
+CREATE TABLE t1(a INT) ENGINE=Falcon TABLESPACE nosuchtablespace;
+ERROR HY000: Can't create table 'test.t1' (errno: 156)
+CREATE TABLE t1(a INT) ENGINE=Falcon;
+ALTER TABLE t1 TABLESPACE nosuchtablespace;
+ERROR HY000: Can't create table 'test.#sql-temporary' (errno: 156)
+ALTER TABLE t1 TABLESPACE nosuchtablespace;
+ERROR HY000: Can't create table 'test.#sql-temporary' (errno: 156)
+DROP TABLE t1;
diff -Nrup a/mysql-test/suite/falcon/t/falcon_bug_34617.test
b/mysql-test/suite/falcon/t/falcon_bug_34617.test
--- /dev/null Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/falcon/t/falcon_bug_34617.test 2008-04-16 13:54:50 +05:00
@@ -0,0 +1,18 @@
+--source include/have_falcon.inc
+
+#
+# BUG#33723 - ALTER TABLE into non-existing Falcon tablespace blocks
+# further ALTERs
+# BUG#34048 - Falcon: after error with tablespace, I can't create table
+# BUG#34617 - Falcon assertion in StorageHandler::addTable, line 622
+#
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE t1(a INT) ENGINE=Falcon TABLESPACE nosuchtablespace;
+CREATE TABLE t1(a INT) ENGINE=Falcon;
+--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
+--error ER_CANT_CREATE_TABLE
+ALTER TABLE t1 TABLESPACE nosuchtablespace;
+--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
+--error ER_CANT_CREATE_TABLE
+ALTER TABLE t1 TABLESPACE nosuchtablespace;
+DROP TABLE t1;
diff -Nrup a/storage/falcon/StorageTableShare.cpp b/storage/falcon/StorageTableShare.cpp
--- a/storage/falcon/StorageTableShare.cpp 2008-03-12 16:15:13 +04:00
+++ b/storage/falcon/StorageTableShare.cpp 2008-04-16 13:54:50 +05:00
@@ -141,8 +141,7 @@ int StorageTableShare::deleteTable(Stora
{
unRegisterTable();
- if (res == 0)
- storageHandler->removeTable(this);
+ storageHandler->removeTable(this);
delete this;
}
| Thread |
|---|
| • bk commit into 6.0 tree (svoj:1.2643) BUG#33723 | Sergey Vojtovich | 16 Apr 2008 |