Re: [HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-14 Thread Tom Lane
Alvaro Herrera writes: > Tom Lane wrote: >> Well, if you think there's a real backwards compatibility issue, we >> should just do #2 and be done with it. It's not like it's enough code >> to really matter in the big scheme of things. > I don't like it just because it's another kludge in the way

Re: [HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-14 Thread Alvaro Herrera
Alvaro Herrera wrote: > I don't like it just because it's another kludge in the way we set up > ActiveSnapshot. I think it would be better if we were simplifying that > code, not adding more kludges. I just saw your commits. It's nice that adding this kludge helped remove a previous one :-) --

Re: [HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-14 Thread Alvaro Herrera
Tom Lane wrote: > Alvaro Herrera writes: > > Tom Lane wrote: > >> 1. Always set a snapshot for SET CONSTRAINTS. This is a minus-one-liner > >> --- just remove it from the exclusion list in PortalRunUtility. > >> > >> 2. Have it set a snapshot only if it finds pending trigger events to > >> fire.

Re: [HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-12 Thread Tom Lane
Alvaro Herrera writes: > Tom Lane wrote: >> 1. Always set a snapshot for SET CONSTRAINTS. This is a minus-one-liner >> --- just remove it from the exclusion list in PortalRunUtility. >> >> 2. Have it set a snapshot only if it finds pending trigger events to >> fire. This would only require anot

Re: [HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-12 Thread Alvaro Herrera
Tom Lane wrote: > 1. Always set a snapshot for SET CONSTRAINTS. This is a minus-one-liner > --- just remove it from the exclusion list in PortalRunUtility. > > 2. Have it set a snapshot only if it finds pending trigger events to > fire. This would only require another half dozen lines of code,

Re: [HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-12 Thread Tom Lane
I wrote: > The comment in PortalRunUtility asserts loudly that ConstraintsSetStmt > MUST NOT have a transaction snapshot set before it is executed, but > I confess that I don't see why not at the moment. We certainly can't > have it not set a snap if it has any triggers to fire. Comments? I look

[HACKERS] So, why shouldn't SET CONSTRAINTS set a transaction snapshot?

2008-12-12 Thread Tom Lane
In connection with fixing http://archives.postgresql.org/pgsql-hackers/2008-12/msg00620.php I decided to insert "Assert(ActiveSnapshotSet())" into pg_plan_query, since any path reaching that function should already have provided a snapshot. I was bemused to find that this resulted in an assert fai