summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2019-08-27 23:01:12 +0300
committerAleksey Midenkov <midenok@gmail.com>2019-09-01 14:04:24 +0300
commita3e49c0d36c0347e9dee43f9996ca7c407836a51 (patch)
treebf0249eb01f0db04ea400df516b8804bb1ab4ad9
parent396da1a70548f80ecf781cf352b0d4a5740c54f6 (diff)
downloadmariadb-git-a3e49c0d36c0347e9dee43f9996ca7c407836a51.tar.gz
MDEV-18501 Partition pruning doesn't work for historical queries (cleanup)
Cleanup removes useless allocation.
-rw-r--r--sql/partition_info.cc9
-rw-r--r--sql/partition_info.h3
-rw-r--r--sql/sql_yacc.yy8
-rw-r--r--sql/sql_yacc_ora.yy8
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;
}
;