summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/oid.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-07-27 04:53:12 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-07-27 04:53:12 +0000
commitb6a1d25b0aa179c86e0607d4c0c3b647dc5bbb87 (patch)
tree7881c788c3f659b45eb371c0e40fbaf188051cb0 /src/backend/utils/adt/oid.c
parent524cfad23f31db70a23fc1fe748c050838d5fad0 (diff)
Error message editing in utils/adt. Again thanks to Joe Conway for doing
the bulk of the heavy lifting ...
Diffstat (limited to 'src/backend/utils/adt/oid.c')
-rw-r--r--src/backend/utils/adt/oid.c37
1 files changed, 25 insertions, 12 deletions
diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c
index 1a0a89605bb..aa070c2694c 100644
--- a/src/backend/utils/adt/oid.c
+++ b/src/backend/utils/adt/oid.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.48 2003/05/09 15:44:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.49 2003/07/27 04:53:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,7 +34,6 @@ oidin_subr(const char *funcname, const char *s, char **endloc)
Oid result;
errno = 0;
-
cvt = strtoul(s, &endptr, 10);
/*
@@ -44,12 +43,21 @@ oidin_subr(const char *funcname, const char *s, char **endloc)
* Note that for historical reasons we accept an empty string as
* meaning 0.
*/
- if (errno && errno != EINVAL)
- elog(ERROR, "%s: error reading \"%s\": %m",
- funcname, s);
+ if (errno && errno != ERANGE && errno != EINVAL)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+ errmsg("invalid input syntax for OID: \"%s\"",
+ s)));
if (endptr == s && *endptr)
- elog(ERROR, "%s: error in \"%s\": can't parse \"%s\"",
- funcname, s, endptr);
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+ errmsg("invalid input syntax for OID: \"%s\"",
+ s)));
+
+ if (errno == ERANGE)
+ ereport(ERROR,
+ (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
+ errmsg("%s is out of range for OID", s)));
if (endloc)
{
@@ -62,8 +70,10 @@ oidin_subr(const char *funcname, const char *s, char **endloc)
while (*endptr && isspace((unsigned char) *endptr))
endptr++;
if (*endptr)
- elog(ERROR, "%s: error in \"%s\": can't parse \"%s\"",
- funcname, s, endptr);
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+ errmsg("invalid input syntax for OID: \"%s\"",
+ s)));
}
result = (Oid) cvt;
@@ -83,8 +93,9 @@ oidin_subr(const char *funcname, const char *s, char **endloc)
#if OID_MAX != ULONG_MAX
if (cvt != (unsigned long) result &&
cvt != (unsigned long) ((int) result))
- elog(ERROR, "%s: error reading \"%s\": %s",
- funcname, s, strerror(ERANGE));
+ ereport(ERROR,
+ (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
+ errmsg("%s is out of range for OID", s)));
#endif
return result;
@@ -160,7 +171,9 @@ oidvectorin(PG_FUNCTION_ARGS)
while (*oidString && isspace((unsigned char) *oidString))
oidString++;
if (*oidString)
- elog(ERROR, "oidvector value has too many values");
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("oidvector has too many elements")));
while (slot < INDEX_MAX_KEYS)
result[slot++] = InvalidOid;