postgres.git / summary / log / commit / refs
commit 660d5fb856c61df2de2cedb26249404ffc58cb89
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun Apr 10 04:24:28 2016 +0000
First released in: 9.6.0
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.
src/backend/access/transam/generic_xlog.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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
{
[parent: 68689c66efcd]