mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
BUG#19304: Merge handler allowed in partitioned tables
mysql-test/r/partition.result: New test case mysql-test/t/partition.test: New test case sql/partition_info.cc: Check for not merge handler in partitioned table sql/share/errmsg.txt: New error message
This commit is contained in:
@@ -886,4 +886,8 @@ s1
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a int)
|
||||||
|
partition by key (a)
|
||||||
|
(partition p0 engine = MERGE);
|
||||||
|
ERROR HY000: MyISAM Merge handler cannot be used in partitioned tables
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@@ -1009,4 +1009,12 @@ select auto_increment from information_schema.tables where table_name='t1';
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG 19304 Partitions: MERGE handler not allowed in partitioned tables
|
||||||
|
#
|
||||||
|
--error ER_PARTITION_MERGE_ERROR
|
||||||
|
create table t1 (a int)
|
||||||
|
partition by key (a)
|
||||||
|
(partition p0 engine = MERGE);
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@@ -431,18 +431,22 @@ char *partition_info::has_unique_names()
|
|||||||
bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts)
|
bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts)
|
||||||
{
|
{
|
||||||
uint i= 0;
|
uint i= 0;
|
||||||
bool result= FALSE;
|
|
||||||
DBUG_ENTER("partition_info::check_engine_mix");
|
DBUG_ENTER("partition_info::check_engine_mix");
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (engine_array[i] != engine_array[0])
|
if (engine_array[i] != engine_array[0])
|
||||||
{
|
{
|
||||||
result= TRUE;
|
my_error(ER_MIX_HANDLER_ERROR, MYF(0));
|
||||||
break;
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
} while (++i < no_parts);
|
} while (++i < no_parts);
|
||||||
DBUG_RETURN(result);
|
if (!strcmp(engine_array[0]->name,"MRG_MYISAM"))
|
||||||
|
{
|
||||||
|
my_error(ER_PARTITION_MERGE_ERROR, MYF(0));
|
||||||
|
DBUG_RETURN(TRUE);
|
||||||
|
}
|
||||||
|
DBUG_RETURN(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -756,10 +760,7 @@ bool partition_info::check_partition_info(handlerton **eng_type,
|
|||||||
} while (++i < no_parts);
|
} while (++i < no_parts);
|
||||||
}
|
}
|
||||||
if (unlikely(partition_info::check_engine_mix(engine_array, part_count)))
|
if (unlikely(partition_info::check_engine_mix(engine_array, part_count)))
|
||||||
{
|
|
||||||
my_error(ER_MIX_HANDLER_ERROR, MYF(0));
|
|
||||||
goto end;
|
goto end;
|
||||||
}
|
|
||||||
|
|
||||||
if (eng_type)
|
if (eng_type)
|
||||||
*eng_type= (handlerton*)engine_array[0];
|
*eng_type= (handlerton*)engine_array[0];
|
||||||
|
@@ -5840,3 +5840,6 @@ ER_NULL_IN_VALUES_LESS_THAN
|
|||||||
ER_WRONG_PARTITION_NAME
|
ER_WRONG_PARTITION_NAME
|
||||||
eng "Incorrect partition name"
|
eng "Incorrect partition name"
|
||||||
swe "Felaktigt partitionsnamn"
|
swe "Felaktigt partitionsnamn"
|
||||||
|
ER_PARTITION_MERGE_ERROR
|
||||||
|
eng "MyISAM Merge handler cannot be used in partitioned tables"
|
||||||
|
swe "MyISAM Merge kan inte an<61>ndas i en partitionerad tabell"
|
||||||
|
Reference in New Issue
Block a user