Clean up tupdesc.c for recent changes.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 3 Jan 2018 22:53:06 +0000 (17:53 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 3 Jan 2018 22:53:41 +0000 (17:53 -0500)
commit47c6772eb7222dbfa200db4bbeba8002b96b7976
tree8203ad49ef8cb8bf693e303dc920bc82de647be1
parentbab2969867fbba6a6d12730f36a20d13542aea5a
Clean up tupdesc.c for recent changes.

TupleDescCopy needs to have the same effects as CreateTupleDescCopy in
that, since it doesn't copy constraints, it should clear the per-attribute
fields associated with them.  Oversight in commit cc5f81366.

Since TupleDescCopy has already established the presumption that it
can just flat-copy the entire attribute array in one go, propagate
that approach into CreateTupleDescCopy and CreateTupleDescCopyConstr.
(I'm suspicious that this would lead to valgrind complaints if we
had any trailing padding in the struct, but we do not, and anyway
fixing that seems like a job for a separate commit.)

Add some better comments.

Thomas Munro, reviewed by Vik Fearing, some additional hacking by me

Discussion: https://postgr.es/m/CAEepm=0NvOGZ8B6GbQyQe2C_c2m3LKJ9w=8OMBaYRLgZ_Gw6Nw@mail.gmail.com
src/backend/access/common/tupdesc.c