pgsql: Fix commit_ts for standby

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix commit_ts for standby
Date: 2015-10-01 18:08:00
Message-ID: E1ZhiGu-0002wJ-EF@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix commit_ts for standby

Module initialization was still not completely correct after commit
6b61955135e9, per crash report from Takashi Ohnishi. To fix, instead of
trying to monkey around with the value of the GUC setting directly, add
a separate boolean flag that enables the feature on a standby, but only
for the startup (recovery) process, when it sees that its master server
has the feature enabled.
Discussion: http://www.postgresql.org/message-id/ca44c6c7f9314868bdc521aea4f77cbf@MP-MSGSS-MBX004.msg.nttdata.co.jp

Also change the deactivation routine to delete all segment files rather
than leaving the last one around. (This doesn't need separate
WAL-logging, because on recovery we execute the same deactivation
routine anyway.)

In passing, clean up the code structure somewhat, particularly so that
xlog.c doesn't know so much about when to activate/deactivate the
feature.

Thanks to Fujii Masao for testing and Petr Jelínek for off-list discussion.

Back-patch to 9.5, where commit_ts was introduced.

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/a742ef86c228d8a0e9d174c651cfc4f96ac77e61

Modified Files
--------------
src/backend/access/transam/commit_ts.c | 107 ++++++++++++++++++++++----------
src/backend/access/transam/twophase.c | 2 +-
src/backend/access/transam/xact.c | 6 +-
src/backend/access/transam/xlog.c | 26 ++------
src/include/access/commit_ts.h | 8 +--
5 files changed, 84 insertions(+), 65 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2015-10-01 20:20:32 pgsql: Fix pg_dump to handle inherited NOT VALID check constraints corr
Previous Message Fujii Masao 2015-10-01 14:39:42 pgsql: Fix incorrect tab-completion for GRANT and REVOKE