diff options
Diffstat (limited to 'src/backend/access/common')
| -rw-r--r-- | src/backend/access/common/heaptuple.c | 36 | ||||
| -rw-r--r-- | src/backend/access/common/indextuple.c | 15 | ||||
| -rw-r--r-- | src/backend/access/common/printtup.c | 6 | ||||
| -rw-r--r-- | src/backend/access/common/tupdesc.c | 22 |
4 files changed, 47 insertions, 32 deletions
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index 470241e22a..ae1df582b0 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.83 2002/09/27 15:04:08 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.84 2003/07/21 20:29:37 tgl Exp $ * * NOTES * The old interface functions have been converted to macros @@ -173,13 +173,11 @@ heap_attisnull(HeapTuple tup, int attnum) case MinCommandIdAttributeNumber: case MaxTransactionIdAttributeNumber: case MaxCommandIdAttributeNumber: + /* these are never null */ break; - case 0: - elog(ERROR, "heap_attisnull: zero attnum disallowed"); - default: - elog(ERROR, "heap_attisnull: undefined negative attnum"); + elog(ERROR, "invalid attnum: %d", attnum); } return 0; @@ -457,7 +455,7 @@ heap_getsysattr(HeapTuple tup, int attnum, bool *isnull) result = ObjectIdGetDatum(tup->t_tableOid); break; default: - elog(ERROR, "heap_getsysattr: invalid attnum %d", attnum); + elog(ERROR, "invalid attnum: %d", attnum); result = 0; /* keep compiler quiet */ break; } @@ -581,8 +579,10 @@ heap_formtuple(TupleDesc tupleDescriptor, int numberOfAttributes = tupleDescriptor->natts; if (numberOfAttributes > MaxTupleAttributeNumber) - elog(ERROR, "heap_formtuple: numberOfAttributes %d exceeds limit %d", - numberOfAttributes, MaxTupleAttributeNumber); + ereport(ERROR, + (errcode(ERRCODE_TOO_MANY_COLUMNS), + errmsg("number of attributes %d exceeds limit, %d", + numberOfAttributes, MaxTupleAttributeNumber))); for (i = 0; i < numberOfAttributes; i++) { @@ -666,14 +666,11 @@ heap_modifytuple(HeapTuple tuple, * allocate and fill *value and *nulls arrays from either the tuple or * the repl information, as appropriate. */ - value = (Datum *) palloc(numberOfAttributes * sizeof *value); - nulls = (char *) palloc(numberOfAttributes * sizeof *nulls); + value = (Datum *) palloc(numberOfAttributes * sizeof(Datum)); + nulls = (char *) palloc(numberOfAttributes * sizeof(char)); - for (attoff = 0; - attoff < numberOfAttributes; - attoff += 1) + for (attoff = 0; attoff < numberOfAttributes; attoff++) { - if (repl[attoff] == ' ') { value[attoff] = heap_getattr(tuple, @@ -683,13 +680,13 @@ heap_modifytuple(HeapTuple tuple, nulls[attoff] = (isNull) ? 'n' : ' '; } - else if (repl[attoff] != 'r') - elog(ERROR, "heap_modifytuple: repl is \\%3d", repl[attoff]); - else - { /* == 'r' */ + else if (repl[attoff] == 'r') + { value[attoff] = replValue[attoff]; nulls[attoff] = replNull[attoff]; } + else + elog(ERROR, "unrecognized replace flag: %d", (int) repl[attoff]); } /* @@ -699,6 +696,9 @@ heap_modifytuple(HeapTuple tuple, value, nulls); + pfree(value); + pfree(nulls); + /* * copy the identification info of the old tuple: t_ctid, t_self, and * OID (if any) diff --git a/src/backend/access/common/indextuple.c b/src/backend/access/common/indextuple.c index e6518922cb..abf25915ab 100644 --- a/src/backend/access/common/indextuple.c +++ b/src/backend/access/common/indextuple.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.64 2003/02/23 06:17:12 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.65 2003/07/21 20:29:37 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -52,8 +52,10 @@ index_formtuple(TupleDesc tupleDescriptor, #endif if (numberOfAttributes > INDEX_MAX_KEYS) - elog(ERROR, "index_formtuple: numberOfAttributes %d > %d", - numberOfAttributes, INDEX_MAX_KEYS); + ereport(ERROR, + (errcode(ERRCODE_TOO_MANY_COLUMNS), + errmsg("number of index attributes %d exceeds limit, %d", + numberOfAttributes, INDEX_MAX_KEYS))); #ifdef TOAST_INDEX_HACK for (i = 0; i < numberOfAttributes; i++) @@ -158,8 +160,11 @@ index_formtuple(TupleDesc tupleDescriptor, * it in t_info. */ if ((size & INDEX_SIZE_MASK) != size) - elog(ERROR, "index_formtuple: data takes %lu bytes, max is %d", - (unsigned long) size, INDEX_SIZE_MASK); + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmsg("index tuple requires %lu bytes, maximum size is %lu", + (unsigned long) size, + (unsigned long) INDEX_SIZE_MASK))); infomask |= size; diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c index 29ed33c9f6..61ecdcd7e5 100644 --- a/src/backend/access/common/printtup.c +++ b/src/backend/access/common/printtup.c @@ -9,7 +9,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.74 2003/05/26 17:51:38 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.75 2003/07/21 20:29:38 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -273,7 +273,9 @@ printtup_prepare_info(DR_printtup *myState, TupleDesc typeinfo, int numAttrs) fmgr_info(thisState->typsend, &thisState->finfo); } else - elog(ERROR, "Unsupported format code %d", format); + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("unsupported format code: %d", format))); } } diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index 3bd15bd1fb..7ec20cc420 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.95 2003/06/15 17:59:10 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.96 2003/07/21 20:29:38 tgl Exp $ * * NOTES * some of the executor utility code such as "ExecTypeFromTL" should be @@ -417,7 +417,7 @@ TupleDescInitEntry(TupleDesc desc, ObjectIdGetDatum(oidtypeid), 0, 0, 0); if (!HeapTupleIsValid(tuple)) - elog(ERROR, "Unable to look up type id %u", oidtypeid); + elog(ERROR, "cache lookup failed for type %u", oidtypeid); /* * type info exists so we initialize our attribute information from @@ -643,7 +643,7 @@ TypeGetTupleDesc(Oid typeoid, List *colaliases) int natts; if (!OidIsValid(relid)) - elog(ERROR, "Invalid typrelid for complex type %u", typeoid); + elog(ERROR, "invalid typrelid for complex type %u", typeoid); rel = relation_open(relid, AccessShareLock); tupdesc = CreateTupleDescCopy(RelationGetDescr(rel)); @@ -657,7 +657,9 @@ TypeGetTupleDesc(Oid typeoid, List *colaliases) /* does the list length match the number of attributes? */ if (length(colaliases) != natts) - elog(ERROR, "TypeGetTupleDesc: number of aliases does not match number of attributes"); + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("number of aliases does not match number of attributes"))); /* OK, use the aliases instead */ for (varattno = 0; varattno < natts; varattno++) @@ -676,11 +678,15 @@ TypeGetTupleDesc(Oid typeoid, List *colaliases) /* the alias list is required for base types */ if (colaliases == NIL) - elog(ERROR, "TypeGetTupleDesc: no column alias was provided"); + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("no column alias was provided"))); /* the alias list length must be 1 */ if (length(colaliases) != 1) - elog(ERROR, "TypeGetTupleDesc: number of aliases does not match number of attributes"); + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("number of aliases does not match number of attributes"))); /* OK, get the column alias */ attname = strVal(lfirst(colaliases)); @@ -695,7 +701,9 @@ TypeGetTupleDesc(Oid typeoid, List *colaliases) false); } else if (functyptype == 'p' && typeoid == RECORDOID) - elog(ERROR, "Unable to determine tuple description for function returning \"record\""); + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("unable to determine tuple description for function returning record"))); else { /* crummy error message, but parser should have caught this */ |
