On Thu, Nov 20, 2014 at 10:36 PM, Heikki Linnakangas < hlinnakan...@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