diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-09-19 23:40:56 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-09-19 23:40:56 +0000 |
commit | da395b56cd0844f73232961fe0823f4c224bc721 (patch) | |
tree | bb7ef806205c2f5bd123d8ef0975655bebaaa5ff /src/backend/utils/adt/ruleutils.c | |
parent | 4a0c3a6142698c7f2f99230679dc80cd9d7e5e4e (diff) | |
download | postgresql-da395b56cd0844f73232961fe0823f4c224bc721.tar.gz postgresql-da395b56cd0844f73232961fe0823f4c224bc721.zip |
Tweak heap.c to refuse attempts to create table columns of standalone
composite types. Add a couple more lsyscache.c routines to support this,
and make use of them in some other places that were doing lookups the
hard way.
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 47f61865fc3..796eaa05069 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -3,7 +3,7 @@ * back to source text * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.123 2002/09/19 22:48:33 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.124 2002/09/19 23:40:56 tgl Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -2087,24 +2087,14 @@ get_rule_expr(Node *node, deparse_context *context, { FieldSelect *fselect = (FieldSelect *) node; Oid argType = exprType(fselect->arg); - HeapTuple typetup; - Form_pg_type typeStruct; Oid typrelid; char *fieldname; /* lookup arg type and get the field name */ - typetup = SearchSysCache(TYPEOID, - ObjectIdGetDatum(argType), - 0, 0, 0); - if (!HeapTupleIsValid(typetup)) - elog(ERROR, "cache lookup of type %u failed", - argType); - typeStruct = (Form_pg_type) GETSTRUCT(typetup); - typrelid = typeStruct->typrelid; + typrelid = get_typ_typrelid(argType); if (!OidIsValid(typrelid)) elog(ERROR, "Argument type %s of FieldSelect is not a tuple type", format_type_be(argType)); - ReleaseSysCache(typetup); fieldname = get_relid_attribute_name(typrelid, fselect->fieldnum); |