diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/r/partition.result clean-bug21210/mysql-test/r/partition.result --- clean-compare/mysql-test/r/partition.result 2006-09-08 03:37:03 -04:00 +++ clean-bug21210/mysql-test/r/partition.result 2006-09-19 07:44:14 -04:00 @@ -21,32 +21,6 @@ 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' @@ -1039,17 +1013,6 @@ `a` int(11) DEFAULT NULL ) /*!50100 PARTITION BY KEY (a) (PARTITION p0) */ 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) diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/r/partition_error.result clean-bug21210/mysql-test/r/partition_error.result --- clean-compare/mysql-test/r/partition_error.result 2006-06-21 18:53:30 -04:00 +++ clean-bug21210/mysql-test/r/partition_error.result 2006-09-08 03:17:59 -04:00 @@ -1,28 +1,4 @@ drop table if exists 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, diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/r/partition_innodb.result clean-bug21210/mysql-test/r/partition_innodb.result --- clean-compare/mysql-test/r/partition_innodb.result 2006-05-18 13:16:42 -04:00 +++ clean-bug21210/mysql-test/r/partition_innodb.result 2006-09-08 03:17:59 -04:00 @@ -3,3 +3,74 @@ 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; diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/r/partition_range.result clean-bug21210/mysql-test/r/partition_range.result --- clean-compare/mysql-test/r/partition_range.result 2006-08-05 16:12:22 -04:00 +++ clean-bug21210/mysql-test/r/partition_range.result 2006-09-08 03:17:59 -04:00 @@ -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), diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/t/partition-master.opt clean-bug21210/mysql-test/t/partition-master.opt --- clean-compare/mysql-test/t/partition-master.opt 1969-12-31 19:00:00 -05:00 +++ clean-bug21210/mysql-test/t/partition-master.opt 2006-09-08 05:50:38 -04:00 @@ -0,0 +1 @@ +--symbolic-links=1 diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/t/partition.test clean-bug21210/mysql-test/t/partition.test --- clean-compare/mysql-test/t/partition.test 2006-09-06 14:23:37 -04:00 +++ clean-bug21210/mysql-test/t/partition.test 2006-09-19 07:44:14 -04:00 @@ -43,27 +43,6 @@ 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 # -- error 1103 @@ -1191,22 +1170,6 @@ set session sql_mode='no_table_options'; 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; # diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/t/partition_error.test clean-bug21210/mysql-test/t/partition_error.test --- clean-compare/mysql-test/t/partition_error.test 2006-06-20 16:38:38 -04:00 +++ clean-bug21210/mysql-test/t/partition_error.test 2006-09-08 03:17:59 -04:00 @@ -8,23 +8,6 @@ drop table if exists t1; --enable_warnings -# -# 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 diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/t/partition_innodb.test clean-bug21210/mysql-test/t/partition_innodb.test --- clean-compare/mysql-test/t/partition_innodb.test 2006-06-12 03:05:19 -04:00 +++ clean-bug21210/mysql-test/t/partition_innodb.test 2006-09-08 03:17:59 -04:00 @@ -8,3 +8,71 @@ 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; + + diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/mysql-test/t/partition_range.test clean-bug21210/mysql-test/t/partition_range.test --- clean-compare/mysql-test/t/partition_range.test 2006-08-05 16:12:22 -04:00 +++ clean-bug21210/mysql-test/t/partition_range.test 2006-09-08 03:17:59 -04:00 @@ -10,18 +10,6 @@ --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 # create table t1 (a int unsigned) diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet clean-compare/sql/ha_partition.cc clean-bug21210/sql/ha_partition.cc --- clean-compare/sql/ha_partition.cc 2006-09-19 08:01:40 -04:00 +++ clean-bug21210/sql/ha_partition.cc 2006-09-19 07:48:37 -04:00 @@ -1364,6 +1364,7 @@ i= 0; part_count= 0; orig_count= 0; + first= TRUE; part_it.rewind(); do { @@ -1391,9 +1392,16 @@ 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