Tom Lane wrote:
> Teodor Sigaev <teodor@stack.net> writes:
>
>>>Yeah, but the update case is inserting more entries into the index.
>>>I'm wondering if that causes the index scan's state to get corrupted
>>>so that it misses scanning some entries.
>>>
>
>>Thank you, Tom. You give me a direction for looking. Attached patch fix
>>the problem with broken state.
>>
>
> Hmm, is this patch really correct? Removing the gistadjscans() call
> from gistSplit seems wrong to me --- won't that miss reporting splits
> on leaf pages? Or does this not matter for some reason?
>
gistadjscans() is moving to gistlayerinsert. gistadjscans() must be called for
parent of splitted page, but gistSplit doesn't know parent of current page and
gistlayerinsert return status of its action: inserted and (may be) splitted. So
we can call gistadjscans(GIST_SPLIT) in gistlayerinsert when it's need.
--
Teodor Sigaev
teodor@stack.net