On Mon, Aug 3, 2020 at 5:05 AM Ashutosh Sharma <ashu.coe...@gmail.com> wrote:
> Could you please explain this point once more in detail? I am not quite able 
> to understand under what circumstances a buffer would be modified, but won't 
> be marked as dirty or a WAL won't be written for it.

Whenever this branch is taken:

+               if (nskippedItems == noffs)
+                       goto skip_wal;

At this point you have already modified the page, using ItemIdSetDead,
HeapTupleHeaderSet*, and/or directly adjusting htup->infomask. If this
branch is taken, then MarkBufferDirty() and log_newpage_buffer() are
skipped.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Reply via email to