Commit d53350b3 authored by unknown's avatar unknown

fix for bug 12207 (alter table discard tablespace on MyISAM table

causes ERROR 2013).
(all-in-one approved patch)


mysql-test/r/alter_table.result:
  result for test for bug #12207
  (alter table discard database works on mysiam and causes error 2013)
mysql-test/t/alter_table.test:
  test for bug #12207 (alter table discard tablescpae on MyISAM table
  causes ERROR 2013)
sql/sql_table.cc:
  send all error message to table->file->print_error() thus not missing
  handing of some (like engine not supported).
  
  fix for bug #12207 (alter table discard tablespace on MyISAM table
  causes ERROR 2013)
parent 7e128939
...@@ -523,6 +523,10 @@ alter table t1 drop key no_such_key; ...@@ -523,6 +523,10 @@ alter table t1 drop key no_such_key;
ERROR 42000: Can't DROP 'no_such_key'; check that column/key exists ERROR 42000: Can't DROP 'no_such_key'; check that column/key exists
alter table t1 drop key a; alter table t1 drop key a;
drop table t1; drop table t1;
CREATE TABLE T12207(a int) ENGINE=MYISAM;
ALTER TABLE T12207 DISCARD TABLESPACE;
ERROR HY000: Table storage engine for 'T12207' doesn't have this option
DROP TABLE T12207;
create table t1 (a text) character set koi8r; create table t1 (a text) character set koi8r;
insert into t1 values (_koi8r''); insert into t1 values (_koi8r'');
select hex(a) from t1; select hex(a) from t1;
......
...@@ -337,6 +337,14 @@ alter table t1 drop key no_such_key; ...@@ -337,6 +337,14 @@ alter table t1 drop key no_such_key;
alter table t1 drop key a; alter table t1 drop key a;
drop table t1; drop table t1;
#
# BUG 12207 alter table ... discard table space on MyISAM table causes ERROR 2013 (HY000)
#
CREATE TABLE T12207(a int) ENGINE=MYISAM;
--error 1031
ALTER TABLE T12207 DISCARD TABLESPACE;
DROP TABLE T12207;
# #
# Bug #6479 ALTER TABLE ... changing charset fails for TEXT columns # Bug #6479 ALTER TABLE ... changing charset fails for TEXT columns
# #
......
...@@ -2820,14 +2820,14 @@ mysql_discard_or_import_tablespace(THD *thd, ...@@ -2820,14 +2820,14 @@ mysql_discard_or_import_tablespace(THD *thd,
err: err:
close_thread_tables(thd); close_thread_tables(thd);
thd->tablespace_op=FALSE; thd->tablespace_op=FALSE;
if (error == 0) if (error == 0)
{ {
send_ok(thd); send_ok(thd);
DBUG_RETURN(0); DBUG_RETURN(0);
} }
if (error == HA_ERR_ROW_IS_REFERENCED) table->file->print_error(error, MYF(0));
my_error(ER_ROW_IS_REFERENCED, MYF(0));
DBUG_RETURN(-1); DBUG_RETURN(-1);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment