Prevent display of dropped columns in row constraint violation messages.
ExecBuildSlotValueDescription() printed "null" for each dropped column in
a row being complained of by ExecConstraints(). This has some sanity in
terms of the underlying implementation, but is of course pretty surprising
to users. To fix, we must pass the target relation's descriptor to
ExecBuildSlotValueDescription(), because the slot descriptor it had been
using doesn't get labeled with attisdropped markers.
Per bug #8408 from Maxim Boguk. Back-patch to 9.2 where the feature of
printing row values in NOT NULL and CHECK constraint violation messages
was introduced.
Michael Paquier and Tom Lane
Branch
------
REL9_3_STABLE
Details
-------
http://git.postgresql.org/pg/commitdiff/df5d5f1dc75137db36099eb6a3759bde678828ad
Modified Files
--------------
src/backend/executor/execMain.c | 43 +++++++++++++++++++++--------
src/test/regress/expected/alter_table.out | 14 ++++++++++
src/test/regress/sql/alter_table.sql | 9 ++++++
3 files changed, 54 insertions(+), 12 deletions(-)