Commit 02bb72c7 authored by unknown's avatar unknown

Fixed bug #31077.

mysqldump adds the "-- Dump completed on YYYY-MM-DD hh:mm:ss" string
to the end of output if the --comments switch is on.
The only way to suppress this line is to use --skip-comments/--compact
switch.

New switch has been added to the mysqldump client command line:
--dump-date.

For the compatibility with previous releases, by default the --dump-date
is on.
The --dump-date switch forces mysqldump to add date to the
"-- Dump completed on ..." string at the end of output.
The --skip-dump-date switch supresses the output of date string
and uses short form of that commentary: "-- Dump completed".
--skip-comments or --compact switches disable the whole commentary
as usual.


client/client_priv.h:
  Fixed bug #31077.
  New OPT_DUMP_DATE option has been added to implement
  the mysqldump client --dump-date switch.
client/mysqldump.c:
  Fixed bug #31077.
  The opt_dump_date variable has been added to imlements
  the mysqldump cliemt --dump-date switch.
  By default this switch is on (for compatibility with previous
  releases).
  The --dump-date switch forces mysqldump to add date to the
  "-- Dump completed on ..." string at the end of output.
  The --skip-dump-date switch supresses the output of date string
  and uses short form of that commentary: "-- Dump completed".
  --skip-comments or --compact switches disable the whole commentary
  as usual.
mysql-test/t/mysqldump.test:
  Added test case for bug #31077.
mysql-test/r/mysqldump.result:
  Added test case for bug #31077.
parent ca448acc
...@@ -51,5 +51,5 @@ enum options_client ...@@ -51,5 +51,5 @@ enum options_client
OPT_TRIGGERS, OPT_TRIGGERS,
OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE, OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE,
OPT_TZ_UTC, OPT_AUTO_CLOSE, OPT_SSL_VERIFY_SERVER_CERT, OPT_TZ_UTC, OPT_AUTO_CLOSE, OPT_SSL_VERIFY_SERVER_CERT,
OPT_DEBUG_INFO, OPT_ERROR_LOG_FILE OPT_DEBUG_INFO, OPT_ERROR_LOG_FILE, OPT_DUMP_DATE
}; };
...@@ -89,7 +89,7 @@ static my_bool verbose= 0, opt_no_create_info= 0, opt_no_data= 0, ...@@ -89,7 +89,7 @@ static my_bool verbose= 0, opt_no_create_info= 0, opt_no_data= 0,
opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0, opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0, opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0,
opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0, opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0,
opt_set_charset=0, opt_set_charset=0, opt_dump_date=1,
opt_autocommit=0,opt_disable_keys=1,opt_xml=0, opt_autocommit=0,opt_disable_keys=1,opt_xml=0,
opt_delete_master_logs=0, tty_password=0, opt_delete_master_logs=0, tty_password=0,
opt_single_transaction=0, opt_comments= 0, opt_compact= 0, opt_single_transaction=0, opt_comments= 0, opt_compact= 0,
...@@ -402,6 +402,9 @@ static struct my_option my_long_options[] = ...@@ -402,6 +402,9 @@ static struct my_option my_long_options[] =
"automatically turns off --lock-tables.", "automatically turns off --lock-tables.",
(gptr*) &opt_single_transaction, (gptr*) &opt_single_transaction, 0, (gptr*) &opt_single_transaction, (gptr*) &opt_single_transaction, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"dump-date", OPT_DUMP_DATE, "Put a dump date to the end of the output.",
(gptr*) &opt_dump_date, (gptr*) &opt_dump_date, 0,
GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
{"skip-opt", OPT_SKIP_OPTIMIZATION, {"skip-opt", OPT_SKIP_OPTIMIZATION,
"Disable --opt. Disables --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, and --disable-keys.", "Disable --opt. Disables --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, and --disable-keys.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
...@@ -622,12 +625,17 @@ static void write_footer(FILE *sql_file) ...@@ -622,12 +625,17 @@ static void write_footer(FILE *sql_file)
"/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n"); "/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n");
fputs("\n", sql_file); fputs("\n", sql_file);
if (opt_comments) if (opt_comments)
{
if (opt_dump_date)
{ {
char time_str[20]; char time_str[20];
get_date(time_str, GETDATE_DATE_TIME, 0); get_date(time_str, GETDATE_DATE_TIME, 0);
fprintf(sql_file, "-- Dump completed on %s\n", fprintf(sql_file, "-- Dump completed on %s\n",
time_str); time_str);
} }
else
fprintf(sql_file, "-- Dump completed");
}
check_io(sql_file); check_io(sql_file);
} }
} /* write_footer */ } /* write_footer */
......
...@@ -3544,5 +3544,15 @@ c1 ...@@ -3544,5 +3544,15 @@ c1
2 2
DROP TABLE t1,t2; DROP TABLE t1,t2;
# #
# Bug#29815: new option for suppressing last line of mysqldump:
# "Dump completed on"
#
# --skip-dump-date:
-- Dump completed
# --dump-date:
-- Dump completed on -- ::
# --dump-date (default):
-- Dump completed on -- ::
#
# End of 5.0 tests # End of 5.0 tests
# #
...@@ -1576,6 +1576,20 @@ SELECT * FROM t2; ...@@ -1576,6 +1576,20 @@ SELECT * FROM t2;
DROP TABLE t1,t2; DROP TABLE t1,t2;
--echo #
--echo # Bug#29815: new option for suppressing last line of mysqldump:
--echo # "Dump completed on"
--echo #
--echo # --skip-dump-date:
--exec $MYSQL_DUMP --skip-dump-date test | grep 'Dump completed'
--echo # --dump-date:
--exec $MYSQL_DUMP --dump-date test | grep 'Dump completed' | tr -d '[0-9]'
--echo # --dump-date (default):
--exec $MYSQL_DUMP test | grep 'Dump completed' | tr -d '[0-9]'
--echo # --echo #
--echo # End of 5.0 tests --echo # End of 5.0 tests
--echo # --echo #
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment