mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
manual merge bug#10952
mysql-test/r/merge.result: Auto merged mysql-test/t/merge.test: Auto merged sql/sql_table.cc: Auto merged
This commit is contained in:
@ -147,3 +147,15 @@ set autocommit=1;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
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,11 @@ 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`; insert into t1 values(1)
|
||||
master-bin.000001 # Query 1 # use `test`; COMMIT
|
||||
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=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
|
||||
test.t1 check status OK
|
||||
test.t2 check status OK
|
||||
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;
|
||||
drop table t1, t2, t3;
|
||||
|
||||
# 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= {
|
||||
NULL, /* Alter table flags */
|
||||
NULL, /* Alter Tablespace */
|
||||
NULL, /* Fill Files Table */
|
||||
HTON_CAN_RECREATE,
|
||||
HTON_CAN_RECREATE | HTON_ALTER_CANNOT_CREATE,
|
||||
NULL, /* binlog_func */
|
||||
NULL, /* binlog_log_query */
|
||||
NULL /* release_temporary_latches */
|
||||
|
@ -603,6 +603,7 @@ struct show_table_alias_st {
|
||||
#define HTON_FLUSH_AFTER_RENAME (1 << 4)
|
||||
#define HTON_NOT_USER_SELECTABLE (1 << 5)
|
||||
#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
|
||||
{
|
||||
|
@ -5098,7 +5098,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(new_db_type)));
|
||||
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"));
|
||||
my_error(ER_ILLEGAL_HA, MYF(0), table_name);
|
||||
|
@ -67,7 +67,7 @@ handlerton blackhole_hton= {
|
||||
NULL, /* Alter table flags */
|
||||
NULL, /* Alter Tablespace */
|
||||
NULL, /* Fill FILES table */
|
||||
HTON_CAN_RECREATE,
|
||||
HTON_CAN_RECREATE | HTON_ALTER_CANNOT_CREATE,
|
||||
NULL, /* binlog_func */
|
||||
NULL, /* binlog_log_query */
|
||||
NULL /* release_temporary_latches */
|
||||
|
Reference in New Issue
Block a user