mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Properly recognize and announce input errors.
This commit is contained in:
parent
492ae18f0d
commit
3f9ef2bf8c
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.62 2007/01/05 22:19:49 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.63 2007/11/28 09:17:46 petere Exp $
|
||||
*/
|
||||
#include "postgres_fe.h"
|
||||
|
||||
@ -147,7 +147,7 @@ pg_send_history(PQExpBuffer history_buf)
|
||||
* gets_fromFile
|
||||
*
|
||||
* Gets a line of noninteractive input from a file (which could be stdin).
|
||||
* The result is a malloc'd string.
|
||||
* The result is a malloc'd string, or NULL on EOF or input error.
|
||||
*
|
||||
* Caller *must* have set up sigint_interrupt_jmp before calling.
|
||||
*
|
||||
@ -179,9 +179,16 @@ gets_fromFile(FILE *source)
|
||||
/* Disable SIGINT again */
|
||||
sigint_interrupt_enabled = false;
|
||||
|
||||
/* EOF? */
|
||||
/* EOF or error? */
|
||||
if (result == NULL)
|
||||
{
|
||||
if (ferror(source))
|
||||
{
|
||||
psql_error("could not read from input file: %s\n", strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
appendPQExpBufferStr(buffer, line);
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.85 2007/01/05 22:19:49 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/psql/mainloop.c,v 1.86 2007/11/28 09:17:46 petere Exp $
|
||||
*/
|
||||
#include "postgres_fe.h"
|
||||
#include "mainloop.h"
|
||||
@ -129,7 +129,11 @@ MainLoop(FILE *source)
|
||||
line = gets_interactive(get_prompt(prompt_status));
|
||||
}
|
||||
else
|
||||
{
|
||||
line = gets_fromFile(source);
|
||||
if (!line && ferror(source))
|
||||
successResult = EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/*
|
||||
* query_buf holds query already accumulated. line is the malloc'd
|
||||
|
Loading…
Reference in New Issue
Block a user