aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_target.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/parse_target.c')
-rw-r--r--src/backend/parser/parse_target.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index 0a70539fb11..c3cb0357ca9 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -484,8 +484,8 @@ transformAssignedExpr(ParseState *pstate,
colname),
parser_errposition(pstate, location)));
attrtype = attnumTypeId(rd, attrno);
- attrtypmod = rd->rd_att->attrs[attrno - 1]->atttypmod;
- attrcollation = rd->rd_att->attrs[attrno - 1]->attcollation;
+ attrtypmod = TupleDescAttr(rd->rd_att, attrno - 1)->atttypmod;
+ attrcollation = TupleDescAttr(rd->rd_att, attrno - 1)->attcollation;
/*
* If the expression is a DEFAULT placeholder, insert the attribute's
@@ -959,19 +959,21 @@ checkInsertTargets(ParseState *pstate, List *cols, List **attrnos)
/*
* Generate default column list for INSERT.
*/
- Form_pg_attribute *attr = pstate->p_target_relation->rd_att->attrs;
int numcol = pstate->p_target_relation->rd_rel->relnatts;
int i;
for (i = 0; i < numcol; i++)
{
ResTarget *col;
+ Form_pg_attribute attr;
- if (attr[i]->attisdropped)
+ attr = TupleDescAttr(pstate->p_target_relation->rd_att, i);
+
+ if (attr->attisdropped)
continue;
col = makeNode(ResTarget);
- col->name = pstrdup(NameStr(attr[i]->attname));
+ col->name = pstrdup(NameStr(attr->attname));
col->indirection = NIL;
col->val = NULL;
col->location = -1;
@@ -1407,7 +1409,7 @@ ExpandRowReference(ParseState *pstate, Node *expr,
numAttrs = tupleDesc->natts;
for (i = 0; i < numAttrs; i++)
{
- Form_pg_attribute att = tupleDesc->attrs[i];
+ Form_pg_attribute att = TupleDescAttr(tupleDesc, i);
FieldSelect *fselect;
if (att->attisdropped)