diff options
-rw-r--r-- | sql/partition_info.cc | 9 | ||||
-rw-r--r-- | sql/partition_info.h | 3 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 8 | ||||
-rw-r--r-- | sql/sql_yacc_ora.yy | 8 |
4 files changed, 10 insertions, 18 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc index ba6fc8a49ec..65cf0298f4f 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -1473,15 +1473,8 @@ void partition_info::print_no_partition_found(TABLE *table_arg, myf errflag) FALSE Success */ -bool partition_info::set_part_expr(THD *thd, char *start_token, Item *item_ptr, - char *end_token, bool is_subpart) +bool partition_info::set_part_expr(THD *thd, Item *item_ptr, bool is_subpart) { - size_t expr_len= end_token - start_token; - char *func_string= (char*) thd->memdup(start_token, expr_len); - - if (unlikely(!func_string)) - return TRUE; - if (is_subpart) { list_of_subpart_fields= FALSE; diff --git a/sql/partition_info.h b/sql/partition_info.h index d6a6214c172..253e88174dd 100644 --- a/sql/partition_info.h +++ b/sql/partition_info.h @@ -366,8 +366,7 @@ public: void init_col_val(part_column_list_val *col_val, Item *item); int reorganize_into_single_field_col_val(THD *thd); part_column_list_val *add_column_value(THD *thd); - bool set_part_expr(THD *thd, char *start_token, Item *item_ptr, - char *end_token, bool is_subpart); + bool set_part_expr(THD *thd, Item *item_ptr, bool is_subpart); bool set_up_charset_field_preps(THD *thd); bool check_partition_field_length(); bool init_column_part(THD *thd); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index c1b2fd2294b..563de8a0368 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -5541,10 +5541,10 @@ part_column_list: part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { partition_info *part_info= Lex->part_info; - if (unlikely(part_info->set_part_expr(thd, $2 + 1, $3, $4, FALSE))) + if (unlikely(part_info->set_part_expr(thd, $2, FALSE))) MYSQL_YYABORT; part_info->num_columns= 1; part_info->column_list= FALSE; @@ -5552,9 +5552,9 @@ part_func: ; sub_part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { - if (unlikely(Lex->part_info->set_part_expr(thd, $2 + 1, $3, $4, TRUE))) + if (unlikely(Lex->part_info->set_part_expr(thd, $2, TRUE))) MYSQL_YYABORT; } ; diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index 28d3d1bf90b..b31f2a0f890 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -5387,10 +5387,10 @@ part_column_list: part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { partition_info *part_info= Lex->part_info; - if (unlikely(part_info->set_part_expr(thd, $2 + 1, $3, $4, FALSE))) + if (unlikely(part_info->set_part_expr(thd, $2, FALSE))) MYSQL_YYABORT; part_info->num_columns= 1; part_info->column_list= FALSE; @@ -5398,9 +5398,9 @@ part_func: ; sub_part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { - if (unlikely(Lex->part_info->set_part_expr(thd, $2 + 1, $3, $4, TRUE))) + if (unlikely(Lex->part_info->set_part_expr(thd, $2, TRUE))) MYSQL_YYABORT; } ; |