Fix ExecuteCallStmt to not scribble on the passed-in parse tree.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: d358da81414abc57ef44dfd45dfedc3d443e5bd5
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2018-11-04T19:50:55Z
Releases: 11.1
Fix ExecuteCallStmt to not scribble on the passed-in parse tree.

Modifying the parse tree at execution time is, or at least ought to be,
verboten.  It seems quite difficult to actually cause a crash this way
in v11 (although you can exhibit it pretty easily in HEAD by messing
with plan_cache_mode).  Nonetheless, it's risky, so fix and back-patch.

Discussion: https://postgr.es/m/13789.1541359611@sss.pgh.pa.us

Files

PathChange+/−
src/backend/commands/functioncmds.c modified +18 −5

Discussion