Re: BUG #1502: hash_seq_search might return removed entry - Mailing list pgsql-bugs

From Thomas Hallgren
Subject Re: BUG #1502: hash_seq_search might return removed entry
Date
Msg-id thhal-0mkf4AhPcxicK12cCHrA/1L1cbyRqUM@mailblocks.com
Whole thread Raw
In response to Re: BUG #1502: hash_seq_search might return removed entry  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #1502: hash_seq_search might return removed entry  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-bugs
Tom Lane wrote:

>"Thomas" <thhal@mailblocks.com> writes:
>
>
>>The hash_seq_search keeps track of what element that it should return next
>>in a HASH_SEQ_STATUS struct when it peruses a bucket. Removing that element
>>from the table won't change anything since the struct remains unaffected. It
>>still holds onto that element and hence, will return it on next iteration.
>>
>>
>
>This isn't a bug; it's the designed way for it to work.  It's up to
>callers to avoid causing a problem.
>
>
This report origins from the hackers thread "SPI_finish and
RegisterExprContextCallback" where you indicated that my report did not
properly describe a problem. Since my report was correct and since you
stated that "hash_seq_search() shouldn't return any already-dropped
entries." I was led me to believe that it was *not* designed to do that.

Anyway, the AtCommit_Portals doesn't avoid this problem and the end
result for me is the same regardless of where the error is. I can't drop
portals using a ExprContextCallback and I'd like to know the best way to
fix it. I can contribute a patch but I want you to decide what needs to
be fixed.

Regards,
Thomas Hallgren

pgsql-bugs by date:

Previous
From: "Roberto"
Date:
Subject: BUG #1506: too many postgres.exe processes on background
Next
From: Valentin Rodionov
Date:
Subject: Bizzare initdb failure: "The program "postgres" is needed by initdb"