static int add_part_field_list(File fptr, List<char> field_list)
{
  uint i, num_fields;
  int err= 0;

  List_iterator<char> part_it(field_list);
  num_fields= field_list.elements;
  i= 0;
  err+= add_begin_parenthesis(fptr);
  while (i < num_fields)
  {
    const char *field_str= part_it++;
    String field_string("", 0, system_charset_info);
    THD *thd= current_thd;
    ulonglong save_options= thd->variables.option_bits;
    thd->variables.option_bits&= ~OPTION_QUOTE_SHOW_CREATE;
    append_identifier(thd, &field_string, field_str,
                      strlen(field_str));
    thd->variables.option_bits= save_options;
    err+= add_string_object(fptr, &field_string);
    if (i != (num_fields-1))
      err+= add_comma(fptr);
    i++;
  }
  err+= add_end_parenthesis(fptr);
  return err;
}
static int add_part_field_list(File fptr, List<char> field_list)
{
  uint i, num_fields;
  int err= 0;

  List_iterator<char> part_it(field_list);
  num_fields= field_list.elements;
  i= 0;
  err+= add_begin_parenthesis(fptr);
  while (i < num_fields)
  {
    const char *field_str= part_it++;
    String field_string("", 0, system_charset_info);
    THD *thd= current_thd;
    ulonglong save_options= thd->variables.option_bits;
    thd->variables.option_bits&= ~OPTION_QUOTE_SHOW_CREATE;
    append_identifier(thd, &field_string, field_str,
                      strlen(field_str));
    thd->variables.option_bits= save_options;
    err+= add_string_object(fptr, &field_string);
    if (i != (num_fields-1))
      err+= add_comma(fptr);
    i++;
  }
  err+= add_end_parenthesis(fptr);
  return err;
}