aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2017-01-19 14:13:15 -0500
committerRobert Haas <rhaas@postgresql.org>2017-01-19 14:13:15 -0500
commitcc144155f7cdd51e19984f82da6625dc75de9fda (patch)
tree6de0f6e0a574aa3e296bfd9d6dbbb206b01684a8 /src
parent8a8afe2f54c27dbb47df3853803158c5205d41ce (diff)
downloadpostgresql-cc144155f7cdd51e19984f82da6625dc75de9fda.tar.gz
postgresql-cc144155f7cdd51e19984f82da6625dc75de9fda.zip
Avoid some code duplication in map_partition_varattnos().
Code to map attribute numbers in map_partition_varattnos() duplicates what convert_tuples_by_name_map() does. Avoid that. Amit Langote, per a report from Álvaro Herrera. Discussion: http://postgr.es/m/9ce97382-54c8-deb3-9ee9-a2ec271d866b%40lab.ntt.co.jp
Diffstat (limited to 'src')
-rw-r--r--src/backend/catalog/partition.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c
index ff55f9c1b84..45f7132f543 100644
--- a/src/backend/catalog/partition.c
+++ b/src/backend/catalog/partition.c
@@ -917,32 +917,19 @@ List *
map_partition_varattnos(List *expr, int target_varno,
Relation partrel, Relation parent)
{
- TupleDesc tupdesc = RelationGetDescr(parent);
- AttrNumber attno;
AttrNumber *part_attnos;
bool found_whole_row;
if (expr == NIL)
return NIL;
- part_attnos = (AttrNumber *) palloc0(tupdesc->natts * sizeof(AttrNumber));
- for (attno = 1; attno <= tupdesc->natts; attno++)
- {
- Form_pg_attribute attribute = tupdesc->attrs[attno - 1];
- char *attname = NameStr(attribute->attname);
- AttrNumber part_attno;
-
- if (attribute->attisdropped)
- continue;
-
- part_attno = get_attnum(RelationGetRelid(partrel), attname);
- part_attnos[attno - 1] = part_attno;
- }
-
+ part_attnos = convert_tuples_by_name_map(RelationGetDescr(partrel),
+ RelationGetDescr(parent),
+ gettext_noop("could not convert row type"));
expr = (List *) map_variable_attnos((Node *) expr,
target_varno, 0,
part_attnos,
- tupdesc->natts,
+ RelationGetDescr(parent)->natts,
&found_whole_row);
/* There can never be a whole-row reference here */
if (found_whole_row)