]> granicus.if.org Git - postgresql/commitdiff
Ensure previous setting of pset.queryFout is restored after a failed
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 1 Mar 2001 18:34:29 +0000 (18:34 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 1 Mar 2001 18:34:29 +0000 (18:34 +0000)
backslash-g command.

src/bin/psql/common.c

index 9d3323a2ac34d5ce50e8d8dcbb9b4580ae3cc601..d8bd3e8d44d604e86260c0cdd2c020fb0e48397c 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.30 2001/02/10 02:31:28 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.31 2001/03/01 18:34:29 tgl Exp $
  */
 #include "postgres_fe.h"
 
@@ -429,34 +429,35 @@ SendQuery(const char *query)
                                        FILE       *queryFout_copy = pset.queryFout;
                                        bool            queryFoutPipe_copy = pset.queryFoutPipe;
 
-                                       pset.queryFout = NULL;          /* so it doesn't get
+                                       pset.queryFout = stdout;        /* so it doesn't get
                                                                                                 * closed */
 
                                        /* open file/pipe */
                                        if (!setQFout(pset.gfname))
                                        {
+                                               pset.queryFout = queryFout_copy;
+                                               pset.queryFoutPipe = queryFoutPipe_copy;
                                                success = false;
                                                break;
                                        }
 
                                        printQuery(results, &pset.popt, pset.queryFout);
 
-                                       /* close file/pipe */
+                                       /* close file/pipe, restore old setting */
                                        setQFout(NULL);
 
-                                       free(pset.gfname);
-                                       pset.gfname = NULL;
-
                                        pset.queryFout = queryFout_copy;
                                        pset.queryFoutPipe = queryFoutPipe_copy;
 
+                                       free(pset.gfname);
+                                       pset.gfname = NULL;
+
                                        success = true;
-                                       break;
                                }
                                else
                                {
-                                       success = true;
                                        printQuery(results, &pset.popt, pset.queryFout);
+                                       success = true;
                                }
                                break;
                        case PGRES_EMPTY_QUERY: