Commit 90717a3b authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/jimw/my/mysql-5.1-16782

into  mysql.com:/home/jimw/my/mysql-5.1-clean


sql/ha_partition.cc:
  Auto merged
mysql-test/r/partition.result:
  Resolve conflicts
mysql-test/t/partition.test:
  Resolve conflicts
parents 59f2e885 44a2ccc1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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
+8 −0
Original line number Diff line number Diff line
@@ -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
+4 −3
Original line number Diff line number Diff line
@@ -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();
@@ -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);
}
@@ -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));