mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 06:22:28 +01:00
67dbff680e
to 5.1 partially. This patch brings what was left to mysql-next-mr. Original revisions in 6.0: ------------------------------------------------------------ revno: 2617.31.26 committer: Alexander Nozdrin <alik@sun.com> branch nick: 6.0-rt-bug43138.3 timestamp: Thu 2009-04-30 19:31:30 +0400 message: Fix for Bug#43138: DROP DATABASE failure does not clean up message list. The problem was that the high-level function mysql_rm_db() invoked low-level mysql_rm_table_part2(), which reported low-level error (Unknown table) if SE refused to delete a table. Also when mysql_rm_table_part2() reported an error, it didn't add corresponding warning into the list (because it is used from other places where such behaviour is required). The fix is to 1. Remove no_warnings_for_error usage from sql_table.cc 2. Improve internal error handler support in THD, so that a stack of error handlers is allowed. 3. Create an internal error handler (Drop_table_error_handler) to silence useless warnings. 4. Use the handler in DROP DATABASE and DROP TABLE statements. ------------------------------------------------------------ revno: 2617.69.38 committer: Alexander Nozdrin <alik@sun.com> branch nick: mysql-next-bugfixing-bug37431 timestamp: Mon 2009-08-24 21:52:09 +0400 message: A test case for Bug#37431 (DROP TABLE does not report errors correctly). ------------------------------------------------------------ revno: 2617.31.29 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-runtime timestamp: Fri 2009-05-01 17:37:34 +0400 message: Follow-up for fix for bug "Bug#43138: DROP DATABASE failure does not clean up message list". Fixed drop.test failure under non-debug server by moving part of test dependent on debug-only feature to separate .test file, which won't be run for non-debug versions of server. ------------------------------------------------------------ revno: 2617.45.17 committer: Sergei Golubchik <serg@mysql.com> branch nick: 6.0-maria timestamp: Wed 2009-05-13 20:08:58 +0200 message: followup for bug#43138 if delete fails with a permission denied error, we want to show it ------------------------------------------------------------ The patch was backported to 5.1 in scope of Bug#42364 by the following revision: ------------------------------------------------------------ revno: 2497.975.3 committer: Sergey Glukhov <Sergey.Glukhov@sun.com> branch nick: mysql-5.1-bugteam timestamp: Fri 2009-07-03 13:22:06 +0500 message: Bug#42364 SHOW ERRORS returns empty resultset after dropping non existent table enabled message storing into error message list for 'drop table' command ------------------------------------------------------------
137 lines
3.8 KiB
Text
137 lines
3.8 KiB
Text
drop table if exists t1;
|
|
drop database if exists mysqltest;
|
|
drop database if exists client_test_db;
|
|
drop table t1;
|
|
ERROR 42S02: Unknown table 't1'
|
|
create table t1(n int);
|
|
insert into t1 values(1);
|
|
create temporary table t1( n int);
|
|
insert into t1 values(2);
|
|
create table t1(n int);
|
|
ERROR 42S01: Table 't1' already exists
|
|
drop table t1;
|
|
select * from t1;
|
|
n
|
|
1
|
|
create database mysqltest;
|
|
drop database if exists mysqltest;
|
|
create database mysqltest;
|
|
create table mysqltest.mysqltest (n int);
|
|
insert into mysqltest.mysqltest values (4);
|
|
select * from mysqltest.mysqltest;
|
|
n
|
|
4
|
|
drop database if exists mysqltest;
|
|
affected rows: 1
|
|
create database mysqltest;
|
|
use mysqltest;
|
|
drop table table1, table2, table3, table4, table5, table6,
|
|
table7, table8, table9, table10, table11, table12, table13,
|
|
table14, table15, table16, table17, table18, table19, table20,
|
|
table21, table22, table23, table24, table25, table26, table27,
|
|
table28;
|
|
ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table'
|
|
drop table table1, table2, table3, table4, table5, table6,
|
|
table7, table8, table9, table10, table11, table12, table13,
|
|
table14, table15, table16, table17, table18, table19, table20,
|
|
table21, table22, table23, table24, table25, table26, table27,
|
|
table28, table29, table30;
|
|
ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table'
|
|
use test;
|
|
drop database mysqltest;
|
|
flush tables with read lock;
|
|
create database mysqltest;
|
|
Got one of the listed errors
|
|
unlock tables;
|
|
create database mysqltest;
|
|
show databases;
|
|
Database
|
|
information_schema
|
|
mtr
|
|
mysql
|
|
mysqltest
|
|
test
|
|
flush tables with read lock;
|
|
drop database mysqltest;
|
|
Got one of the listed errors
|
|
unlock tables;
|
|
drop database mysqltest;
|
|
show databases;
|
|
Database
|
|
information_schema
|
|
mtr
|
|
mysql
|
|
test
|
|
drop database mysqltest;
|
|
ERROR HY000: Can't drop database 'mysqltest'; database doesn't exist
|
|
drop table t1;
|
|
flush tables with read lock;
|
|
create table t1(n int);
|
|
ERROR HY000: Can't execute the query because you have a conflicting read lock
|
|
unlock tables;
|
|
create table t1(n int);
|
|
show tables;
|
|
Tables_in_test
|
|
t1
|
|
drop table t1;
|
|
drop database if exists mysqltest;
|
|
drop table if exists t1;
|
|
create table t1 (i int);
|
|
lock tables t1 read;
|
|
create database mysqltest;
|
|
drop table t1;
|
|
show open tables;
|
|
drop database mysqltest;
|
|
select 1;
|
|
1
|
|
1
|
|
unlock tables;
|
|
End of 5.0 tests
|
|
create database mysql_test;
|
|
create table mysql_test.t1(f1 int);
|
|
create table mysql_test.`#sql-347f_7` (f1 int);
|
|
create table mysql_test.`#sql-347f_8` (f1 int);
|
|
drop table mysql_test.`#sql-347f_8`;
|
|
drop database mysql_test;
|
|
|
|
# --
|
|
# -- Bug#29958: Weird message on DROP DATABASE if mysql.proc does not
|
|
# -- exist.
|
|
# --
|
|
DROP DATABASE IF EXISTS mysql_test;
|
|
CREATE DATABASE mysql_test;
|
|
DROP TABLE mysql.proc;
|
|
DROP DATABASE mysql_test;
|
|
Warnings:
|
|
Error 1146 Table 'mysql.proc' doesn't exist
|
|
|
|
# --
|
|
# -- End of Bug#29958.
|
|
# --
|
|
|
|
create database mysqltestbug26703;
|
|
use mysqltestbug26703;
|
|
create table `#mysql50#abc``def` ( id int );
|
|
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
|
ERROR 42000: Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
|
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
|
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
|
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
|
|
ERROR 42000: Incorrect table name '#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
|
use test;
|
|
drop database mysqltestbug26703;
|
|
End of 5.1 tests
|
|
|
|
# --
|
|
# -- Bug#37431 (DROP TABLE does not report errors correctly).
|
|
# --
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP TABLE t1;
|
|
ERROR 42S02: Unknown table 't1'
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Error 1051 Unknown table 't1'
|
|
|
|
# --
|
|
# -- End of Bug#37431.
|
|
# --
|