Hi,
>
>> + /*
>> + * We copy the page into local storage to avoid holding pin on the
>> + * buffer longer than we must, and possibly failing to release it at
>> + * all if the calling query doesn't fetch all rows.
>> + */
>> + mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
>> +
>> + uargs = palloc(sizeof(struct user_args));
>> +
>> + uargs->page = palloc(BLCKSZ);
>
> Is this necessary? I think this was copied from btreefuncs, but there
> is no buffer release in this code.
Yes, it was copied from btreefuncs and is not required in this case as
we are already passing raw_page as an input to hash_page_items. I havetaken care of it in the updated patch shared up
thread.
With Regards,
Ashutosh Sharma
EnterpriseDB: http://www.enterprisedb.com