diff --git a/client/mysqldump.c b/client/mysqldump.c index 7092503fa25d8464ab0407a333c6cf6df9a7200d..b7a61845f7c95defb0fd7c77038e13decbb0af42 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -78,7 +78,7 @@ static my_bool verbose=0,tFlag=0,cFlag=0,dFlag=0,quick=0, extended_insert = 0, opt_alldbs=0,opt_create_db=0,opt_first_slave=0, opt_autocommit=0,opt_master_data,opt_disable_keys=0,opt_xml=0, opt_delete_master_logs=0, tty_password=0, - opt_single_transaction=0; + opt_single_transaction=0, opt_comments= 0; static MYSQL mysql_connection,*sock=0; static char insert_pat[12 * 1024],*opt_password=0,*current_user=0, *current_host=0,*path=0,*fields_terminated=0, @@ -242,6 +242,9 @@ static struct my_option my_long_options[] = (gptr*) &net_buffer_length, (gptr*) &net_buffer_length, 0, GET_ULONG, REQUIRED_ARG, 1024*1024L-1025, 4096, 16*1024L*1024L, MALLOC_OVERHEAD-1024, 1024, 0}, + {"comments", 'i', "Write additional information.", + (gptr*) &opt_comments, (gptr*) &opt_comments, 0, GET_BOOL, NO_ARG, + 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; @@ -302,7 +305,7 @@ static void write_header(FILE *sql_file, char *db_name) fprintf(sql_file,"<?xml version=\"1.0\"?>\n"); fprintf(sql_file,"<mysqldump>\n"); } - else + else if (opt_comments) { fprintf(sql_file, "-- MySQL dump %s\n--\n", DUMP_VERSION); fprintf(sql_file, "-- Host: %s Database: %s\n", @@ -620,7 +623,7 @@ static uint getTableStructure(char *table, char* db) } write_header(sql_file, db); } - if (!opt_xml) + if (!opt_xml && opt_comments) fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n", result_table); if (opt_drop) @@ -698,7 +701,7 @@ static uint getTableStructure(char *table, char* db) } write_header(sql_file, db); } - if (!opt_xml) + if (!opt_xml && opt_comments) fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n", result_table); if (opt_drop) @@ -964,14 +967,14 @@ static void dumpTable(uint numFields, char *table) } else { - if (!opt_xml) + if (!opt_xml && opt_comments) fprintf(md_result_file,"\n--\n-- Dumping data for table %s\n--\n", result_table); sprintf(query, "SELECT /*!40001 SQL_NO_CACHE */ * FROM %s", result_table); if (where) { - if (!opt_xml) + if (!opt_xml && opt_comments) fprintf(md_result_file,"-- WHERE: %s\n",where); strxmov(strend(query), " WHERE ",where,NullS); } @@ -1298,7 +1301,8 @@ static int init_dumping(char *database) /* length of table name * 2 (if name contain quotas), 2 quotas and 0 */ char quoted_database_buf[64*2+3]; char *qdatabase= quote_name(database,quoted_database_buf,opt_quoted); - fprintf(md_result_file,"\n--\n-- Current Database: %s\n--\n", database); + if (opt_comments) + fprintf(md_result_file,"\n--\n-- Current Database: %s\n--\n", database); if (!opt_create_db) fprintf(md_result_file,"\nCREATE DATABASE /*!32312 IF NOT EXISTS*/ %s;\n", qdatabase); @@ -1499,8 +1503,9 @@ int main(int argc, char **argv) row = mysql_fetch_row(master); if (row && row[0] && row[1]) { - fprintf(md_result_file, - "\n--\n-- Position to start replication from\n--\n\n"); + if (opt_comments) + fprintf(md_result_file, + "\n--\n-- Position to start replication from\n--\n\n"); fprintf(md_result_file, "CHANGE MASTER TO MASTER_LOG_FILE='%s', \ MASTER_LOG_POS=%s ;\n",row[0],row[1]); diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index 085cf2788f9f701ad336f2f3de790007838c110b..27ca3fbaaf54f731b76b5675b1cc49c8f7f62aae 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -15,3 +15,23 @@ INSERT INTO t1 VALUES (1), (2); </database> </mysqldump> DROP TABLE t1; +CREATE TABLE t1 (a decimal(240, 20)); +INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"), +("0987654321098765432109876543210987654321"); +CREATE TABLE t1 ( + a decimal(240,20) default NULL +) TYPE=MyISAM; + +INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890.00000000000000000000"); +INSERT INTO t1 VALUES ("0987654321098765432109876543210987654321.00000000000000000000"); + +DROP TABLE t1; +CREATE TABLE t1 (a double); +INSERT INTO t1 VALUES (-9e999999); +CREATE TABLE t1 ( + a double default NULL +) TYPE=MyISAM; + +INSERT INTO t1 VALUES (NULL); + +DROP TABLE t1; diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index aea5859fcfa218391ba84e83ba477aefa6c26c2a..525949bd6028b96423b6d903b2cc7805d29e8f71 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -6,26 +6,24 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1(a int); INSERT INTO t1 VALUES (1), (2); ---exec $MYSQL_DUMP -X test t1 +--exec $MYSQL_DUMP --skip-comments -X test t1 DROP TABLE t1; # # Bug #2005 -# TODO: solve the problem with 'replace' and enable test # -#CREATE TABLE t1 (a decimal(240, 20)); -#INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"), -#("0987654321098765432109876543210987654321"); -#--exec $MYSQL_DUMP test t1 -#DROP TABLE t1; +CREATE TABLE t1 (a decimal(240, 20)); +INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"), +("0987654321098765432109876543210987654321"); +--exec $MYSQL_DUMP --skip-comments test t1 +DROP TABLE t1; # # Bug #2055 -# TODO: solve the problem with 'replace' and enable test # -#CREATE TABLE t1 (a double); -#INSERT INTO t1 VALUES (-9e999999); -#--exec $MYSQL_DUMP -X test t1 -#DROP TABLE t1; +CREATE TABLE t1 (a double); +INSERT INTO t1 VALUES (-9e999999); +--exec $MYSQL_DUMP --skip-comments test t1 +DROP TABLE t1;