diff --git a/client/mysqldump.c b/client/mysqldump.c index d74e694ddcd..20c20a964b0 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -2112,17 +2112,16 @@ static my_bool test_if_special_chars(const char *str) name Unquoted string containing that which will be quoted buff The buffer that contains the quoted value, also returned force Flag to make it ignore 'test_if_special_chars' - quote_c Charater to use as the enclosing quote Returns A pointer to the quoted string, or the original string if nothing has changed. */ -static char *quote(const char *name, char *buff, my_bool force, char quote_c) +static char *quote_name(const char *name, char *buff, my_bool force) { char *to= buff; - char qtype= (opt_compatible_mode & MASK_ANSI_QUOTES) ? '\"' : quote_c; + char qtype= (opt_compatible_mode & MASK_ANSI_QUOTES) ? '\"' : '`'; if (!force && !opt_quoted && !test_if_special_chars(name)) return (char*) name; @@ -2136,29 +2135,7 @@ static char *quote(const char *name, char *buff, my_bool force, char quote_c) to[0]= qtype; to[1]= 0; return buff; -} /* quote */ - - -/* - quote_name(name, buff, force) - - quote() with the ` character -*/ -static char *quote_name(const char *name, char *buff, my_bool force) -{ - return quote(name, buff, force, '`'); -} - - -/* - quote_string(name, buff, force) - - quote() with the ' character -*/ -static char *quote_string(const char *name, char *buff) -{ - return quote(name, buff, 0, '\''); -} +} /* quote_name */ /* @@ -3429,7 +3406,7 @@ static uint get_table_structure(const char *table, const char *db, char *table_t quote_name(row[SHOW_FIELDNAME], name_buff, 0)); if (opt_header) dynstr_append_checked(&select_field_names_for_header, - quote_string(row[SHOW_FIELDNAME], name_buff)); + quote_for_equal(row[SHOW_FIELDNAME], name_buff)); } init=0; /* @@ -3534,7 +3511,7 @@ static uint get_table_structure(const char *table, const char *db, char *table_t quote_name(row[SHOW_FIELDNAME], name_buff, 0)); if (opt_header) dynstr_append_checked(&select_field_names_for_header, - quote_string(row[SHOW_FIELDNAME], name_buff)); + quote_for_equal(row[SHOW_FIELDNAME], name_buff)); init=1; } init=0; diff --git a/mysql-test/main/mysqldump-header.result b/mysql-test/main/mysqldump-header.result index 6b59b062f35..945791790c0 100644 --- a/mysql-test/main/mysqldump-header.result +++ b/mysql-test/main/mysqldump-header.result @@ -45,7 +45,18 @@ course_id name description num_years escape_çÇÁá!#%"';5 Course 1 Course Desc # Dump header and data rows into outfile with several options above combined # 'course_id','name','description','num_years','escape_çÇÁá!#%"\'';'5','Course 1','Course Description 1','3',\N; -'course_id','name','description','num_years','escape_çÇÁá!#%"\'';'5','Course 1','Course Description 1','3',\N;INSERT INTO `courses` VALUES (4, 'Course 2', 'Course Description 2', 4, NULL); +'course_id','name','description','num_years','escape_çÇÁá!#%"\'';'5','Course 1','Course Description 1','3',\N; +# +# --skip-quote-names +# +course_id name description num_years escape_çÇÁá!#%"' +5 Course 1 Course Description 1 3 \N +# +# --compatible=ansi +# +course_id name description num_years escape_çÇÁá!#%"' +5 Course 1 Course Description 1 3 \N +INSERT INTO `courses` VALUES (4, 'Course 2', 'Course Description 2', 4, NULL); INSERT INTO `courses` VALUES (3, 'Course 3', 'Course Description 3', 3, NULL); INSERT INTO `courses` VALUES (2, 'Course 4', 'Course Description 4', 5, NULL); INSERT INTO `courses` VALUES (1, 'Course 5', 'Course Description 5', 3, NULL); diff --git a/mysql-test/main/mysqldump-header.test b/mysql-test/main/mysqldump-header.test index 7c59fee6115..b1886174153 100644 --- a/mysql-test/main/mysqldump-header.test +++ b/mysql-test/main/mysqldump-header.test @@ -58,6 +58,19 @@ INSERT INTO `courses` VALUES (5, 'Course 1', 'Course Description 1', 3, NULL); --exec $MYSQL_DUMP -u root --tab $MYSQLTEST_VARDIR/ --header --fields-terminated-by , --fields-optionally-enclosed-by \' --lines-terminated-by \; test --cat_file $MYSQLTEST_VARDIR/courses.txt +--echo +--echo # +--echo # --skip-quote-names +--echo # +--exec $MYSQL_DUMP -u root --tab $MYSQLTEST_VARDIR/ --header --skip-quote-names test +--cat_file $MYSQLTEST_VARDIR/courses.txt + +--echo # +--echo # --compatible=ansi +--echo # +--exec $MYSQL_DUMP -u root --tab $MYSQLTEST_VARDIR/ --header --compatible=ansi test +--cat_file $MYSQLTEST_VARDIR/courses.txt + INSERT INTO `courses` VALUES (4, 'Course 2', 'Course Description 2', 4, NULL); INSERT INTO `courses` VALUES (3, 'Course 3', 'Course Description 3', 3, NULL); INSERT INTO `courses` VALUES (2, 'Course 4', 'Course Description 4', 5, NULL);