From b3c3b5464d762efdf30cb9f2beb71e2d9e246011 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 1 Jan 2004 19:27:15 +0000
Subject: [PATCH] Do an explicit fflush after writing a progress message with
 puts. This ensures stdout is kept in sync with messages on stderr. Per report
 from Olaf Ferger.

---
 src/bin/scripts/clusterdb.c  | 29 ++++++++++++++++-------------
 src/bin/scripts/createdb.c   |  8 +++++++-
 src/bin/scripts/createuser.c |  5 ++++-
 src/bin/scripts/dropdb.c     |  5 ++++-
 src/bin/scripts/dropuser.c   |  5 ++++-
 src/bin/scripts/vacuumdb.c   | 35 ++++++++++++++++++++---------------
 6 files changed, 55 insertions(+), 32 deletions(-)

diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c
index d5ed4fcfedf..6518e010b7d 100644
--- a/src/bin/scripts/clusterdb.c
+++ b/src/bin/scripts/clusterdb.c
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 2002-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.4 2003/11/29 19:52:07 pgsql Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.5 2004/01/01 19:27:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -14,14 +14,14 @@
 #include "dumputils.h"
 
 
-static
-void
+static void
 cluster_one_database(const char *dbname, const char *table,
- const char *host, const char *port, const char *username, bool password,
+					 const char *host, const char *port,
+					 const char *username, bool password,
 					 const char *progname, bool echo, bool quiet);
-static
-void
-cluster_all_databases(const char *host, const char *port, const char *username, bool password,
+static void
+cluster_all_databases(const char *host, const char *port,
+					  const char *username, bool password,
 					  const char *progname, bool echo, bool quiet);
 
 static void help(const char *progname);
@@ -151,10 +151,10 @@ main(int argc, char *argv[])
 }
 
 
-static
-void
+static void
 cluster_one_database(const char *dbname, const char *table,
- const char *host, const char *port, const char *username, bool password,
+					 const char *host, const char *port,
+					 const char *username, bool password,
 					 const char *progname, bool echo, bool quiet)
 {
 	PQExpBufferData sql;
@@ -192,13 +192,16 @@ cluster_one_database(const char *dbname, const char *table,
 	termPQExpBuffer(&sql);
 
 	if (!quiet)
+	{
 		puts("CLUSTER");
+		fflush(stdout);
+	}
 }
 
 
-static
-void
-cluster_all_databases(const char *host, const char *port, const char *username, bool password,
+static void
+cluster_all_databases(const char *host, const char *port,
+					  const char *username, bool password,
 					  const char *progname, bool echo, bool quiet)
 {
 	PGconn	   *conn;
diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c
index e3f40971520..005c942cca3 100644
--- a/src/bin/scripts/createdb.c
+++ b/src/bin/scripts/createdb.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.6 2003/11/29 19:52:07 pgsql Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.7 2004/01/01 19:27:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -177,7 +177,10 @@ main(int argc, char *argv[])
 	PQfinish(conn);
 
 	if (!quiet)
+	{
 		puts("CREATE DATABASE");
+		fflush(stdout);
+	}
 
 	if (comment)
 	{
@@ -200,7 +203,10 @@ main(int argc, char *argv[])
 
 		PQfinish(conn);
 		if (!quiet)
+		{
 			puts("COMMENT");
+			fflush(stdout);
+		}
 	}
 
 	exit(0);
diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c
index 2a68b6b438e..021decf4bdb 100644
--- a/src/bin/scripts/createuser.c
+++ b/src/bin/scripts/createuser.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.7 2003/11/29 19:52:07 pgsql Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.8 2004/01/01 19:27:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -224,7 +224,10 @@ main(int argc, char *argv[])
 
 	PQfinish(conn);
 	if (!quiet)
+	{
 		puts("CREATE USER");
+		fflush(stdout);
+	}
 	exit(0);
 }
 
diff --git a/src/bin/scripts/dropdb.c b/src/bin/scripts/dropdb.c
index 51220fe28cc..91ad090f42a 100644
--- a/src/bin/scripts/dropdb.c
+++ b/src/bin/scripts/dropdb.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.7 2003/11/29 19:52:07 pgsql Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.8 2004/01/01 19:27:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -131,7 +131,10 @@ main(int argc, char *argv[])
 
 	PQfinish(conn);
 	if (!quiet)
+	{
 		puts("DROP DATABASE");
+		fflush(stdout);
+	}
 	exit(0);
 }
 
diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c
index b5b5439f8a2..b0dc5a7d7c3 100644
--- a/src/bin/scripts/dropuser.c
+++ b/src/bin/scripts/dropuser.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.6 2003/11/29 19:52:07 pgsql Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.7 2004/01/01 19:27:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -131,7 +131,10 @@ main(int argc, char *argv[])
 
 	PQfinish(conn);
 	if (!quiet)
+	{
 		puts("DROP USER");
+		fflush(stdout);
+	}
 	exit(0);
 }
 
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index eaac650ee06..cc9d8be1396 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.4 2003/11/29 19:52:07 pgsql Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.5 2004/01/01 19:27:15 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -14,15 +14,16 @@
 #include "common.h"
 
 
-static
-void
-vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, const char *table,
- const char *host, const char *port, const char *username, bool password,
+static void
+vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze,
+					const char *table,
+					const char *host, const char *port,
+					const char *username, bool password,
 					const char *progname, bool echo, bool quiet);
-static
-void
+static void
 vacuum_all_databases(bool full, bool verbose, bool analyze,
- const char *host, const char *port, const char *username, bool password,
+					 const char *host, const char *port,
+					 const char *username, bool password,
 					 const char *progname, bool echo, bool quiet);
 
 static void help(const char *progname);
@@ -168,10 +169,11 @@ main(int argc, char *argv[])
 }
 
 
-static
-void
-vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, const char *table,
- const char *host, const char *port, const char *username, bool password,
+static void
+vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze,
+					const char *table,
+					const char *host, const char *port,
+					const char *username, bool password,
 					const char *progname, bool echo, bool quiet)
 {
 	PQExpBufferData sql;
@@ -215,14 +217,17 @@ vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, c
 	termPQExpBuffer(&sql);
 
 	if (!quiet)
+	{
 		puts("VACUUM");
+		fflush(stdout);
+	}
 }
 
 
-static
-void
+static void
 vacuum_all_databases(bool full, bool verbose, bool analyze,
- const char *host, const char *port, const char *username, bool password,
+					 const char *host, const char *port,
+					 const char *username, bool password,
 					 const char *progname, bool echo, bool quiet)
 {
 	PGconn	   *conn;
-- 
GitLab