From: Date: June 20 2007 6:22pm Subject: bk commit into 5.0 tree (monty:1.2517) BUG#25621 List-Archive: http://lists.mysql.com/commits/29197 X-Bug: 25621 Message-Id: <20070620162231.66F36385F43D@mysql.fi> Below is the list of changes that have just been committed into a local 5.0 repository of monty. When monty 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, 2007-06-20 19:22:27+03:00, monty@stripped +5 -0 Allow multiple calls to mysql_server_end() (Part of fix for Bug#25621 Error in my_thread_global_end(): 1 threads didn't exit) Give correct error message if InnoDB table is not found (This allows us to drop a an innodb table that is not in the InnoDB registery) BitKeeper/etc/ignore@stripped, 2007-06-20 19:13:51+03:00, monty@stripped +1 -0 added include/abi_check BitKeeper/etc/ignore@stripped, 2007-06-20 19:13:32+03:00, monty@stripped +1 -0 added debian/defs.mk BitKeeper/etc/ignore@stripped, 2007-06-20 19:13:26+03:00, monty@stripped +1 -0 added debian/control libmysql/libmysql.c@stripped, 2007-06-20 19:22:25+03:00, monty@stripped +15 -0 Allow multiple calls to mysql_server_end() (Part of fix for Bug#25621 Error in my_thread_global_end(): 1 threads didn't exit) mysql-test/r/innodb_mysql.result@stripped, 2007-06-20 19:22:25+03:00, monty@stripped +8 -0 Test case for drop of table that only has a .frm file mysql-test/t/innodb_mysql.test@stripped, 2007-06-20 19:22:25+03:00, monty@stripped +14 -0 Test case for drop of table that only has a .frm file sql/ha_innodb.cc@stripped, 2007-06-20 19:22:25+03:00, monty@stripped +1 -1 Give correct error message if InnoDB table is not found. (This allows us to drop a an innodb table that is not in the InnoDB registery) # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: monty # Host: narttu.mysql.fi # Root: /home/my/mysql-5.0 --- 1.256/libmysql/libmysql.c 2007-05-24 21:51:35 +03:00 +++ 1.257/libmysql/libmysql.c 2007-06-20 19:22:25 +03:00 @@ -168,8 +168,23 @@ int STDCALL mysql_server_init(int argc _ } +/* + Free all memory and resources used by the client library + + NOTES + When calling this there should not be any other threads using + the library. + + To make things simpler when used with windows dll's (which calls this + function automaticly), it's safe to call this function multiple times. +*/ + + void STDCALL mysql_server_end() { + if (!mysql_client_init) + return; + #ifdef EMBEDDED_LIBRARY end_embedded_server(); #endif --- 1.22/mysql-test/r/innodb_mysql.result 2007-06-01 20:53:49 +03:00 +++ 1.23/mysql-test/r/innodb_mysql.result 2007-06-20 19:22:25 +03:00 @@ -625,4 +625,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='123' drop table t1; +create table t1 (a int) engine=innodb; +select * from t2; +ERROR 42S02: Table 'test.t2' doesn't exist +drop table t1; +drop table t2; +ERROR 42S02: Unknown table 't2' +create table t2 (a int); +drop table t2; End of 5.0 tests --- 1.22/mysql-test/t/innodb_mysql.test 2007-06-01 20:53:49 +03:00 +++ 1.23/mysql-test/t/innodb_mysql.test 2007-06-20 19:22:25 +03:00 @@ -605,4 +605,18 @@ alter table t1 comment '123'; show create table t1; drop table t1; +# +# Test bug when trying to drop data file which no InnoDB directory entry +# + +create table t1 (a int) engine=innodb; +copy_file $MYSQLTEST_VARDIR/master-data/test/t1.frm $MYSQLTEST_VARDIR/master-data/test/t2.frm; +--error 1146 +select * from t2; +drop table t1; +--error 1051 +drop table t2; +create table t2 (a int); +drop table t2; + --echo End of 5.0 tests --- 1.313/sql/ha_innodb.cc 2007-04-29 16:40:41 +03:00 +++ 1.314/sql/ha_innodb.cc 2007-06-20 19:22:25 +03:00 @@ -504,7 +504,7 @@ convert_error_code_to_mysql( } else if (error == (int) DB_TABLE_NOT_FOUND) { - return(HA_ERR_KEY_NOT_FOUND); + return(HA_ERR_NO_SUCH_TABLE); } else if (error == (int) DB_TOO_BIG_RECORD) { --- 1.248/BitKeeper/etc/ignore 2007-06-01 17:06:37 +03:00 +++ 1.251/BitKeeper/etc/ignore 2007-06-20 19:13:51 +03:00 @@ -1341,3 +1341,6 @@ win/vs71cache.txt win/vs8cache.txt zlib/*.ds? zlib/*.vcproj +debian/control +debian/defs.mk +include/abi_check