> > It is intuitive. The bug was iirc, that you saw 2 versions of the same row > > in the second select statement (= 2 rows returned by second select). > > I think we should be extremely wary of assuming that we have a clear > characterization of "what the bug is", let alone "how to fix it". > The real issue here is that SELECT has different MVCC visibility rules > from UPDATE and SELECT FOR UPDATE. I suspect that that *must* be so > in any mode that allows more concurrency than full serializable mode. Yes, definitely. > Thus, the question we are really facing is how we might alter the > visibility rules in a way that will make the results more intuitive > and/or useful while still allowing concurrency. > > This will take thought, research and discussion. A quick fix is the > last thing that should be on our minds. >From my latest tests( see following post), I tend to agree, that this is extremely sensitive :-( I do however think that Vadim's patch description was the correct thing to do. The problem case seems to be when the function is not executed inside a txn. I was not able to reproduce any failure, when inside txns, since the first update or select for update blocks the rest. Andreas ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://www.postgresql.org/search.mpl