From ee9796e44809ec11316f9271ee2e5d604f7d1319 Mon Sep 17 00:00:00 2001 From: Neil Conway Date: Fri, 22 Jun 2007 03:19:57 +0000 Subject: [PATCH] In psql, when running a SELECT query using a cursor, flush the query output after each FETCH. This ensures that incremental results are available to clients that are executing long-running SELECT queries via the FETCH_COUNT feature. --- src/bin/psql/common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index e56823c667..0a22d205c9 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2006, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.130.2.1 2007/04/16 20:16:11 mha Exp $ + * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.130.2.2 2007/06/22 03:19:57 neilc Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -1100,6 +1100,12 @@ ExecQueryUsingCursor(const char *query, double *elapsed_msec) printQuery(results, &my_popt, pset.queryFout, pset.logfile); + /* + * Make sure to flush the output stream, so intermediate + * results are visible to the client immediately. + */ + fflush(pset.queryFout); + /* after the first result set, disallow header decoration */ my_popt.topt.start_table = false; my_popt.topt.prior_records += ntuples;