Loading sql/item.h +6 −0 Original line number Diff line number Diff line Loading @@ -744,6 +744,11 @@ class Item { virtual bool find_item_in_field_list_processor(byte *arg) { return 0; } virtual bool change_context_processor(byte *context) { return 0; } virtual bool reset_query_id_processor(byte *query_id) { return 0; } virtual bool check_partition_func_processor(byte *bool_arg) { *(bool *)bool_arg= FALSE; return 0; } virtual Item *equal_fields_propagator(byte * arg) { return this; } virtual Item *set_no_const_sub(byte *arg) { return this; } Loading Loading @@ -1202,6 +1207,7 @@ class Item_field :public Item_ident result_field->query_id= field->query_id; return 0; } bool check_partition_func_processor(byte *bool_arg) { return 0; } void cleanup(); Item_equal *find_item_equal(COND_EQUAL *cond_equal); Item *equal_fields_propagator(byte *arg); Loading sql/partition_info.cc +12 −0 Original line number Diff line number Diff line Loading @@ -655,8 +655,20 @@ bool partition_info::check_partition_info(handlerton **eng_type, uint i, tot_partitions; bool result= TRUE; char *same_name; bool part_expression_ok= TRUE; DBUG_ENTER("partition_info::check_partition_info"); if (part_type != HASH_PARTITION || !list_of_part_fields) part_expr->walk(Item::check_partition_func_processor, (byte*)&part_expression_ok); if (is_sub_partitioned() && !list_of_subpart_fields) subpart_expr->walk(Item::check_partition_func_processor, (byte*)&part_expression_ok); if (!part_expression_ok) { my_error(ER_PARTITION_FUNC_NOT_ALLOWED, MYF(0)); goto end; } if (unlikely(!is_sub_partitioned() && !(use_default_subpartitions && use_default_no_subpartitions))) { Loading sql/share/errmsg.txt +3 −0 Original line number Diff line number Diff line Loading @@ -5826,3 +5826,6 @@ ER_NDB_CANT_SWITCH_BINLOG_FORMAT eng "The NDB cluster engine does not support changing the binlog format on the fly yet" ER_PARTITION_NO_TEMPORARY eng "Cannot create temporary table with partitions" ER_PARTITION_FUNCTION_NOT_ALLOWED eng "This partition function is not allowed" swe "Denna partitioneringsfunktion r inte tillten" Loading
sql/item.h +6 −0 Original line number Diff line number Diff line Loading @@ -744,6 +744,11 @@ class Item { virtual bool find_item_in_field_list_processor(byte *arg) { return 0; } virtual bool change_context_processor(byte *context) { return 0; } virtual bool reset_query_id_processor(byte *query_id) { return 0; } virtual bool check_partition_func_processor(byte *bool_arg) { *(bool *)bool_arg= FALSE; return 0; } virtual Item *equal_fields_propagator(byte * arg) { return this; } virtual Item *set_no_const_sub(byte *arg) { return this; } Loading Loading @@ -1202,6 +1207,7 @@ class Item_field :public Item_ident result_field->query_id= field->query_id; return 0; } bool check_partition_func_processor(byte *bool_arg) { return 0; } void cleanup(); Item_equal *find_item_equal(COND_EQUAL *cond_equal); Item *equal_fields_propagator(byte *arg); Loading
sql/partition_info.cc +12 −0 Original line number Diff line number Diff line Loading @@ -655,8 +655,20 @@ bool partition_info::check_partition_info(handlerton **eng_type, uint i, tot_partitions; bool result= TRUE; char *same_name; bool part_expression_ok= TRUE; DBUG_ENTER("partition_info::check_partition_info"); if (part_type != HASH_PARTITION || !list_of_part_fields) part_expr->walk(Item::check_partition_func_processor, (byte*)&part_expression_ok); if (is_sub_partitioned() && !list_of_subpart_fields) subpart_expr->walk(Item::check_partition_func_processor, (byte*)&part_expression_ok); if (!part_expression_ok) { my_error(ER_PARTITION_FUNC_NOT_ALLOWED, MYF(0)); goto end; } if (unlikely(!is_sub_partitioned() && !(use_default_subpartitions && use_default_no_subpartitions))) { Loading
sql/share/errmsg.txt +3 −0 Original line number Diff line number Diff line Loading @@ -5826,3 +5826,6 @@ ER_NDB_CANT_SWITCH_BINLOG_FORMAT eng "The NDB cluster engine does not support changing the binlog format on the fly yet" ER_PARTITION_NO_TEMPORARY eng "Cannot create temporary table with partitions" ER_PARTITION_FUNCTION_NOT_ALLOWED eng "This partition function is not allowed" swe "Denna partitioneringsfunktion r inte tillten"