Loading mysql-test/r/partition.result +4 −0 Original line number Diff line number Diff line Loading @@ -306,5 +306,9 @@ partition by range (f_int1) subpartition by hash (f_int1) (partition part1 values less than (1000) (subpartition subpart11 engine = memory)); set session storage_engine='myisam'; create table t1 (f_int1 integer, f_int2 integer, primary key (f_int1)) partition by hash(f_int1) partitions 2; insert into t1 values (1,1),(2,2); replace into t1 values (1,1),(2,2); drop table t1; End of 5.1 tests mysql-test/t/partition.test +8 −0 Original line number Diff line number Diff line Loading @@ -390,6 +390,14 @@ create table t1 (f_int1 int(11) default null) engine = memory (partition part1 values less than (1000) (subpartition subpart11 engine = memory)); set session storage_engine='myisam'; # # Bug #16782: Crash using REPLACE on table with primary key # create table t1 (f_int1 integer, f_int2 integer, primary key (f_int1)) partition by hash(f_int1) partitions 2; insert into t1 values (1,1),(2,2); replace into t1 values (1,1),(2,2); drop table t1; --echo End of 5.1 tests sql/ha_partition.cc +4 −3 Original line number Diff line number Diff line Loading @@ -360,7 +360,7 @@ int ha_partition::ha_initialise() other parameters are calculated on demand. HA_FILE_BASED is always set for partition handler since we use a special file for handling names of partitions, engine types. HA_CAN_GEOMETRY, HA_CAN_FULLTEXT, HA_CAN_SQL_HANDLER, HA_CAN_GEOMETRY, HA_CAN_FULLTEXT, HA_CAN_SQL_HANDLER, HA_DUPP_POS, HA_CAN_INSERT_DELAYED is disabled until further investigated. */ m_table_flags= m_file[0]->table_flags(); Loading @@ -383,8 +383,8 @@ int ha_partition::ha_initialise() m_pkey_is_clustered= FALSE; m_table_flags&= file->table_flags(); } while (*(++file_array)); m_table_flags&= ~(HA_CAN_GEOMETRY & HA_CAN_FULLTEXT & HA_CAN_SQL_HANDLER & HA_CAN_INSERT_DELAYED); m_table_flags&= ~(HA_CAN_GEOMETRY | HA_CAN_FULLTEXT | HA_DUPP_POS | HA_CAN_SQL_HANDLER | HA_CAN_INSERT_DELAYED); m_table_flags|= HA_FILE_BASED | HA_REC_NOT_IN_SEQ; DBUG_RETURN(0); } Loading Loading @@ -4684,6 +4684,7 @@ int ha_partition::extra(enum ha_extra_function operation) case HA_EXTRA_PREPARE_FOR_UPDATE: case HA_EXTRA_PREPARE_FOR_DELETE: case HA_EXTRA_FORCE_REOPEN: case HA_EXTRA_FLUSH_CACHE: { if (m_myisam) DBUG_RETURN(loop_extra(operation)); Loading Loading
mysql-test/r/partition.result +4 −0 Original line number Diff line number Diff line Loading @@ -306,5 +306,9 @@ partition by range (f_int1) subpartition by hash (f_int1) (partition part1 values less than (1000) (subpartition subpart11 engine = memory)); set session storage_engine='myisam'; create table t1 (f_int1 integer, f_int2 integer, primary key (f_int1)) partition by hash(f_int1) partitions 2; insert into t1 values (1,1),(2,2); replace into t1 values (1,1),(2,2); drop table t1; End of 5.1 tests
mysql-test/t/partition.test +8 −0 Original line number Diff line number Diff line Loading @@ -390,6 +390,14 @@ create table t1 (f_int1 int(11) default null) engine = memory (partition part1 values less than (1000) (subpartition subpart11 engine = memory)); set session storage_engine='myisam'; # # Bug #16782: Crash using REPLACE on table with primary key # create table t1 (f_int1 integer, f_int2 integer, primary key (f_int1)) partition by hash(f_int1) partitions 2; insert into t1 values (1,1),(2,2); replace into t1 values (1,1),(2,2); drop table t1; --echo End of 5.1 tests
sql/ha_partition.cc +4 −3 Original line number Diff line number Diff line Loading @@ -360,7 +360,7 @@ int ha_partition::ha_initialise() other parameters are calculated on demand. HA_FILE_BASED is always set for partition handler since we use a special file for handling names of partitions, engine types. HA_CAN_GEOMETRY, HA_CAN_FULLTEXT, HA_CAN_SQL_HANDLER, HA_CAN_GEOMETRY, HA_CAN_FULLTEXT, HA_CAN_SQL_HANDLER, HA_DUPP_POS, HA_CAN_INSERT_DELAYED is disabled until further investigated. */ m_table_flags= m_file[0]->table_flags(); Loading @@ -383,8 +383,8 @@ int ha_partition::ha_initialise() m_pkey_is_clustered= FALSE; m_table_flags&= file->table_flags(); } while (*(++file_array)); m_table_flags&= ~(HA_CAN_GEOMETRY & HA_CAN_FULLTEXT & HA_CAN_SQL_HANDLER & HA_CAN_INSERT_DELAYED); m_table_flags&= ~(HA_CAN_GEOMETRY | HA_CAN_FULLTEXT | HA_DUPP_POS | HA_CAN_SQL_HANDLER | HA_CAN_INSERT_DELAYED); m_table_flags|= HA_FILE_BASED | HA_REC_NOT_IN_SEQ; DBUG_RETURN(0); } Loading Loading @@ -4684,6 +4684,7 @@ int ha_partition::extra(enum ha_extra_function operation) case HA_EXTRA_PREPARE_FOR_UPDATE: case HA_EXTRA_PREPARE_FOR_DELETE: case HA_EXTRA_FORCE_REOPEN: case HA_EXTRA_FLUSH_CACHE: { if (m_myisam) DBUG_RETURN(loop_extra(operation)); Loading