Avoid scribbling on input node tree in CREATE/ALTER DOMAIN.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 Jun 2021 16:09:22 +0000 (12:09 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 Jun 2021 16:09:22 +0000 (12:09 -0400)
commit102f31a208b85aec542fc93f73a222d98d551694
tree3ee848363186c948152885f285d8a56e33a2a251
parent5b6b5e5ee598ced2dc8e1d08a34d499860a4d15b
Avoid scribbling on input node tree in CREATE/ALTER DOMAIN.

This works fine in the "simple Query" code path; but if the
statement is in the plan cache then it's corrupted for future
re-execution.  Apply copyObject() to protect the original
tree from modification, as we've done elsewhere.

This narrow fix is applied only to the back branches.  In HEAD,
the problem was fixed more generally by commit 7c337b6b5; but
that changed ProcessUtility's API, so it's infeasible to
back-patch.

Per bug #17053 from Charles Samborski.

Discussion: https://postgr.es/m/931771.1623893989@sss.pgh.pa.us
Discussion: https://postgr.es/m/17053-3ca3f501bbc212b4@postgresql.org
src/backend/commands/typecmds.c