Skip to content
Snippets Groups Projects
Commit f9f90b21 authored by Tom Lane's avatar Tom Lane
Browse files

Improve error message from failed LOAD command (include

kernel's error description when file is not accessible).
parent b21005fa
No related merge requests found
......@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.59 1999/03/17 22:53:19 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.60 1999/05/22 19:49:42 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -612,22 +612,12 @@ ProcessUtility(Node *parsetree,
case T_LoadStmt:
{
LoadStmt *stmt = (LoadStmt *) parsetree;
FILE *fp;
char *filename;
PS_SET_STATUS(commandTag = "LOAD");
CHECK_IF_ABORTED();
filename = stmt->filename;
closeAllVfds();
#ifndef __CYGWIN32__
if ((fp = AllocateFile(filename, "r")) == NULL)
#else
if ((fp = AllocateFile(filename, "rb")) == NULL)
#endif
elog(ERROR, "LOAD: could not open file '%s'", filename);
FreeFile(fp);
load_file(filename);
closeAllVfds(); /* probably not necessary... */
load_file(stmt->filename);
}
break;
......
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.24 1999/05/10 00:46:13 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.25 1999/05/22 19:49:41 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -148,7 +148,7 @@ handle_load(char *filename, char *funcname)
if (file_scanner == (DynamicFileList *) NULL)
{
if (stat(filename, &stat_buf) == -1)
elog(ERROR, "stat failed on file %s", filename);
elog(ERROR, "stat failed on file '%s': %m", filename);
for (file_scanner = file_list;
file_scanner != (DynamicFileList *) NULL
......@@ -237,13 +237,17 @@ void
load_file(char *filename)
{
DynamicFileList *file_scanner,
*p;
*p;
struct stat stat_buf;
int done = 0;
/*
* We need to do stat() in order to determine whether this is the
* same file as a previously loaded file; it's also handy so as to
* give a good error message if bogus file name given.
*/
if (stat(filename, &stat_buf) == -1)
elog(ERROR, "stat failed on file %s", filename);
elog(ERROR, "LOAD: could not open file '%s': %m", filename);
if (file_list != (DynamicFileList *) NULL
&& !NOT_EQUAL(stat_buf, *file_list))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment