diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-12-04 00:10:47 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-12-04 00:10:47 +0200 |
commit | 9e857436ef7dff8fb8a0bf43cfe62650e2be6be9 (patch) | |
tree | e365d1848d19c0ff9180d7a1fa05ba978aae486a /src/backend/commands/tablecmds.c | |
parent | 22122c83f1331d03e8317afbfcfbb65bef9c82d2 (diff) | |
download | postgresql-9e857436ef7dff8fb8a0bf43cfe62650e2be6be9.tar.gz postgresql-9e857436ef7dff8fb8a0bf43cfe62650e2be6be9.zip |
Don't include unused space in LOG_NEWPAGE records.
This is the same trick we use when taking a full page image of a buffer
passed to XLogInsert.
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r-- | src/backend/commands/tablecmds.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 1aa1ad91277..1d9f29a7b7c 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -9130,9 +9130,13 @@ copy_relation_data(SMgrRelation src, SMgrRelation dst, src->smgr_rnode.backend, forkNum)))); - /* XLOG stuff */ + /* + * WAL-log the copied page. Unfortunately we don't know what kind of + * a page this is, so we have to log the full page including any + * unused space. + */ if (use_wal) - log_newpage(&dst->smgr_rnode.node, forkNum, blkno, page); + log_newpage(&dst->smgr_rnode.node, forkNum, blkno, page, false); PageSetChecksumInplace(page, blkno); |