discover of table non-existance on drop
This commit is contained in:
parent
e06cb31719
commit
474f45b3dc
@ -76,9 +76,19 @@ t1 CREATE TABLE `t1` (
|
|||||||
# discover on drop
|
# discover on drop
|
||||||
#
|
#
|
||||||
flush tables;
|
flush tables;
|
||||||
drop table t0, t1;
|
drop table t1;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
|
t0
|
||||||
|
#
|
||||||
|
# discover of table non-existance on drop
|
||||||
|
#
|
||||||
|
select * from t0;
|
||||||
|
a
|
||||||
|
flush tables;
|
||||||
|
select * from t1;
|
||||||
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||||
|
drop table t0;
|
||||||
#
|
#
|
||||||
# Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE
|
# Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE
|
||||||
#
|
#
|
||||||
|
@ -62,9 +62,19 @@ show create table t1;
|
|||||||
--echo #
|
--echo #
|
||||||
remove_file $mysqld_datadir/test/t1.frm;
|
remove_file $mysqld_datadir/test/t1.frm;
|
||||||
flush tables;
|
flush tables;
|
||||||
drop table t0, t1;
|
drop table t1;
|
||||||
show tables;
|
show tables;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # discover of table non-existance on drop
|
||||||
|
--echo #
|
||||||
|
select * from t0;
|
||||||
|
remove_file $mysqld_datadir/test/t0.ARZ;
|
||||||
|
flush tables;
|
||||||
|
--error ER_NO_SUCH_TABLE
|
||||||
|
select * from t1;
|
||||||
|
drop table t0;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE
|
--echo # Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -3448,9 +3448,14 @@ int handler::delete_table(const char *name)
|
|||||||
{
|
{
|
||||||
int saved_error= 0;
|
int saved_error= 0;
|
||||||
int error= 0;
|
int error= 0;
|
||||||
int enoent_or_zero= ENOENT; // Error if no file was deleted
|
int enoent_or_zero;
|
||||||
char buff[FN_REFLEN];
|
char buff[FN_REFLEN];
|
||||||
|
|
||||||
|
if (ht->discover_table)
|
||||||
|
enoent_or_zero= 0; // the table may not exist in the engine, it's ok
|
||||||
|
else
|
||||||
|
enoent_or_zero= ENOENT; // the first file of bas_ext() *must* exist
|
||||||
|
|
||||||
for (const char **ext=bas_ext(); *ext ; ext++)
|
for (const char **ext=bas_ext(); *ext ; ext++)
|
||||||
{
|
{
|
||||||
fn_format(buff, name, "", *ext, MY_UNPACK_FILENAME|MY_APPEND_EXT);
|
fn_format(buff, name, "", *ext, MY_UNPACK_FILENAME|MY_APPEND_EXT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user