]> granicus.if.org Git - postgresql/commit
Fix logical decoding bug leading to inefficient reopening of files.
authorAndres Freund <andres@anarazel.de>
Tue, 7 Jul 2015 11:05:41 +0000 (13:05 +0200)
committerAndres Freund <andres@anarazel.de>
Tue, 7 Jul 2015 11:12:46 +0000 (13:12 +0200)
commitb2f6f749c7a5936adbb555e248e8e4df35c00a4a
tree8f75d0bde87dde22e768c6ed5c2532d00b99d92a
parent5c0de384d2ceceb07e77e1368e07868244be6762
Fix logical decoding bug leading to inefficient reopening of files.

When spilling transaction data to disk a simple typo caused the output
file to be closed and reopened for every serialized change. That happens
to not have a huge impact on linux, which is why it probably wasn't
noticed so far, but on windows that appears to trigger actual disk
writes after every change. Not fun.

The bug fortunately does not have any impact besides speed. A change
could end up being in the wrong segment (last instead of next), but
since we read all files to the end, that's just ugly, not really
problematic. It's not a problem to upgrade, since transaction spill
files do not persist across restarts.

Bug: #13484
Reported-By: Olivier Gosseaume
Discussion: 20150703090217.1190.63940@wrigleys.postgresql.org

Backpatch to 9.4, where logical decoding was added.
src/backend/replication/logical/reorderbuffer.c