mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +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_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,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`; 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;
|
||||||
|
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.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;
|
|||||||
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= {
|
|||||||
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 {
|
|||||||
#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
|
||||||
{
|
{
|
||||||
|
@ -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(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= {
|
|||||||
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 */
|
||||||
|
Reference in New Issue
Block a user