mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into zim.tangent.org:/home/brian/mysql/cleanup-5.1
This commit is contained in:
commit
033b29eee0
7 changed files with 178 additions and 2 deletions
|
@ -12537,4 +12537,59 @@ SELECT c FROM t5 WHERE a IN (32, 23, 5);
|
|||
c
|
||||
NULL
|
||||
posterity
|
||||
drop table t1;
|
||||
create table t1 (v varchar(32));
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
alter table t1 change v v2 varchar(32);
|
||||
select * from t1;
|
||||
v2
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
alter table t1 change v2 v varchar(64);
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
update t1 set v = 'lmn' where v = 'hij';
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
abc
|
||||
lmn
|
||||
3r4f
|
||||
alter table t1 add i int auto_increment not null primary key first;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
3 lmn
|
||||
4 3r4f
|
||||
update t1 set i=5 where i=3;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
5 lmn
|
||||
4 3r4f
|
||||
alter table t1 change i i bigint;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
5 lmn
|
||||
4 3r4f
|
||||
alter table t1 add unique key (i, v);
|
||||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||||
i v
|
||||
4 3r4f
|
||||
drop table t1, t2, t4, t5;
|
||||
|
|
|
@ -5017,3 +5017,58 @@ insert t1 values (1),(2),(3),(4),(5);
|
|||
truncate table t1;
|
||||
affected rows: 0
|
||||
drop table t1;
|
||||
create table t1 (v varchar(32));
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
alter table t1 change v v2 varchar(32);
|
||||
select * from t1;
|
||||
v2
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
alter table t1 change v2 v varchar(64);
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
abc
|
||||
hij
|
||||
3r4f
|
||||
update t1 set v = 'lmn' where v = 'hij';
|
||||
select * from t1;
|
||||
v
|
||||
def
|
||||
abc
|
||||
lmn
|
||||
3r4f
|
||||
alter table t1 add i int auto_increment not null primary key first;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
3 lmn
|
||||
4 3r4f
|
||||
update t1 set i=5 where i=3;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
5 lmn
|
||||
4 3r4f
|
||||
alter table t1 change i i bigint;
|
||||
select * from t1;
|
||||
i v
|
||||
1 def
|
||||
2 abc
|
||||
5 lmn
|
||||
4 3r4f
|
||||
alter table t1 add unique key (i, v);
|
||||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||||
i v
|
||||
4 3r4f
|
||||
drop table t1;
|
||||
|
|
|
@ -1456,6 +1456,34 @@ SELECT c FROM t5;
|
|||
SELECT c FROM t5 WHERE a =3;
|
||||
SELECT c FROM t5 WHERE a IN (32, 23, 5);
|
||||
|
||||
# Adding this in case someone tries to add fast alter table and doesn't tes
|
||||
# it.
|
||||
# Some additional tests for new, faster alter table. Note that most of the
|
||||
# whole alter table code is being tested all around the test suite already.
|
||||
#
|
||||
|
||||
drop table t1;
|
||||
create table t1 (v varchar(32));
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
# Fast alter, no copy performed
|
||||
alter table t1 change v v2 varchar(32);
|
||||
select * from t1;
|
||||
# Fast alter, no copy performed
|
||||
alter table t1 change v2 v varchar(64);
|
||||
select * from t1;
|
||||
update t1 set v = 'lmn' where v = 'hij';
|
||||
select * from t1;
|
||||
# Regular alter table
|
||||
alter table t1 add i int auto_increment not null primary key first;
|
||||
select * from t1;
|
||||
update t1 set i=5 where i=3;
|
||||
select * from t1;
|
||||
alter table t1 change i i bigint;
|
||||
select * from t1;
|
||||
alter table t1 add unique key (i, v);
|
||||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||||
|
||||
#
|
||||
# Cleanup, test is over
|
||||
#
|
||||
|
|
|
@ -1418,3 +1418,29 @@ truncate table t1; -- truncate
|
|||
--disable_info
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Some additional tests for new, faster alter table. Note that most of the
|
||||
# whole alter table code is being tested all around the test suite already.
|
||||
#
|
||||
|
||||
create table t1 (v varchar(32));
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
# Fast alter, no copy performed
|
||||
alter table t1 change v v2 varchar(32);
|
||||
select * from t1;
|
||||
# Fast alter, no copy performed
|
||||
alter table t1 change v2 v varchar(64);
|
||||
select * from t1;
|
||||
update t1 set v = 'lmn' where v = 'hij';
|
||||
select * from t1;
|
||||
# Regular alter table
|
||||
alter table t1 add i int auto_increment not null primary key first;
|
||||
select * from t1;
|
||||
update t1 set i=5 where i=3;
|
||||
select * from t1;
|
||||
alter table t1 change i i bigint;
|
||||
select * from t1;
|
||||
alter table t1 add unique key (i, v);
|
||||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||||
drop table t1;
|
||||
|
|
|
@ -177,7 +177,9 @@ handlerton archive_hton = {
|
|||
NULL, /* Partition flags */
|
||||
NULL, /* Alter table flags */
|
||||
NULL, /* Alter interface */
|
||||
HTON_NO_FLAGS
|
||||
HTON_NO_FLAGS,
|
||||
NULL, /* binlog_func */
|
||||
NULL /* binlog_log_query */
|
||||
};
|
||||
|
||||
static handler *archive_create_handler(TABLE_SHARE *table)
|
||||
|
|
|
@ -92,7 +92,9 @@ handlerton tina_hton= {
|
|||
NULL, /* Alter table flags */
|
||||
NULL, /* Alter Tablespace */
|
||||
NULL, /* Fill FILES Table */
|
||||
HTON_CAN_RECREATE
|
||||
HTON_CAN_RECREATE,
|
||||
NULL, /* binlog_func */
|
||||
NULL /* binlog_log_query */
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -1018,6 +1020,12 @@ int ha_tina::create(const char *name, TABLE *table_arg,
|
|||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
bool ha_tina::check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
uint table_changes)
|
||||
{
|
||||
return COMPATIBLE_DATA_YES;
|
||||
}
|
||||
|
||||
mysql_declare_plugin
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
|
|
|
@ -122,6 +122,8 @@ public:
|
|||
int extra(enum ha_extra_function operation);
|
||||
int delete_all_rows(void);
|
||||
int create(const char *name, TABLE *form, HA_CREATE_INFO *create_info);
|
||||
bool check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
uint table_changes);
|
||||
|
||||
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
||||
enum thr_lock_type lock_type);
|
||||
|
|
Loading…
Reference in a new issue