Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

trigger.c

Blame
    • Tom Lane's avatar
      e275d16a
      Fix possible corruption of AfterTriggerEventLists in subtransaction rollback. · e275d16a
      Tom Lane authored
      afterTriggerInvokeEvents failed to adjust events->tailfree when truncating
      the last chunk of an event list.  This could result in the data being
      "de-truncated" by afterTriggerRestoreEventList during a subsequent
      subtransaction abort.  Even that wouldn't kill us, because the re-added data
      would just be events marked DONE --- unless the data had been partially
      overwritten by new events.  Then we might crash, or in any case misbehave
      (perhaps fire triggers twice, or fire triggers with the wrong event data).
      Per bug #5622 from Thue Janus Kristensen.
      
      Back-patch to 8.4 where the current trigger list representation was introduced.
      e275d16a
      History
      Fix possible corruption of AfterTriggerEventLists in subtransaction rollback.
      Tom Lane authored
      afterTriggerInvokeEvents failed to adjust events->tailfree when truncating
      the last chunk of an event list.  This could result in the data being
      "de-truncated" by afterTriggerRestoreEventList during a subsequent
      subtransaction abort.  Even that wouldn't kill us, because the re-added data
      would just be events marked DONE --- unless the data had been partially
      overwritten by new events.  Then we might crash, or in any case misbehave
      (perhaps fire triggers twice, or fire triggers with the wrong event data).
      Per bug #5622 from Thue Janus Kristensen.
      
      Back-patch to 8.4 where the current trigger list representation was introduced.