From 6a020b5adc2d310a26b1bc2ed5d1ad1b89bbb09b Mon Sep 17 00:00:00 2001 From: Jason Petersen Date: Thu, 31 Aug 2017 16:04:56 -0600 Subject: [PATCH] Update CopyGetAttnums with latest from PostgreSQL This function was recently modified to use the TupleDescAttr wrapper, which abstracts away recent changes to TupleDesc. --- .../distributed/executor/multi_utility.c | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/backend/distributed/executor/multi_utility.c b/src/backend/distributed/executor/multi_utility.c index 2438e2dc5..9be3c8134 100644 --- a/src/backend/distributed/executor/multi_utility.c +++ b/src/backend/distributed/executor/multi_utility.c @@ -3257,16 +3257,13 @@ CopyGetAttnums(TupleDesc tupDesc, Relation rel, List *attnamelist) if (attnamelist == NIL) { /* Generate default column list */ - Form_pg_attribute *attr = tupDesc->attrs; int attr_count = tupDesc->natts; int i; for (i = 0; i < attr_count; i++) { - if (attr[i]->attisdropped) - { + if (TupleDescAttr(tupDesc, i)->attisdropped) continue; - } attnums = lappend_int(attnums, i + 1); } } @@ -3285,41 +3282,35 @@ CopyGetAttnums(TupleDesc tupDesc, Relation rel, List *attnamelist) attnum = InvalidAttrNumber; for (i = 0; i < tupDesc->natts; i++) { - if (tupDesc->attrs[i]->attisdropped) - { + Form_pg_attribute att = TupleDescAttr(tupDesc, i); + + if (att->attisdropped) continue; - } - if (namestrcmp(&(tupDesc->attrs[i]->attname), name) == 0) + if (namestrcmp(&(att->attname), name) == 0) { - attnum = tupDesc->attrs[i]->attnum; + attnum = att->attnum; break; } } if (attnum == InvalidAttrNumber) { if (rel != NULL) - { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_COLUMN), - errmsg("column \"%s\" of relation \"%s\" does not exist", - name, RelationGetRelationName(rel)))); - } + errmsg("column \"%s\" of relation \"%s\" does not exist", + name, RelationGetRelationName(rel)))); else - { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_COLUMN), errmsg("column \"%s\" does not exist", name))); - } } /* Check for duplicates */ if (list_member_int(attnums, attnum)) - { ereport(ERROR, (errcode(ERRCODE_DUPLICATE_COLUMN), errmsg("column \"%s\" specified more than once", name))); - } attnums = lappend_int(attnums, attnum); } }