aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execUtils.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-08-21 18:15:55 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-08-21 18:15:55 -0400
commitb33f78df17c32364d51f6e5128f8d81d7d3013a2 (patch)
treed5acbc5668d0f60aa8befbb1ae42f807c447df6c /src/backend/executor/execUtils.c
parent6cc08e703bb078ee1e8d183caf4596d62bf12bf7 (diff)
downloadpostgresql-b33f78df17c32364d51f6e5128f8d81d7d3013a2.tar.gz
postgresql-b33f78df17c32364d51f6e5128f8d81d7d3013a2.zip
Fix trigger WHEN conditions when both BEFORE and AFTER triggers exist.
Due to tuple-slot mismanagement, evaluation of WHEN conditions for AFTER ROW UPDATE triggers could crash if there had been a BEFORE ROW trigger fired for the same update. Fix by not trying to overload the use of estate->es_trig_tuple_slot. Per report from Yoran Heling. Back-patch to 9.0, when trigger WHEN conditions were introduced.
Diffstat (limited to 'src/backend/executor/execUtils.c')
-rw-r--r--src/backend/executor/execUtils.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 073ef8d23b3..63e3d927726 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -124,6 +124,7 @@ CreateExecutorState(void)
estate->es_trig_target_relations = NIL;
estate->es_trig_tuple_slot = NULL;
estate->es_trig_oldtup_slot = NULL;
+ estate->es_trig_newtup_slot = NULL;
estate->es_param_list_info = NULL;
estate->es_param_exec_vals = NULL;