Commit cbe61bf8 authored by Oleg Smirnov's avatar Oleg Smirnov

MDEV-30664 mysqldump output is truncated on Windows

Flush stdout on finalizing of mysqldump/mysqlbinlog output
to avoid truncation.

The same patch has been applied to the mysqltest.cc code with
  commit 34ff714b
  Author: Magnus Svensson <msvensson@mysql.com>
  Date:   Fri Nov 14 11:06:56 2008 +0100
    WL#4189 Make mysqltest flush log file at close if logfile is stdout

but not to mysqldump.c/mysqlbinlog.cc
parent 0c7af6a2
...@@ -3224,8 +3224,13 @@ int main(int argc, char** argv) ...@@ -3224,8 +3224,13 @@ int main(int argc, char** argv)
if (tmpdir.list) if (tmpdir.list)
free_tmpdir(&tmpdir); free_tmpdir(&tmpdir);
if (result_file && result_file != stdout) if (result_file)
my_fclose(result_file, MYF(0)); {
if (result_file != stdout)
my_fclose(result_file, MYF(0));
else
fflush(result_file);
}
cleanup(); cleanup();
/* We cannot free DBUG, it is used in global destructors after exit(). */ /* We cannot free DBUG, it is used in global destructors after exit(). */
my_end(my_end_arg | MY_DONT_FREE_DBUG); my_end(my_end_arg | MY_DONT_FREE_DBUG);
......
...@@ -1794,8 +1794,13 @@ static FILE* open_sql_file_for_table(const char* table, int flags) ...@@ -1794,8 +1794,13 @@ static FILE* open_sql_file_for_table(const char* table, int flags)
static void free_resources() static void free_resources()
{ {
if (md_result_file && md_result_file != stdout) if (md_result_file)
my_fclose(md_result_file, MYF(0)); {
if (md_result_file != stdout)
my_fclose(md_result_file, MYF(0));
else
fflush(md_result_file);
}
if (get_table_name_result) if (get_table_name_result)
mysql_free_result(get_table_name_result); mysql_free_result(get_table_name_result);
if (routine_res) if (routine_res)
......
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