Andres Freund <andres@anarazel.de> writes:
> So I think what we need to do is:
> 1) only call ExecCopySlot() if slot != newslot - this fixes the crash
> 2) Add an assert to ExecCopySlot() ensuring source and target slot are
> distinct
> 3) Figure out why our tests didn't catch this, this afaict should be a
> tested scenario
> 4) Fix confusing variable naming around newSlot/newslot in ExecBRUpdateTriggers
Maybe instead of 1+2, change ExecCopySlot like this:
- dstslot->tts_ops->copyslot(dstslot, srcslot);
+ if (dstslot != srcslot)
+ dstslot->tts_ops->copyslot(dstslot, srcslot);
That would fix other similar instances, not just this one caller.
regards, tom lane