Commit 38076200 authored by unknown's avatar unknown
Browse files

Merge c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1-new

into  c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug19067

parents d4e3ca78 1727aec6
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1009,4 +1009,15 @@ select auto_increment from information_schema.tables where table_name='t1';
select * from t1;
drop table t1;

#
# BUG 19067 ALTER TABLE .. ADD PARTITION for subpartitioned table crashes
#
create table t1 (a int)
partition by range (a)
subpartition by key (a)
(partition p0 values less than (1));
alter table t1 add partition (partition p1 values less than (2));
alter table t1 reorganize partition p1 into (partition p1 values less than (3));
drop table t1;

--echo End of 5.1 tests
+7 −7
Original line number Diff line number Diff line
@@ -714,18 +714,18 @@ bool partition_info::check_partition_info(handlerton **eng_type,
        List_iterator<partition_element> sub_it(part_elem->subpartitions);
        do
        {
          part_elem= sub_it++;
          if (check_table_name(part_elem->partition_name,
                               strlen(part_elem->partition_name)))
          partition_element *sub_elem= sub_it++;
          if (check_table_name(sub_elem->partition_name,
                               strlen(sub_elem->partition_name)))
          {
            my_error(ER_WRONG_PARTITION_NAME, MYF(0));
            goto end;
          }
          if (part_elem->engine_type == NULL)
            part_elem->engine_type= default_engine_type;
          if (sub_elem->engine_type == NULL)
            sub_elem->engine_type= default_engine_type;
          DBUG_PRINT("info", ("engine = %u",
                     ha_legacy_type(part_elem->engine_type)));
          engine_array[part_count++]= part_elem->engine_type;
                     ha_legacy_type(sub_elem->engine_type)));
          engine_array[part_count++]= sub_elem->engine_type;
        } while (++j < no_subparts);
      }
    } while (++i < no_parts);
+2 −1
Original line number Diff line number Diff line
@@ -3949,6 +3949,7 @@ uint prep_alter_part_table(THD *thd, TABLE *table, ALTER_INFO *alter_info,
        DBUG_RETURN(TRUE);
      }
      alt_part_info->part_type= tab_part_info->part_type;
      alt_part_info->subpart_type= tab_part_info->subpart_type;
      if (alt_part_info->set_up_defaults_for_partitioning(table->file,
                                                          ULL(0), 
                                                          tab_part_info->no_parts))