]> granicus.if.org Git - postgresql/commit
logical decoding: fix decoding of a commit's commit time.
authorAndres Freund <andres@anarazel.de>
Thu, 3 Mar 2016 07:42:21 +0000 (23:42 -0800)
committerAndres Freund <andres@anarazel.de>
Thu, 3 Mar 2016 07:42:21 +0000 (23:42 -0800)
commit7c17aac69dcae610b08c5965161151cd282f16bc
tree7a2f467bcac44f83db1299394b0a03ef284e0167
parenta9d199f6d3b998929cdb8e8aa61e5cd8db9b220f
logical decoding: fix decoding of a commit's commit time.

When adding replication origins in 5aa235042, I somehow managed to set
the timestamp of decoded transactions to InvalidXLogRecptr when decoding
one made without a replication origin. Fix that, and the wrong type of
the new commit_time variable.

This didn't trigger a regression test failure because we explicitly
don't show commit timestamps in the regression tests, as they obviously
are variable. Add a test that checks that a decoded commit's timestamp
is within minutes of NOW() from before the commit.

Reported-By: Weiping Qu
Diagnosed-By: Artur Zakirov
Discussion: 56D4197E.9050706@informatik.uni-kl.de,
    56D42918.1010108@postgrespro.ru
Backpatch: 9.5, where 5aa235042 originates.
contrib/test_decoding/Makefile
contrib/test_decoding/expected/time.out [new file with mode: 0644]
contrib/test_decoding/sql/time.sql [new file with mode: 0644]
src/backend/replication/logical/decode.c