88 * Portions Copyright (c) 1994, Regents of the University of California
99 *
1010 * IDENTIFICATION
11- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.67 2010/04/22 08:04:24 sriggs Exp $
11+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.68 2010/04/30 06:34:29 heikki Exp $
1212 *
1313 *-------------------------------------------------------------------------
1414 */
@@ -954,7 +954,6 @@ btree_redo(XLogRecPtr lsn, XLogRecord *record)
954954switch (info )
955955{
956956case XLOG_BTREE_DELETE :
957-
958957/*
959958 * Btree delete records can conflict with standby queries. You
960959 * might think that vacuum records would conflict as well, but
@@ -973,7 +972,6 @@ btree_redo(XLogRecPtr lsn, XLogRecord *record)
973972break ;
974973
975974case XLOG_BTREE_REUSE_PAGE :
976-
977975/*
978976 * Btree reuse page records exist to provide a conflict point
979977 * when we reuse pages in the index via the FSM. That's all it
@@ -1034,6 +1032,9 @@ btree_redo(XLogRecPtr lsn, XLogRecord *record)
10341032case XLOG_BTREE_NEWROOT :
10351033btree_xlog_newroot (lsn ,record );
10361034break ;
1035+ case XLOG_BTREE_REUSE_PAGE :
1036+ /* Handled above before restoring bkp block */
1037+ break ;
10371038default :
10381039elog (PANIC ,"btree_redo: unknown op code %u" ,info );
10391040}
@@ -1169,6 +1170,15 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
11691170xlrec -> rootblk ,xlrec -> level );
11701171break ;
11711172}
1173+ case XLOG_BTREE_REUSE_PAGE :
1174+ {
1175+ xl_btree_reuse_page * xlrec = (xl_btree_reuse_page * )rec ;
1176+
1177+ appendStringInfo (buf ,"reuse_page: rel %u/%u/%u; latestRemovedXid %u" ,
1178+ xlrec -> node .spcNode ,xlrec -> node .dbNode ,
1179+ xlrec -> node .relNode ,xlrec -> latestRemovedXid );
1180+ break ;
1181+ }
11721182default :
11731183appendStringInfo (buf ,"UNKNOWN" );
11741184break ;