From: Tom Lane Date: Thu, 29 Aug 2002 04:38:04 +0000 (+0000) Subject: Produce a somewhat-useful error message, namely X-Git-Tag: REL7_3~713 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dc4e983ff6f3eb2279931a3fd3bcc2bb1195b07c;p=postgresql Produce a somewhat-useful error message, namely ERROR: Cannot display a value of type RECORD rather than a random integer when someone tries to SELECT a tuple value. Per pghackers discussion around 26-May-02. --- diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index c768ca2d55..faea56df47 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.222 2002/08/29 00:17:02 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.223 2002/08/29 04:38:04 tgl Exp $ * * * INTERFACE ROUTINES @@ -623,6 +623,12 @@ AddNewRelationType(const char *typeName, Oid new_type_oid) { /* + * We set the I/O procedures of a complex type to record_in and + * record_out, so that a user will get an error message not a weird + * number if he tries to SELECT a complex type. + * + * OLD and probably obsolete comments: + * * The sizes are set to oid size because it makes implementing sets * MUCH easier, and no one (we hope) uses these fields to figure out * how much space to allocate for the type. An oid is the type used @@ -639,8 +645,8 @@ AddNewRelationType(const char *typeName, sizeof(Oid), /* internal size */ 'c', /* type-type (complex) */ ',', /* default array delimiter */ - F_OIDIN, /* input procedure */ - F_OIDOUT, /* output procedure */ + F_RECORD_IN, /* input procedure */ + F_RECORD_OUT, /* output procedure */ InvalidOid, /* array element type - irrelevant */ InvalidOid, /* domain base type - irrelevant */ NULL, /* default type value - none */ diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h index 3708a71bab..5b4e15c559 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_type.h,v 1.131 2002/08/29 00:17:06 tgl Exp $ + * $Id: pg_type.h,v 1.132 2002/08/29 04:38:04 tgl Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -296,13 +296,13 @@ DESCR("array of INDEX_MAX_KEYS oids, used in system tables"); DATA(insert OID = 32 ( SET PGNSP PGUID -1 f b t \054 0 0 unknownin unknownout i p f 0 -1 0 _null_ _null_ )); DESCR("set of tuples"); -DATA(insert OID = 71 ( pg_type PGNSP PGUID 4 t c t \054 1247 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); -DATA(insert OID = 75 ( pg_attribute PGNSP PGUID 4 t c t \054 1249 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); -DATA(insert OID = 81 ( pg_proc PGNSP PGUID 4 t c t \054 1255 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); -DATA(insert OID = 83 ( pg_class PGNSP PGUID 4 t c t \054 1259 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); -DATA(insert OID = 86 ( pg_shadow PGNSP PGUID 4 t c t \054 1260 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); -DATA(insert OID = 87 ( pg_group PGNSP PGUID 4 t c t \054 1261 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); -DATA(insert OID = 88 ( pg_database PGNSP PGUID 4 t c t \054 1262 0 int4in int4out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 71 ( pg_type PGNSP PGUID 4 t c t \054 1247 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 75 ( pg_attribute PGNSP PGUID 4 t c t \054 1249 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 81 ( pg_proc PGNSP PGUID 4 t c t \054 1255 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 83 ( pg_class PGNSP PGUID 4 t c t \054 1259 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 86 ( pg_shadow PGNSP PGUID 4 t c t \054 1260 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 87 ( pg_group PGNSP PGUID 4 t c t \054 1261 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); +DATA(insert OID = 88 ( pg_database PGNSP PGUID 4 t c t \054 1262 0 record_in record_out i p f 0 -1 0 _null_ _null_ )); /* OIDS 100 - 199 */