Commit b841274a authored by unknown's avatar unknown

Merge bk-internal:/home/bk/mysql-5.1-new

into  xiphis.org:/home/acurtis/mysql-5.1-merge


sql/sql_table.cc:
  Auto merged
parents d9557115 7a1eba99
...@@ -147,3 +147,15 @@ set autocommit=1; ...@@ -147,3 +147,15 @@ set autocommit=1;
--replace_column 2 # 5 # --replace_column 2 # 5 #
--replace_regex /table_id: [0-9]+/table_id: #/ --replace_regex /table_id: [0-9]+/table_id: #/
show binlog events; show binlog events;
#
# BUG#10952 - alter table ... lost data without errors and warnings
#
drop table if exists t1;
create table t1 (c char(20)) engine=MyISAM;
insert into t1 values ("Monty"),("WAX"),("Walrus");
--error 1031
alter table t1 engine=blackhole;
drop table t1;
# End of 5.0 tests
...@@ -149,3 +149,9 @@ master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=blackho ...@@ -149,3 +149,9 @@ master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=blackho
master-bin.000001 # Query 1 # use `test`; BEGIN master-bin.000001 # Query 1 # use `test`; BEGIN
master-bin.000001 # Query 1 # use `test`; insert into t1 values(1) master-bin.000001 # Query 1 # use `test`; insert into t1 values(1)
master-bin.000001 # Query 1 # use `test`; COMMIT master-bin.000001 # Query 1 # use `test`; COMMIT
drop table if exists t1;
create table t1 (c char(20)) engine=MyISAM;
insert into t1 values ("Monty"),("WAX"),("Walrus");
alter table t1 engine=blackhole;
ERROR HY000: Table storage engine for 't1' doesn't have this option
drop table t1;
...@@ -771,3 +771,11 @@ Table Op Msg_type Msg_text ...@@ -771,3 +771,11 @@ Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
test.t2 check status OK test.t2 check status OK
drop table t1, t2, t3; drop table t1, t2, t3;
drop table if exists t1;
Warnings:
Note 1051 Unknown table 't1'
create table t1 (c char(20)) engine=MyISAM;
insert into t1 values ("Monty"),("WAX"),("Walrus");
alter table t1 engine=MERGE;
ERROR HY000: Table storage engine for 't1' doesn't have this option
drop table t1;
...@@ -382,3 +382,15 @@ check table t1, t2; ...@@ -382,3 +382,15 @@ check table t1, t2;
drop table t1, t2, t3; drop table t1, t2, t3;
# End of 4.1 tests # End of 4.1 tests
#
# BUG#10952 - alter table ... lost data without errors and warnings
#
drop table if exists t1;
create table t1 (c char(20)) engine=MyISAM;
insert into t1 values ("Monty"),("WAX"),("Walrus");
--error 1031
alter table t1 engine=MERGE;
drop table t1;
# End of 5.0 tests
...@@ -74,7 +74,7 @@ handlerton myisammrg_hton= { ...@@ -74,7 +74,7 @@ handlerton myisammrg_hton= {
NULL, /* Alter table flags */ NULL, /* Alter table flags */
NULL, /* Alter Tablespace */ NULL, /* Alter Tablespace */
NULL, /* Fill Files Table */ NULL, /* Fill Files Table */
HTON_CAN_RECREATE, HTON_CAN_RECREATE | HTON_ALTER_CANNOT_CREATE,
NULL, /* binlog_func */ NULL, /* binlog_func */
NULL, /* binlog_log_query */ NULL, /* binlog_log_query */
NULL /* release_temporary_latches */ NULL /* release_temporary_latches */
......
...@@ -603,6 +603,7 @@ struct show_table_alias_st { ...@@ -603,6 +603,7 @@ struct show_table_alias_st {
#define HTON_FLUSH_AFTER_RENAME (1 << 4) #define HTON_FLUSH_AFTER_RENAME (1 << 4)
#define HTON_NOT_USER_SELECTABLE (1 << 5) #define HTON_NOT_USER_SELECTABLE (1 << 5)
#define HTON_TEMPORARY_NOT_SUPPORTED (1 << 6) //Having temporary tables not supported #define HTON_TEMPORARY_NOT_SUPPORTED (1 << 6) //Having temporary tables not supported
#define HTON_ALTER_CANNOT_CREATE (1 << 7) //Cannot use alter to create
typedef struct st_thd_trans typedef struct st_thd_trans
{ {
......
...@@ -5105,7 +5105,9 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -5105,7 +5105,9 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
ha_resolve_storage_engine_name(old_db_type), ha_resolve_storage_engine_name(old_db_type),
ha_resolve_storage_engine_name(new_db_type))); ha_resolve_storage_engine_name(new_db_type)));
if (ha_check_storage_engine_flag(old_db_type, HTON_ALTER_NOT_SUPPORTED) || if (ha_check_storage_engine_flag(old_db_type, HTON_ALTER_NOT_SUPPORTED) ||
ha_check_storage_engine_flag(new_db_type, HTON_ALTER_NOT_SUPPORTED)) ha_check_storage_engine_flag(new_db_type, HTON_ALTER_NOT_SUPPORTED) ||
(old_db_type != new_db_type &&
ha_check_storage_engine_flag(new_db_type, HTON_ALTER_CANNOT_CREATE)))
{ {
DBUG_PRINT("info", ("doesn't support alter")); DBUG_PRINT("info", ("doesn't support alter"));
my_error(ER_ILLEGAL_HA, MYF(0), table_name); my_error(ER_ILLEGAL_HA, MYF(0), table_name);
......
...@@ -67,7 +67,7 @@ handlerton blackhole_hton= { ...@@ -67,7 +67,7 @@ handlerton blackhole_hton= {
NULL, /* Alter table flags */ NULL, /* Alter table flags */
NULL, /* Alter Tablespace */ NULL, /* Alter Tablespace */
NULL, /* Fill FILES table */ NULL, /* Fill FILES table */
HTON_CAN_RECREATE, HTON_CAN_RECREATE | HTON_ALTER_CANNOT_CREATE,
NULL, /* binlog_func */ NULL, /* binlog_func */
NULL, /* binlog_log_query */ NULL, /* binlog_log_query */
NULL /* release_temporary_latches */ NULL /* release_temporary_latches */
......
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