Fixed deficiency where an unterminated (no semicolon) command at end of

psql script would be dropped silently.
This commit is contained in:
Peter Eisentraut 2000-03-13 13:46:32 +00:00
parent e631df3c1b
commit a1642089bf

View file

@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.24 2000/03/05 13:30:19 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.25 2000/03/13 13:46:32 petere Exp $
*/ */
#include "postgres.h" #include "postgres.h"
#include "mainloop.h" #include "mainloop.h"
@ -61,7 +61,7 @@ MainLoop(FILE *source)
bool prev_cmd_interactive; bool prev_cmd_interactive;
unsigned int prev_lineno; unsigned int prev_lineno;
bool die_on_error; volatile bool die_on_error = false;
/* Save old settings */ /* Save old settings */
@ -395,6 +395,7 @@ MainLoop(FILE *source)
appendPQExpBufferChar(query_buf, '\n'); appendPQExpBufferChar(query_buf, '\n');
/* append the line to the query buffer */ /* append the line to the query buffer */
appendPQExpBufferStr(query_buf, line + query_start); appendPQExpBufferStr(query_buf, line + query_start);
appendPQExpBufferChar(query_buf, ';');
} }
/* execute query */ /* execute query */
@ -515,8 +516,21 @@ MainLoop(FILE *source)
successResult = EXIT_BADCONN; successResult = EXIT_BADCONN;
break; break;
} }
} /* while !endofprogram */ } /* while !endoffile/session */
/*
* Process query at the end of file without a semicolon
*/
if (query_buf->len > 0 && !pset.cur_cmd_interactive)
{
success = SendQuery(query_buf->data);
if (!success && die_on_error)
successResult = EXIT_USER;
else if (pset.db == NULL)
successResult = EXIT_BADCONN;
}
destroyPQExpBuffer(query_buf); destroyPQExpBuffer(query_buf);
destroyPQExpBuffer(previous_buf); destroyPQExpBuffer(previous_buf);