[GENERAL] Not understanding this behavior of a subselect + volatile function

2012-05-26 Thread Brian Palmer
er select. That's definitely not happening here, and I'm wondering why -- is it a property of volatile functions? Do they get their own, separate view of the data, even inside the same transaction? Thanks for any insight on this puzzler, -- Brian Palmer -- Sent via pgsql-general

Re: [GENERAL] Not understanding this behavior of a subselect + volatile function

2012-05-26 Thread Brian Palmer
On May 26, 2012, at 5:22 PM, Chris Angelico wrote: > The function is actually immaterial to this; the same thing occurs > with this single statement: > > with t1upd as (update t1 set b = b + 1 where b < 1 returning a) select > * from t1 join t1upd using (a); > > Poking around with the latter for

Re: [GENERAL] Not understanding this behavior of a subselect + volatile function

2012-05-26 Thread Brian Palmer
On May 26, 2012, at 7:45 PM, Chris Angelico wrote: > I'd be inclined to treat it like C and avoid referencing and > altering a variable in one expression (eg arr[i++]=i; is a bad idea). I agree, we're already working on changing it to a two-step process where we select f1(), and then select * wh

Re: [GENERAL] Not understanding this behavior of a subselect + volatile function

2012-05-26 Thread Brian Palmer
Thanks so much tom! I feel a lot better going with this fix now that I know for sure what was going wrong. -- Brian On May 26, 2012, at 8:08 PM, Tom Lane wrote: > Brian Palmer writes: >> The final line, the select, will return the row as it was before the >> function ran, (