On Wed, Jan 31, 2018 at 6:14 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > On Wed, Jan 31, 2018 at 5:57 PM, 自己 <zoulx1...@163.com> wrote: >> thank you for your quick reply. >> and i have another question, for the following code, whether exist such >> scene : page_found is false and >> newmapbuf is invalid, if so, may be the statement MarkBufferDirty(metabuf); >> should be placed outside the if statement ? >> > > On a quick look, your observation seems to be right and I think in > this function we might call markbufferdirty twice for meta page which > doesn't seem to be required. >
Attached patch fix_markbufdirty_hash_index_v1.patch fixes the problem by calling MarkBufferDirty at the appropriate place in the code. However, I noticed that we might end up calling MarkBufferDirty twice for metapage in _hash_addovflpage. I think we can easily avoid that as is done in patch fix_markbufdirty_hash_index_v1.1.patch. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
fix_markbufdirty_hash_index_v1.patch
Description: Binary data
fix_markbufdirty_hash_index_v1.1.patch
Description: Binary data