mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
more tests, moving code around
This commit is contained in:
@ -1693,8 +1693,10 @@ INSERT INTO tm1 VALUES (1,1,1), (2,2,2);
|
|||||||
INSERT INTO tm2 VALUES (1,1,1), (2,2,2);
|
INSERT INTO tm2 VALUES (1,1,1), (2,2,2);
|
||||||
ALTER TABLE ti1;
|
ALTER TABLE ti1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
|
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||||
ALTER TABLE tm1;
|
ALTER TABLE tm1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
|
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||||
ALTER TABLE ti1 ADD COLUMN d VARCHAR(200);
|
ALTER TABLE ti1 ADD COLUMN d VARCHAR(200);
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||||
|
@ -12,6 +12,9 @@ ERROR 0A000: LOCK=NONE/SHARED is not supported for this operation. Try LOCK=EXCL
|
|||||||
alter online table t1 rename to t2;
|
alter online table t1 rename to t2;
|
||||||
ERROR 0A000: LOCK=NONE/SHARED is not supported for this operation. Try LOCK=EXCLUSIVE.
|
ERROR 0A000: LOCK=NONE/SHARED is not supported for this operation. Try LOCK=EXCLUSIVE.
|
||||||
alter online table t1 algorithm=INPLACE, lock=NONE;
|
alter online table t1 algorithm=INPLACE, lock=NONE;
|
||||||
|
alter online table t1;
|
||||||
|
alter table t1 algorithm=INPLACE;
|
||||||
|
alter table t1 lock=NONE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create temporary table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b'));
|
create temporary table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b'));
|
||||||
insert into t1 (a) values (1),(2),(3);
|
insert into t1 (a) values (1),(2),(3);
|
||||||
|
@ -528,6 +528,7 @@ SET DEBUG_SYNC= 'RESET';
|
|||||||
# This should not do anything
|
# This should not do anything
|
||||||
ALTER TABLE t1;
|
ALTER TABLE t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
|
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||||
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild';
|
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild';
|
||||||
# Check that we rebuild the table
|
# Check that we rebuild the table
|
||||||
ALTER TABLE t1 engine=innodb;
|
ALTER TABLE t1 engine=innodb;
|
||||||
|
@ -27,6 +27,9 @@ alter online table t1 rename to t2;
|
|||||||
# No OPs
|
# No OPs
|
||||||
|
|
||||||
alter online table t1 algorithm=INPLACE, lock=NONE;
|
alter online table t1 algorithm=INPLACE, lock=NONE;
|
||||||
|
alter online table t1;
|
||||||
|
alter table t1 algorithm=INPLACE;
|
||||||
|
alter table t1 lock=NONE;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
@ -8429,9 +8429,25 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
mysql_audit_alter_table(thd, table_list);
|
mysql_audit_alter_table(thd, table_list);
|
||||||
|
|
||||||
THD_STAGE_INFO(thd, stage_setup);
|
THD_STAGE_INFO(thd, stage_setup);
|
||||||
|
|
||||||
|
handle_if_exists_options(thd, table, alter_info);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Look if we have to do anything at all.
|
||||||
|
ALTER can become NOOP after handling
|
||||||
|
the IF (NOT) EXISTS options.
|
||||||
|
*/
|
||||||
|
if (alter_info->flags == 0)
|
||||||
|
{
|
||||||
|
my_snprintf(alter_ctx.tmp_name, sizeof(alter_ctx.tmp_name),
|
||||||
|
ER(ER_INSERT_INFO), 0L, 0L,
|
||||||
|
thd->get_stmt_da()->current_statement_warn_count());
|
||||||
|
my_ok(thd, 0L, 0L, alter_ctx.tmp_name);
|
||||||
|
DBUG_RETURN(false);
|
||||||
|
}
|
||||||
|
|
||||||
if (!(alter_info->flags & ~(Alter_info::ALTER_RENAME |
|
if (!(alter_info->flags & ~(Alter_info::ALTER_RENAME |
|
||||||
Alter_info::ALTER_KEYS_ONOFF)) &&
|
Alter_info::ALTER_KEYS_ONOFF)) &&
|
||||||
alter_info->flags != 0 &&
|
|
||||||
alter_info->requested_algorithm !=
|
alter_info->requested_algorithm !=
|
||||||
Alter_info::ALTER_TABLE_ALGORITHM_COPY &&
|
Alter_info::ALTER_TABLE_ALGORITHM_COPY &&
|
||||||
!table->s->tmp_table) // no need to touch frm
|
!table->s->tmp_table) // no need to touch frm
|
||||||
@ -8450,23 +8466,6 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
DBUG_RETURN(res);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (alter_info->flags != 0)
|
|
||||||
handle_if_exists_options(thd, table, alter_info);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Look if we have to do anything at all.
|
|
||||||
Normally ALTER can become NOOP only after handling
|
|
||||||
the IF (NOT) EXISTS options.
|
|
||||||
*/
|
|
||||||
if (alter_info->flags == 0)
|
|
||||||
{
|
|
||||||
my_snprintf(alter_ctx.tmp_name, sizeof(alter_ctx.tmp_name),
|
|
||||||
ER(ER_INSERT_INFO), 0L, 0L,
|
|
||||||
thd->get_stmt_da()->current_statement_warn_count());
|
|
||||||
my_ok(thd, 0L, 0L, alter_ctx.tmp_name);
|
|
||||||
DBUG_RETURN(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* We have to do full alter table. */
|
/* We have to do full alter table. */
|
||||||
|
|
||||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||||
|
Reference in New Issue
Block a user