From: Tom Lane Date: Sun, 10 Apr 2016 04:24:28 +0000 (-0400) Subject: Further minor improvement in generic_xlog.c: always say REGBUF_STANDARD. X-Git-Tag: REL9_6_BETA1~208 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=660d5fb856c61df2de2cedb26249404ffc58cb89;p=postgresql Further minor improvement in generic_xlog.c: always say REGBUF_STANDARD. Since we're requiring pages handled by generic_xlog.c to be standard format, specify REGBUF_STANDARD when doing a full-page image, so that xloginsert.c can compress out the "hole" between pd_lower and pd_upper. Given the current API in which this path will be taken only for a newly initialized page, the hole is likely to be particularly large in such cases, so that this oversight could easily be performance-significant. I don't notice any particular change in the runtime of contrib/bloom's regression test, though. --- diff --git a/src/backend/access/transam/generic_xlog.c b/src/backend/access/transam/generic_xlog.c index 0ddba0007b..072838a5e7 100644 --- a/src/backend/access/transam/generic_xlog.c +++ b/src/backend/access/transam/generic_xlog.c @@ -349,7 +349,8 @@ GenericXLogFinish(GenericXLogState *state) { /* A full page image does not require anything special */ memcpy(page, pageData->image, BLCKSZ); - XLogRegisterBuffer(i, pageData->buffer, REGBUF_FORCE_IMAGE); + XLogRegisterBuffer(i, pageData->buffer, + REGBUF_FORCE_IMAGE | REGBUF_STANDARD); } else {