Re: WAL format and API changes (9.5) - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: WAL format and API changes (9.5)
Date
Msg-id CAA4eK1Jr8dw0_oVBmzGtc7DGpJyj=zrKnhbOpbOyHDvzT+DpWQ@mail.gmail.com
Whole thread Raw
In response to Re: WAL format and API changes (9.5)  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: WAL format and API changes (9.5)  (Heikki Linnakangas <hlinnakangas@vmware.com>)
List pgsql-hackers
On Thu, Nov 20, 2014 at 10:36 PM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote:
>
> As you may have noticed, I committed this (after some more cleanup). Of course, feel free to still review it, and please point out any issues you may find.
>

Few minor observations:
1. Readme

void XLogResetInsertion(void)

Clear any currently registered data and buffers from the WAL record    
construction workspace.  This is only needed if you have already
called XLogBeginInsert(), but decide to not insert the record after all.

I think above sentence could be slightly rephrased as the this function is
also getting called at end of XLogInsert().

2.
shiftList()
{
..
XLogEnsureRecordSpace(data.ndeleted + 1, 0);
..
}

Shouldn't above function call to XLogEnsureRecordSpace() be done
under if (RelationNeedsWAL(rel))?

3.
XLogInsert(RmgrId rmid, uint8 info)
{
XLogRecPtr EndPos;

/* XLogBeginInsert() must have been called. 
*/
if (!begininsert_called)
elog(ERROR, "XLogBeginInsert was not called");

As we are in critical section at this moment, so is it okay to have
elog(ERROR,).  I think this can only happen due to some coding
mistake, but still not sure if elog(ERROR) is okay.


With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: pg_multixact not getting truncated
Next
From: Ian Barwick
Date:
Subject: Comment header for src/test/regress/regress.c