Yeah, I figured out the point(logic). The precondition is should not have any
connections accept while recovering. It is clear to me now. Thank you very
much.

static TransactionId
btree_xlog_delete_get_latestRemovedXid(xl_btree_delete *xlrec)
{
......
        if (*CountDBBackends(InvalidOid)* == 0)
                return latestRemovedXid;

        /*
         * In what follows, we have to examine the previous state of the index
         * page, as well as the heap page(s) it points to.  This is only valid 
if
         * WAL replay has reached a consistent database state; which means that
         * the preceding check is not just an optimization, but is *necessary*. 
We
         * won't have let in any user sessions before we reach consistency.
         */
        if (!reachedConsistency)
            elog(PANIC, "btree_xlog_delete_get_latestRemovedXid: cannot
operate with inconsistent data");

......
}



--
View this message in context: 
http://www.postgresql-archive.org/Is-there-possibility-btree-redo-with-XLOG-BTREE-DELETE-done-between-standby-redo-and-the-end-of-backp-tp5963066p5963349.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to