Use separate SQLSTATE codes for file not found/file exists, rather than

lumping them into ERRCODE_UNDEFINED_OBJECT/ERRCODE_DUPLICATE_OBJECT.
This seems reasonable since 'object' was meant to refer to 'object in the
database' and a file is outside the database.  Per request from Dave
Cramer.
This commit is contained in:
Tom Lane 2003-08-26 21:15:27 +00:00
parent 0b511f07e3
commit 1de9615a58
2 changed files with 9 additions and 7 deletions

View File

@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.119 2003/08/08 21:42:11 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.120 2003/08/26 21:15:27 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -530,20 +530,20 @@ errcode_for_file_access(void)
edata->sqlerrcode = ERRCODE_INSUFFICIENT_PRIVILEGE;
break;
/* Object not found */
/* File not found */
case ENOENT: /* No such file or directory */
edata->sqlerrcode = ERRCODE_UNDEFINED_OBJECT;
edata->sqlerrcode = ERRCODE_UNDEFINED_FILE;
break;
/* Duplicate object */
/* Duplicate file */
case EEXIST: /* File exists */
edata->sqlerrcode = ERRCODE_DUPLICATE_OBJECT;
edata->sqlerrcode = ERRCODE_DUPLICATE_FILE;
break;
/* Wrong object type or state */
case ENOTDIR: /* Not a directory */
case EISDIR: /* Is a directory */
case ENOTEMPTY: /* Directory not empty */
case ENOTEMPTY: /* Directory not empty */
edata->sqlerrcode = ERRCODE_WRONG_OBJECT_TYPE;
break;

View File

@ -11,7 +11,7 @@
*
* Copyright (c) 2003, PostgreSQL Global Development Group
*
* $Id: errcodes.h,v 1.4 2003/08/04 00:43:32 momjian Exp $
* $Id: errcodes.h,v 1.5 2003/08/26 21:15:27 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -294,6 +294,8 @@
/* Class 58 - System Error (class borrowed from DB2) */
/* (we define this as errors external to PostgreSQL itself) */
#define ERRCODE_IO_ERROR MAKE_SQLSTATE('5','8', '0','3','0')
#define ERRCODE_UNDEFINED_FILE MAKE_SQLSTATE('5','8', 'P','0','1')
#define ERRCODE_DUPLICATE_FILE MAKE_SQLSTATE('5','8', 'P','0','2')
/* Class F0 - Configuration File Error (PostgreSQL-specific error class) */
#define ERRCODE_CONFIG_FILE_ERROR MAKE_SQLSTATE('F','0', '0','0','0')