Minor changes.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 6 Nov 2014 11:25:12 +0000 (13:25 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 10 Nov 2014 19:24:36 +0000 (21:24 +0200)
src/backend/access/transam/xloginsert.c
src/backend/access/transam/xlogutils.c
src/include/access/xloginsert.h

index a41ee5de186938877148acfc069f10b975b41db6..bde40df27f1750c9d18d1d3c1a9a96faa4a07e1e 100644 (file)
@@ -200,9 +200,8 @@ XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags)
 {
        registered_buffer *regbuf;
 
-       /* WILL_INIT and NO_IMAGE don't make sense with FORCE_IMAGE */
-       Assert(!((flags & REGBUF_FORCE_IMAGE) &&
-                        (flags & (REGBUF_WILL_INIT | REGBUF_NO_IMAGE))));
+       /* NO_IMAGE doesn't make sense with FORCE_IMAGE */
+       Assert(!((flags & REGBUF_FORCE_IMAGE) && (flags & (REGBUF_NO_IMAGE))));
        Assert(begininsert_called);
 
        if (num_registered_buffers > max_registered_buffers)
@@ -447,7 +446,7 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
                /* Determine if this block needs to be backed up */
                if (regbuf->flags & REGBUF_FORCE_IMAGE)
                        needs_backup = true;
-               else if (regbuf->flags & (REGBUF_WILL_INIT | REGBUF_NO_IMAGE))
+               else if (regbuf->flags & REGBUF_NO_IMAGE)
                        needs_backup = false;
                else if (!doPageWrites)
                        needs_backup = false;
@@ -508,7 +507,7 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
                        rdt->len = SizeOfXLogRecordBlockData;
                }
 
-               if (regbuf->flags & REGBUF_WILL_INIT)
+               if ((regbuf->flags & REGBUF_WILL_INIT) == REGBUF_WILL_INIT)
                        bkpb->fork_flags |= BKPBLOCK_WILL_INIT;
 
                rdt->data = (char *) bkpb;
index 95afcb49be8e3aab7121316c27261cb8e7a9b4cf..2d371fbb11143360e69d52648c4273dbc3f00094 100644 (file)
@@ -488,10 +488,10 @@ RestoreBackupBlock(XLogRecPtr lsn, XLogRecord *record, uint8 block_id,
                elog(PANIC, "failed to restore backup block with ID %d", block_id);
        }
 
-       /* Found it, apply the update */
        if (!(bkpb->fork_flags & BKPBLOCK_HAS_IMAGE))
                return InvalidBuffer;
 
+       /* Found it, apply the update */
        return RestoreBackupBlockContents(lsn, bkpb,
                                                                          (XLogRecordBlockImage *) blk,
                                                                          get_cleanup_lock,
index 4fb5b4a9ad718a028e0e3cee3f3d6a0c483e2359..d35ae2aa4cb216e656069ad164e7445ad9493d6f 100644 (file)
 #define XLR_NORMAL_RDATAS                      20
 
 /* flags for XLogRegisterBuffer */
-#define REGBUF_FORCE_IMAGE     (1<<0)  /* force a full-page image */
-#define REGBUF_WILL_INIT       (1<<1)  /* page will be re-initialized at replay
-                                                                        * (implies NO_IMAGE) */
-#define REGBUF_NO_IMAGE                (1<<2)  /* don't take a full-page image */
-#define REGBUF_STANDARD                (1<<3)  /* page follows "standard" page layout,
+#define REGBUF_FORCE_IMAGE     0x01    /* force a full-page image */
+#define REGBUF_NO_IMAGE                0x02    /* don't take a full-page image */
+#define REGBUF_WILL_INIT       (0x04 | 0x02)   /* page will be re-initialized at
+                                                                        * replay (implies NO_IMAGE) */
+#define REGBUF_STANDARD                0x08    /* page follows "standard" page layout,
                                                                         * (data between pd_lower and pd_upper
                                                                         * will be skipped) */
-#define REGBUF_KEEP_DATA       (1<<4)  /* don't omit data if a full-page image is
+#define REGBUF_KEEP_DATA       0x10    /* don't omit data if a full-page image is
                                                                         * taken */
 
 /* prototypes for public functions in xloginsert.c: */