Merge dator5.(none):/home/pappa/clean-mysql-5.1-kt
into dator5.(none):/home/pappa/bug18198 mysql-test/r/partition.result: Auto merged mysql-test/r/partition_range.result: Auto merged mysql-test/t/partition.test: Auto merged mysql-test/t/partition_range.test: Auto merged sql/sql_table.cc: Auto merged mysql-test/r/partition_error.result: SCCS merged mysql-test/t/partition_error.test: e C quit exit
This commit is contained in:
commit
dc9613ca36
@ -16,32 +16,6 @@ partition by key(a)
|
||||
partitions 1e+300;
|
||||
ERROR 42000: Only normal integers allowed as number here near '1e+300' at line 3
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
insert into t1 values (0), (1), (2), (3);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
drop table t1;
|
||||
create table t1 (a int auto_increment primary key)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 1 NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 5 NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 8 2048 16384 0 0 0 9 NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
partition by key (a)
|
||||
(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
|
||||
ERROR 42000: Incorrect table name 'part-data'
|
||||
@ -1037,17 +1011,6 @@ set session sql_mode='';
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
partition by key (a)
|
||||
(partition p1 engine = innodb);
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
partition by key (a)
|
||||
(partition p0 engine = MERGE);
|
||||
ERROR HY000: MyISAM Merge handler cannot be used in partitioned tables
|
||||
create table t1 (a varchar(1))
|
||||
|
@ -1,45 +1,4 @@
|
||||
drop table if exists t1;
|
||||
create table t1 (a int)
|
||||
partition by range (a)
|
||||
(partition p0 values less than ((select count(*) from t1)));
|
||||
ERROR HY000: This partition function is not allowed
|
||||
create table t1 (a int)
|
||||
partition by range (a)
|
||||
(partition p0 values less than (a);
|
||||
ERROR 42S22: Unknown column 'a' in 'partition function'
|
||||
create table t1 (a int)
|
||||
partition by range (a)
|
||||
(partition p0 values less than (1));
|
||||
alter table t1 add partition (partition p1 values less than (a));
|
||||
ERROR 42S22: Unknown column 'a' in 'partition function'
|
||||
alter table t1 add partition
|
||||
(partition p1 values less than ((select count(*) from t1)));
|
||||
ERROR HY000: This partition function is not allowed
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
engine = x
|
||||
partition by key (a);
|
||||
Warnings:
|
||||
Error 1286 Unknown table engine 'x'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by list (a)
|
||||
(partition p0 values in (0));
|
||||
alter table t1 engine = x;
|
||||
Warnings:
|
||||
Error 1286 Unknown table engine 'x'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0) ENGINE = InnoDB) */
|
||||
drop table t1;
|
||||
partition by list (a)
|
||||
partitions 3
|
||||
(partition x1 values in (1,2,9,4) tablespace ts1,
|
||||
|
@ -3,3 +3,74 @@ show table status like 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
insert into t1 values (0), (1), (2), (3);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
drop table t1;
|
||||
create table t1 (a int auto_increment primary key)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 1 NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 5 NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 InnoDB 10 Compact 8 2048 16384 0 0 0 9 NULL NULL NULL latin1_swedish_ci NULL partitioned
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
partition by key (a)
|
||||
(partition p1 engine = innodb);
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
drop table t1;
|
||||
create table t1 (a date)
|
||||
engine = innodb
|
||||
partition by range (year(a))
|
||||
(partition p0 values less than (2006),
|
||||
partition p1 values less than (2007));
|
||||
explain partitions select * from t1
|
||||
where a between '2006-01-01' and '2007-06-01';
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 2 Using where
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
engine = x
|
||||
partition by key (a);
|
||||
Warnings:
|
||||
Error 1286 Unknown table engine 'x'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by list (a)
|
||||
(partition p0 values in (0));
|
||||
alter table t1 engine = x;
|
||||
Warnings:
|
||||
Error 1286 Unknown table engine 'x'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0) ENGINE = InnoDB) */
|
||||
drop table t1;
|
||||
|
@ -1,14 +1,4 @@
|
||||
drop table if exists t1;
|
||||
create table t1 (a date)
|
||||
engine = innodb
|
||||
partition by range (year(a))
|
||||
(partition p0 values less than (2006),
|
||||
partition p1 values less than (2007));
|
||||
explain partitions select * from t1
|
||||
where a between '2006-01-01' and '2007-06-01';
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 2 Using where
|
||||
drop table t1;
|
||||
create table t1 (a int unsigned)
|
||||
partition by range (a)
|
||||
(partition pnull values less than (0),
|
||||
|
1
mysql-test/t/partition-master.opt
Normal file
1
mysql-test/t/partition-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--symbolic-links=1
|
@ -33,27 +33,6 @@ create table t1 (a int)
|
||||
partition by key(a)
|
||||
partitions 1e+300;
|
||||
|
||||
#
|
||||
# Bug 21173: SHOW TABLE STATUS crashes server in InnoDB
|
||||
#
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
insert into t1 values (0), (1), (2), (3);
|
||||
show table status;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int auto_increment primary key)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 21350: Data Directory problems
|
||||
#
|
||||
@ -1184,22 +1163,6 @@ show create table t1;
|
||||
set session sql_mode='';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 19122 Crash after ALTER TABLE t1 REBUILD PARTITION p1
|
||||
#
|
||||
create table t1 (a int)
|
||||
partition by key (a)
|
||||
(partition p1 engine = innodb);
|
||||
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 19304 Partitions: MERGE handler not allowed in partitioned tables
|
||||
#
|
||||
|
@ -8,46 +8,6 @@
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Bug 18198: Partitions: Too flexible functions
|
||||
#
|
||||
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||
create table t1 (a int)
|
||||
partition by range (a)
|
||||
(partition p0 values less than ((select count(*) from t1)));
|
||||
-- error 1054
|
||||
create table t1 (a int)
|
||||
partition by range (a)
|
||||
(partition p0 values less than (a);
|
||||
|
||||
create table t1 (a int)
|
||||
partition by range (a)
|
||||
(partition p0 values less than (1));
|
||||
-- error 1054
|
||||
alter table t1 add partition (partition p1 values less than (a));
|
||||
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||
alter table t1 add partition
|
||||
(partition p1 values less than ((select count(*) from t1)));
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 20397: Partitions: Crash when using non-existing engine
|
||||
#
|
||||
create table t1 (a int)
|
||||
engine = x
|
||||
partition by key (a);
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by list (a)
|
||||
(partition p0 values in (0));
|
||||
|
||||
alter table t1 engine = x;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Partition by key stand-alone error
|
||||
#
|
||||
|
@ -8,3 +8,71 @@ create table t1 (a int) engine=innodb partition by hash(a) ;
|
||||
show table status like 't1';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 21173: SHOW TABLE STATUS crashes server in InnoDB
|
||||
#
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
insert into t1 values (0), (1), (2), (3);
|
||||
show table status;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int auto_increment primary key)
|
||||
engine = innodb
|
||||
partition by key (a);
|
||||
show table status;
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
insert into t1 values (NULL), (NULL), (NULL), (NULL);
|
||||
show table status;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 19122 Crash after ALTER TABLE t1 REBUILD PARTITION p1
|
||||
#
|
||||
create table t1 (a int)
|
||||
partition by key (a)
|
||||
(partition p1 engine = innodb);
|
||||
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
alter table t1 rebuild partition p1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 21339: Crash in Explain Partitions
|
||||
#
|
||||
create table t1 (a date)
|
||||
engine = innodb
|
||||
partition by range (year(a))
|
||||
(partition p0 values less than (2006),
|
||||
partition p1 values less than (2007));
|
||||
explain partitions select * from t1
|
||||
where a between '2006-01-01' and '2007-06-01';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 20397: Partitions: Crash when using non-existing engine
|
||||
#
|
||||
create table t1 (a int)
|
||||
engine = x
|
||||
partition by key (a);
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int)
|
||||
engine = innodb
|
||||
partition by list (a)
|
||||
(partition p0 values in (0));
|
||||
|
||||
alter table t1 engine = x;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
|
@ -9,18 +9,6 @@
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Bug 21339: Crash in Explain Partitions
|
||||
#
|
||||
create table t1 (a date)
|
||||
engine = innodb
|
||||
partition by range (year(a))
|
||||
(partition p0 values less than (2006),
|
||||
partition p1 values less than (2007));
|
||||
explain partitions select * from t1
|
||||
where a between '2006-01-01' and '2007-06-01';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# More checks for partition pruning
|
||||
#
|
||||
|
@ -1364,6 +1364,7 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
|
||||
i= 0;
|
||||
part_count= 0;
|
||||
orig_count= 0;
|
||||
first= TRUE;
|
||||
part_it.rewind();
|
||||
do
|
||||
{
|
||||
@ -1391,9 +1392,16 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
|
||||
DBUG_RETURN(ER_OUTOFMEMORY);
|
||||
}
|
||||
} while (++j < no_subparts);
|
||||
if (part_elem->part_state == PART_CHANGED)
|
||||
orig_count+= no_subparts;
|
||||
else if (temp_partitions && first)
|
||||
{
|
||||
orig_count+= (no_subparts * temp_partitions);
|
||||
first= FALSE;
|
||||
}
|
||||
}
|
||||
} while (++i < no_parts);
|
||||
|
||||
first= FALSE;
|
||||
/*
|
||||
Step 5:
|
||||
Create the new partitions and also open, lock and call external_lock
|
||||
@ -3655,7 +3663,10 @@ int ha_partition::read_range_first(const key_range *start_key,
|
||||
|
||||
if (!start_key) // Read first record
|
||||
{
|
||||
m_index_scan_type= partition_index_first;
|
||||
if (m_ordered)
|
||||
m_index_scan_type= partition_index_first;
|
||||
else
|
||||
m_index_scan_type= partition_index_first_unordered;
|
||||
error= common_first_last(m_rec0);
|
||||
}
|
||||
else
|
||||
@ -3869,6 +3880,18 @@ int ha_partition::handle_unordered_scan_next_partition(byte * buf)
|
||||
DBUG_PRINT("info", ("index_first on partition %d", i));
|
||||
error= file->index_first(buf);
|
||||
break;
|
||||
case partition_index_first_unordered:
|
||||
/*
|
||||
We perform a scan without sorting and this means that we
|
||||
should not use the index_first since not all handlers
|
||||
support it and it is also unnecessary to restrict sort
|
||||
order.
|
||||
*/
|
||||
DBUG_PRINT("info", ("read_range_first on partition %d", i));
|
||||
table->record[0]= buf;
|
||||
error= file->read_range_first(0, end_range, eq_range, 0);
|
||||
table->record[0]= m_rec0;
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(FALSE);
|
||||
DBUG_RETURN(1);
|
||||
|
@ -45,9 +45,10 @@ private:
|
||||
{
|
||||
partition_index_read= 0,
|
||||
partition_index_first= 1,
|
||||
partition_index_last= 2,
|
||||
partition_index_read_last= 3,
|
||||
partition_no_index_scan= 4
|
||||
partition_index_first_unordered= 2,
|
||||
partition_index_last= 3,
|
||||
partition_index_read_last= 4,
|
||||
partition_no_index_scan= 5
|
||||
};
|
||||
/* Data for the partition handler */
|
||||
int m_mode; // Open mode
|
||||
|
@ -1132,6 +1132,26 @@ bool execute_ddl_log_entry(THD *thd, uint first_entry)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Close the ddl log
|
||||
SYNOPSIS
|
||||
close_ddl_log()
|
||||
RETURN VALUES
|
||||
NONE
|
||||
*/
|
||||
|
||||
static void close_ddl_log()
|
||||
{
|
||||
DBUG_ENTER("close_ddl_log");
|
||||
if (global_ddl_log.file_id >= 0)
|
||||
{
|
||||
VOID(my_close(global_ddl_log.file_id, MYF(MY_WME)));
|
||||
global_ddl_log.file_id= (File) -1;
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Execute the ddl log at recovery of MySQL Server
|
||||
SYNOPSIS
|
||||
@ -1183,6 +1203,7 @@ void execute_ddl_log_recovery()
|
||||
}
|
||||
}
|
||||
}
|
||||
close_ddl_log();
|
||||
create_ddl_log_file_name(file_name);
|
||||
VOID(my_delete(file_name, MYF(0)));
|
||||
global_ddl_log.recovery_phase= FALSE;
|
||||
@ -1220,11 +1241,7 @@ void release_ddl_log()
|
||||
my_free((char*)free_list, MYF(0));
|
||||
free_list= tmp;
|
||||
}
|
||||
if (global_ddl_log.file_id >= 0)
|
||||
{
|
||||
VOID(my_close(global_ddl_log.file_id, MYF(MY_WME)));
|
||||
global_ddl_log.file_id= (File) -1;
|
||||
}
|
||||
close_ddl_log();
|
||||
global_ddl_log.inited= 0;
|
||||
pthread_mutex_unlock(&LOCK_gdl);
|
||||
VOID(pthread_mutex_destroy(&LOCK_gdl));
|
||||
|
Loading…
x
Reference in New Issue
Block a user