merging
sql/sql_partition.cc: Auto merged
This commit is contained in:
commit
6315e46af2
@ -557,6 +557,12 @@ t2 CREATE TABLE `t2` (
|
|||||||
PRIMARY KEY (`a`)
|
PRIMARY KEY (`a`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='no comment' PARTITION BY KEY (a)
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='no comment' PARTITION BY KEY (a)
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
create table t1 (s1 char(2) character set utf8)
|
||||||
|
partition by list (case when s1 > 'cz' then 1 else 2 end)
|
||||||
|
(partition p1 values in (1),
|
||||||
|
partition p2 values in (2));
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (f1 int) partition by hash (f1) as select 1;
|
||||||
prepare stmt1 from 'create table t1 (s1 int) partition by hash (s1)';
|
prepare stmt1 from 'create table t1 (s1 int) partition by hash (s1)';
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
|
@ -714,6 +714,21 @@ show create table t2;
|
|||||||
|
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#14367: Partitions: crash if utf8 column
|
||||||
|
#
|
||||||
|
create table t1 (s1 char(2) character set utf8)
|
||||||
|
partition by list (case when s1 > 'cz' then 1 else 2 end)
|
||||||
|
(partition p1 values in (1),
|
||||||
|
partition p2 values in (2));
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#15336 Partitions: crash if create table as select
|
||||||
|
#
|
||||||
|
create table t1 (f1 int) partition by hash (f1) as select 1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# bug #14350 Partitions: crash if prepared statement
|
# bug #14350 Partitions: crash if prepared statement
|
||||||
#
|
#
|
||||||
|
@ -4703,6 +4703,7 @@ int ha_partition::extra(enum ha_extra_function operation)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case HA_EXTRA_NO_CACHE:
|
case HA_EXTRA_NO_CACHE:
|
||||||
|
case HA_EXTRA_WRITE_CACHE:
|
||||||
{
|
{
|
||||||
m_extra_cache= FALSE;
|
m_extra_cache= FALSE;
|
||||||
m_extra_cache_size= 0;
|
m_extra_cache_size= 0;
|
||||||
|
@ -647,6 +647,7 @@ Item *Item_string::safe_charset_converter(CHARSET_INFO *tocs)
|
|||||||
{
|
{
|
||||||
Item_string *conv;
|
Item_string *conv;
|
||||||
uint conv_errors;
|
uint conv_errors;
|
||||||
|
char *ptr;
|
||||||
String tmp, cstr, *ostr= val_str(&tmp);
|
String tmp, cstr, *ostr= val_str(&tmp);
|
||||||
cstr.copy(ostr->ptr(), ostr->length(), ostr->charset(), tocs, &conv_errors);
|
cstr.copy(ostr->ptr(), ostr->length(), ostr->charset(), tocs, &conv_errors);
|
||||||
if (conv_errors || !(conv= new Item_string(cstr.ptr(), cstr.length(),
|
if (conv_errors || !(conv= new Item_string(cstr.ptr(), cstr.length(),
|
||||||
@ -661,7 +662,9 @@ Item *Item_string::safe_charset_converter(CHARSET_INFO *tocs)
|
|||||||
*/
|
*/
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
conv->str_value.copy();
|
if (!(ptr= current_thd->memdup(cstr.ptr(), cstr.length() + 1 )))
|
||||||
|
return NULL;
|
||||||
|
conv->str_value.set(ptr, cstr.length(), cstr.charset());
|
||||||
/* Ensure that no one is going to change the result string */
|
/* Ensure that no one is going to change the result string */
|
||||||
conv->str_value.mark_as_const();
|
conv->str_value.mark_as_const();
|
||||||
return conv;
|
return conv;
|
||||||
|
@ -1710,6 +1710,7 @@ bool fix_partition_func(THD *thd, const char* name, TABLE *table,
|
|||||||
char* db_name;
|
char* db_name;
|
||||||
partition_info *part_info= table->part_info;
|
partition_info *part_info= table->part_info;
|
||||||
ulong save_set_query_id= thd->set_query_id;
|
ulong save_set_query_id= thd->set_query_id;
|
||||||
|
Item *thd_free_list= thd->free_list;
|
||||||
DBUG_ENTER("fix_partition_func");
|
DBUG_ENTER("fix_partition_func");
|
||||||
|
|
||||||
if (part_info->fixed)
|
if (part_info->fixed)
|
||||||
@ -1744,6 +1745,7 @@ bool fix_partition_func(THD *thd, const char* name, TABLE *table,
|
|||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
thd->free_list= part_info->item_free_list;
|
||||||
if (part_info->is_sub_partitioned())
|
if (part_info->is_sub_partitioned())
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(part_info->subpart_type == HASH_PARTITION);
|
DBUG_ASSERT(part_info->subpart_type == HASH_PARTITION);
|
||||||
@ -1853,6 +1855,7 @@ bool fix_partition_func(THD *thd, const char* name, TABLE *table,
|
|||||||
set_up_range_analysis_info(part_info);
|
set_up_range_analysis_info(part_info);
|
||||||
result= FALSE;
|
result= FALSE;
|
||||||
end:
|
end:
|
||||||
|
thd->free_list= thd_free_list;
|
||||||
thd->set_query_id= save_set_query_id;
|
thd->set_query_id= save_set_query_id;
|
||||||
DBUG_PRINT("info", ("thd->set_query_id: %d", thd->set_query_id));
|
DBUG_PRINT("info", ("thd->set_query_id: %d", thd->set_query_id));
|
||||||
DBUG_RETURN(result);
|
DBUG_RETURN(result);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user