diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-06-27 20:46:45 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-07-05 17:15:59 +0200 |
commit | 785e2248bd12b2b8fc417776c4b24fb62daab35d (patch) | |
tree | 01138b878fe08de0f9c9444c77327e73abf43414 /sql/sql_partition.cc | |
parent | 504eff0ca13ef93fa46f919e1fb60b58ac9a34eb (diff) | |
download | mariadb-git-785e2248bd12b2b8fc417776c4b24fb62daab35d.tar.gz |
MDEV-13089 identifier quoting in partitioning
don't print partitioning expression as it was entered by the user,
use Item::print() according to the sql_mode and sql_quote_show_create
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r-- | sql/sql_partition.cc | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index c3f2d8ec14e..22fa4242ad8 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -990,9 +990,7 @@ static bool fix_fields_part_func(THD *thd, Item* func_expr, TABLE *table, result= set_up_field_array(thd, table, is_sub_part); end: end_lex_with_single_table(thd, table, old_lex); -#if !defined(DBUG_OFF) func_expr->walk(&Item::change_context_processor, 0, 0); -#endif DBUG_RETURN(result); } @@ -2254,12 +2252,9 @@ char *generate_partition_syntax(THD *thd, partition_info *part_info, partition_element *part_elem; int err= 0; List_iterator<partition_element> part_it(part_info->partitions); - ulonglong save_options= thd->variables.option_bits; StringBuffer<1024> str; DBUG_ENTER("generate_partition_syntax"); - thd->variables.option_bits&= ~OPTION_QUOTE_SHOW_CREATE; - err+= str.append(STRING_WITH_LEN(" PARTITION BY ")); switch (part_info->part_type) { @@ -2289,7 +2284,7 @@ char *generate_partition_syntax(THD *thd, partition_info *part_info, if (part_info->part_expr) { err+= str.append('('); - err+= str.append(part_info->part_func_string, part_info->part_func_len); + part_info->part_expr->print_for_table_def(&str); err+= str.append(')'); } else if (part_info->column_list) @@ -2319,7 +2314,7 @@ char *generate_partition_syntax(THD *thd, partition_info *part_info, if (part_info->subpart_expr) { err+= str.append('('); - err+= str.append(part_info->subpart_func_string, part_info->subpart_func_len); + part_info->subpart_expr->print_for_table_def(&str); err+= str.append(')'); } if ((!part_info->use_default_num_subpartitions) && @@ -2381,7 +2376,6 @@ char *generate_partition_syntax(THD *thd, partition_info *part_info, err+= str.append(')'); } while (++i < tot_num_parts); } - thd->variables.option_bits= save_options; if (err) DBUG_RETURN(NULL); *buf_length= str.length(); |