diff options
author | Andres Freund <andres@anarazel.de> | 2017-08-20 11:19:07 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2017-08-20 11:19:07 -0700 |
commit | 2cd70845240087da205695baedab6412342d1dbe (patch) | |
tree | 20a3b6a2231dae248218ac54983c7a854328265f /src/backend/parser/parse_coerce.c | |
parent | b1c2d76a2fcef812af0be3343082414d401909c8 (diff) | |
download | postgresql-2cd70845240087da205695baedab6412342d1dbe.tar.gz postgresql-2cd70845240087da205695baedab6412342d1dbe.zip |
Change tupledesc->attrs[n] to TupleDescAttr(tupledesc, n).
This is a mechanical change in preparation for a later commit that
will change the layout of TupleDesc. Introducing a macro to abstract
the details of where attributes are stored will allow us to change
that in separate step and revise it in future.
Author: Thomas Munro, editorialized by Andres Freund
Reviewed-By: Andres Freund
Discussion: https://postgr.es/m/CAEepm=0ZtQ-SpsgCyzzYpsXS6e=kZWqk3g5Ygn3MDV7A8dabUA@mail.gmail.com
Diffstat (limited to 'src/backend/parser/parse_coerce.c')
-rw-r--r-- | src/backend/parser/parse_coerce.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 0bc7dba6a0e..e95cee1ebfa 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -982,9 +982,10 @@ coerce_record_to_complex(ParseState *pstate, Node *node, Node *expr; Node *cexpr; Oid exprtype; + Form_pg_attribute attr = TupleDescAttr(tupdesc, i); /* Fill in NULLs for dropped columns in rowtype */ - if (tupdesc->attrs[i]->attisdropped) + if (attr->attisdropped) { /* * can't use atttypid here, but it doesn't really matter what type @@ -1008,8 +1009,8 @@ coerce_record_to_complex(ParseState *pstate, Node *node, cexpr = coerce_to_target_type(pstate, expr, exprtype, - tupdesc->attrs[i]->atttypid, - tupdesc->attrs[i]->atttypmod, + attr->atttypid, + attr->atttypmod, ccontext, COERCE_IMPLICIT_CAST, -1); @@ -1021,7 +1022,7 @@ coerce_record_to_complex(ParseState *pstate, Node *node, format_type_be(targetTypeId)), errdetail("Cannot cast type %s to %s in column %d.", format_type_be(exprtype), - format_type_be(tupdesc->attrs[i]->atttypid), + format_type_be(attr->atttypid), ucolno), parser_coercion_errposition(pstate, location, expr))); newargs = lappend(newargs, cexpr); |