]> granicus.if.org Git - postgresql/commit
Simplify index tuple descriptor initialization
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 27 Aug 2018 13:50:50 +0000 (15:50 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 13 Sep 2018 06:22:03 +0000 (08:22 +0200)
commite5f1bb92cfa724ba50f5b42a9cd3f8ab544b960a
tree22acfc79450f0f1d89ba0673ef99cea82039b7eb
parent7046d30246057b65dd7ad735fd89058684e782cd
Simplify index tuple descriptor initialization

We have two code paths for initializing the tuple descriptor for a new
index: For a normal index, we copy the tuple descriptor from the table
and reset a number of fields that are not applicable to indexes.  For an
expression index, we make a blank tuple descriptor and fill in the
needed fields based on the provided expressions.  As pg_attribute has
grown over time, the number of fields that we need to reset in the first
case is now bigger than the number of fields we actually want to copy,
so it's sensible to do it the other way around: Make a blank descriptor
and copy just the fields we need.  This also allows more code sharing
between the two branches, and it avoids having to touch this code for
almost every unrelated change to the pg_attribute structure.

Reviewed-by: Arthur Zakirov <a.zakirov@postgrespro.ru>
src/backend/catalog/index.c