aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/functions.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2013-04-27 23:11:28 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2013-04-27 23:11:51 -0400
commit5525e6c40bbda351a19b48317eba0f79aa32e447 (patch)
treedabf59d3903d4fac0db7295af5ed35e2b0f5c6dc /src/backend/executor/functions.c
parentbbb4db4e04d4691d7bc42fa19995aee3e80fe2dc (diff)
downloadpostgresql-5525e6c40bbda351a19b48317eba0f79aa32e447.tar.gz
postgresql-5525e6c40bbda351a19b48317eba0f79aa32e447.zip
Fix unsafe event-trigger coding in ProcessUtility().
We mustn't run any of the event-trigger support code when handling utility statements like START TRANSACTION or ABORT, because that code may need to refresh event-trigger cache data, which requires being inside a valid transaction. (This mistake explains the consistent build failures exhibited by the CLOBBER_CACHE_ALWAYS buildfarm members, as well as some irreproducible failures on other members.) The least messy fix seems to be to break standard_ProcessUtility into two functions, one that handles all the statements not supported by event triggers, and one that contains the event-trigger support code and handles the statements that are supported by event triggers. This change also fixes several inconsistencies, such as four cases where support had been installed for "ddl_event_start" but not "ddl_event_end" triggers, plus the fact that InvokeDDLCommandEventTriggersIfSupported() paid no mind to isCompleteQuery. Dimitri Fontaine and Tom Lane
Diffstat (limited to 'src/backend/executor/functions.c')
0 files changed, 0 insertions, 0 deletions