aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>1999-05-22 19:49:42 +0000
committerTom Lane <tgl@sss.pgh.pa.us>1999-05-22 19:49:42 +0000
commitf9f90b21b2d6675fe55e97cc85c2e952b475f1f4 (patch)
treed8231a4e010a4fc620d6632adcf270e07e032dc8 /src
parentb21005fa7cf2fb2c319b48d1b7669239553360a5 (diff)
downloadpostgresql-f9f90b21b2d6675fe55e97cc85c2e952b475f1f4.tar.gz
postgresql-f9f90b21b2d6675fe55e97cc85c2e952b475f1f4.zip
Improve error message from failed LOAD command (include
kernel's error description when file is not accessible).
Diffstat (limited to 'src')
-rw-r--r--src/backend/tcop/utility.c16
-rw-r--r--src/backend/utils/fmgr/dfmgr.c14
2 files changed, 12 insertions, 18 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 0df4bf26414..a7fb1ed3a3f 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -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;
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 29949caad2a..4b625bfc7c5 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -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))