Merge witty.:/Users/mattiasj/clones/mysql-5.1-bug30822
into witty.:/Users/mattiasj/clones/51to_push
This commit is contained in:
commit
5452a154d6
@ -1,4 +1,16 @@
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (c1 INT)
|
||||
PARTITION BY HASH (c1)
|
||||
PARTITIONS 15;
|
||||
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
|
||||
ALTER TABLE t1 COALESCE PARTITION 13;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 INT)
|
||||
PARTITION BY LINEAR HASH (c1)
|
||||
PARTITIONS 5;
|
||||
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
|
||||
ALTER TABLE t1 COALESCE PARTITION 3;
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int unsigned)
|
||||
partition by hash(a div 2)
|
||||
partitions 4;
|
||||
|
@ -9,6 +9,22 @@
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Bug#30822: crash when COALESCE
|
||||
#
|
||||
CREATE TABLE t1 (c1 INT)
|
||||
PARTITION BY HASH (c1)
|
||||
PARTITIONS 15;
|
||||
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
|
||||
ALTER TABLE t1 COALESCE PARTITION 13;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 INT)
|
||||
PARTITION BY LINEAR HASH (c1)
|
||||
PARTITIONS 5;
|
||||
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
|
||||
ALTER TABLE t1 COALESCE PARTITION 3;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# More partition pruning tests, especially on interval walking
|
||||
#
|
||||
|
@ -1531,6 +1531,14 @@ int ha_partition::copy_partitions(ulonglong *copied, ulonglong *deleted)
|
||||
longlong func_value;
|
||||
DBUG_ENTER("ha_partition::copy_partitions");
|
||||
|
||||
if (m_part_info->linear_hash_ind)
|
||||
{
|
||||
if (m_part_info->part_type == HASH_PARTITION)
|
||||
set_linear_hash_mask(m_part_info, m_part_info->no_parts);
|
||||
else
|
||||
set_linear_hash_mask(m_part_info, m_part_info->no_subparts);
|
||||
}
|
||||
|
||||
while (reorg_part < m_reorged_parts)
|
||||
{
|
||||
handler *file= m_reorged_file[reorg_part];
|
||||
|
@ -1402,7 +1402,7 @@ static void set_up_partition_func_pointers(partition_info *part_info)
|
||||
NONE
|
||||
*/
|
||||
|
||||
static void set_linear_hash_mask(partition_info *part_info, uint no_parts)
|
||||
void set_linear_hash_mask(partition_info *part_info, uint no_parts)
|
||||
{
|
||||
uint mask;
|
||||
|
||||
|
@ -65,6 +65,7 @@ int get_part_for_delete(const uchar *buf, const uchar *rec0,
|
||||
void prune_partition_set(const TABLE *table, part_id_range *part_spec);
|
||||
bool check_partition_info(partition_info *part_info,handlerton **eng_type,
|
||||
TABLE *table, handler *file, HA_CREATE_INFO *info);
|
||||
void set_linear_hash_mask(partition_info *part_info, uint no_parts);
|
||||
bool fix_partition_func(THD *thd, TABLE *table, bool create_table_ind);
|
||||
char *generate_partition_syntax(partition_info *part_info,
|
||||
uint *buf_length, bool use_sql_alloc,
|
||||
|
Loading…
x
Reference in New Issue
Block a user