"Josh Berkus" <josh@agliodbs.com> writes:
> However, there have been some problems with this visibility issue in
> long-running PL/pgSQL functions before. So I'd like to see if you've
> discovered a new problem; if I can reproduce it, I'll post it to BUGS.
Since these functions are all executing within the same transaction,
it's not really a transactional issue. What it could be is a question
of where CommandCounterIncrement() gets done --- that has to happen
between func2() and func3() else func2's changes won't be considered
done yet. I'd expect that to happen in most cases, but with a
sufficiently weird flow of control maybe it doesn't happen? Anyway,
let's see the test case.
regards, tom lane