diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c index 7328db1c65d..a77010d939b 100644 --- a/innobase/row/row0sel.c +++ b/innobase/row/row0sel.c @@ -3124,12 +3124,17 @@ row_search_for_mysql( be zero; in that case select_lock_type is set to LOCK_X in ::start_stmt. */ +/* August 19, 2005 by Heikki: temporarily disable this error print until the +cursor lock count is done correctly. See bugs #12263 and #12456! + fputs( "InnoDB: Error: MySQL is trying to perform a SELECT\n" "InnoDB: but it has not locked any tables in ::external_lock()!\n", stderr); trx_print(stderr, trx, 600); fputc('\n', stderr); +*/ + } /* fprintf(stderr, "Match mode %lu\n search tuple ", (ulong) match_mode); diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 69620d5d527..91d72045169 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -904,7 +904,7 @@ insert into mysqltest.t3 values(1); commit; drop database mysqltest; show tables from mysqltest; -Got one of the listed errors +ERROR 42000: Unknown database 'mysqltest' set autocommit=0; create table t1 (a int not null) engine= innodb; insert into t1 values(1),(2); diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result index 94d1ac7ac11..c143c7f0f29 100644 --- a/mysql-test/r/show_check.result +++ b/mysql-test/r/show_check.result @@ -555,3 +555,5 @@ Database Table In_use Name_locked DROP TABLE txt1; DROP TABLE tyt2; DROP TABLE urkunde; +SHOW TABLES FROM non_existing_database; +ERROR 42000: Unknown database 'non_existing_database' diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index 8d51af4f22f..3eaf408af0f 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -586,7 +586,7 @@ insert into mysqltest.t3 values(1); commit; drop database mysqltest; # Don't check error message ---error 12,12 +--error 1049 show tables from mysqltest; # diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test index 41b8a9e401c..b9fc991dc80 100644 --- a/mysql-test/t/show_check.test +++ b/mysql-test/t/show_check.test @@ -405,3 +405,8 @@ SHOW OPEN TABLES; DROP TABLE txt1; DROP TABLE tyt2; DROP TABLE urkunde; +# +# BUG #12591 (SHOW TABLES FROM dbname produces wrong error message) +# +--error 1049 +SHOW TABLES FROM non_existing_database; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index b06f1d683dd..3bb349d7c29 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -264,8 +264,14 @@ mysql_find_files(THD *thd,List *files, const char *db,const char *path, bzero((char*) &table_list,sizeof(table_list)); - if (!(dirp = my_dir(path,MYF(MY_WME | (dir ? MY_WANT_STAT : 0))))) + if (!(dirp = my_dir(path,MYF(dir ? MY_WANT_STAT : 0)))) + { + if (my_errno == ENOENT) + my_error(ER_BAD_DB_ERROR, MYF(ME_BELL+ME_WAITTANG), db); + else + my_error(ER_CANT_READ_DIR, MYF(ME_BELL+ME_WAITTANG), path, my_errno); DBUG_RETURN(-1); + } for (i=0 ; i < (uint) dirp->number_off_files ; i++) {