Thread

  1. typos in HS source code comment

    Fujii Masao <masao.fujii@gmail.com> — 2010-08-12T09:02:32Z

    Hi,
    
    When I was enjoying reading the HS source code,
    I found some typos. Attached patch fixes them.
    
    Regards,
    
    -- 
    Fujii Masao
    NIPPON TELEGRAPH AND TELEPHONE CORPORATION
    NTT Open Source Software Center
    
  2. Re: typos in HS source code comment

    Robert Haas <robertmhaas@gmail.com> — 2010-08-12T23:28:27Z

    On Thu, Aug 12, 2010 at 5:02 AM, Fujii Masao <masao.fujii@gmail.com> wrote:
    > When I was enjoying reading the HS source code,
    > I found some typos. Attached patch fixes them.
    
    I've committed all of this except for the following, which I'm not
    certain is correct:
    
    --- a/src/backend/access/transam/clog.c
    +++ b/src/backend/access/transam/clog.c
    @@ -355,10 +355,10 @@ TransactionIdSetStatusBit(TransactionId xid, XidStatus sta
            /*
             * Update the group LSN if the transaction completion LSN is higher.
             *
    -        * Note: lsn will be invalid when supplied during InRecovery processing,
    -        * so we don't need to do anything special to avoid LSN updates during
    -        * recovery. After recovery completes the next clog change will set the
    -        * LSN correctly.
    +        * Note: lsn will be invalid when supplied while we're performing
    +        * recovery but hot standby is disabled, so we don't need to do
    +        * anything special to avoid LSN updates in that case. After recovery
    +        * completes the next clog change will set the LSN correctly.
             */
            if (!XLogRecPtrIsInvalid(lsn))
            {
    
    TransactionIdSetStatusBit is called from TransactionIdSetPageStatus,
    which seems to think that the validity of lsn is based on whether
    we're doing an async commit.  Your change may be correct, but I'm not
    certain of it...
    
    -- 
    Robert Haas
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise Postgres Company
    
    
  3. Re: typos in HS source code comment

    Fujii Masao <masao.fujii@gmail.com> — 2010-08-13T01:37:11Z

    On Fri, Aug 13, 2010 at 8:28 AM, Robert Haas <robertmhaas@gmail.com> wrote:
    > I've committed all of this except for the following, which I'm not
    > certain is correct:
    
    Thanks for the commit.
    
    > --- a/src/backend/access/transam/clog.c
    > +++ b/src/backend/access/transam/clog.c
    > @@ -355,10 +355,10 @@ TransactionIdSetStatusBit(TransactionId xid, XidStatus sta
    >        /*
    >         * Update the group LSN if the transaction completion LSN is higher.
    >         *
    > -        * Note: lsn will be invalid when supplied during InRecovery processing,
    > -        * so we don't need to do anything special to avoid LSN updates during
    > -        * recovery. After recovery completes the next clog change will set the
    > -        * LSN correctly.
    > +        * Note: lsn will be invalid when supplied while we're performing
    > +        * recovery but hot standby is disabled, so we don't need to do
    > +        * anything special to avoid LSN updates in that case. After recovery
    > +        * completes the next clog change will set the LSN correctly.
    >         */
    >        if (!XLogRecPtrIsInvalid(lsn))
    >        {
    >
    > TransactionIdSetStatusBit is called from TransactionIdSetPageStatus,
    > which seems to think that the validity of lsn is based on whether
    > we're doing an async commit.  Your change may be correct, but I'm not
    > certain of it...
    
    Before 9.0, since xact_redo_commit always calls TransactionIdCommitTree,
    TransactionIdSetStatusBit always receives InvalidXLogRecPtr. In 9.0,
    xact_redo_commit calls TransactionIdCommitTree only when hot standby is
    disabled. OTOH, when hot standby is enabled, xact_redo_commit calls
    TransactionIdAsyncCommitTree, so TransactionIdSetStatusBit receives the
    valid lsn.
    
    Regards,
    
    PS. I'll be unable to read hackers from Aug 13th to 20th because of
    a vacation.
    
    -- 
    Fujii Masao
    NIPPON TELEGRAPH AND TELEPHONE CORPORATION
    NTT Open Source Software Center
    
    
  4. Re: typos in HS source code comment

    Robert Haas <robertmhaas@gmail.com> — 2010-08-13T15:10:23Z

    On Thu, Aug 12, 2010 at 9:37 PM, Fujii Masao <masao.fujii@gmail.com> wrote:
    > Before 9.0, since xact_redo_commit always calls TransactionIdCommitTree,
    > TransactionIdSetStatusBit always receives InvalidXLogRecPtr. In 9.0,
    > xact_redo_commit calls TransactionIdCommitTree only when hot standby is
    > disabled. OTOH, when hot standby is enabled, xact_redo_commit calls
    > TransactionIdAsyncCommitTree, so TransactionIdSetStatusBit receives the
    > valid lsn.
    
    Hmm.  Maybe that should be spelled out a little more explicitly in the comment.
    
    -- 
    Robert Haas
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise Postgres Company