diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-04-10 00:24:28 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-04-10 00:24:28 -0400 |
commit | 660d5fb856c61df2de2cedb26249404ffc58cb89 (patch) | |
tree | 41699c96b2986e460f4966f08cfedd4534a73483 /src/backend/access/transam/generic_xlog.c | |
parent | 68689c66efcda6f217119432edfbdf95a50b26e2 (diff) | |
download | postgresql-660d5fb856c61df2de2cedb26249404ffc58cb89.tar.gz postgresql-660d5fb856c61df2de2cedb26249404ffc58cb89.zip |
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.
Diffstat (limited to 'src/backend/access/transam/generic_xlog.c')
-rw-r--r-- | src/backend/access/transam/generic_xlog.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/access/transam/generic_xlog.c b/src/backend/access/transam/generic_xlog.c index 0ddba0007b8..072838a5e7a 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 { |