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 d64df4434c1c6b7dba7299110942524217f2a65a..ca06e10e98d7f79aa731eab471e14af926d99ced 100644 (file)
@@ -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: