diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 0df4bf264146fbd5d604b3454fdd8a7a7a1f41c5..a7fb1ed3a3f42855f87a6e2ba04125fe5aa53482 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 29949caad2afea04eb595b2c341f2146a832aacd..4b625bfc7c5250b9b4b8c85ea6eb5dcf2f9e187b 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))