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)
if (tmpdir.list)
free_tmpdir(&tmpdir);
if (result_file && result_file != stdout)
if (result_file)
{
if (result_file != stdout)
my_fclose(result_file, MYF(0));
else
fflush(result_file);
}
cleanup();
/* We cannot free DBUG, it is used in global destructors after exit(). */
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)
static void free_resources()
{
if (md_result_file && md_result_file != stdout)
if (md_result_file)
{
if (md_result_file != stdout)
my_fclose(md_result_file, MYF(0));
else
fflush(md_result_file);
}
if (get_table_name_result)
mysql_free_result(get_table_name_result);
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