Andrew Gierth writes:
> This one is simpler and works on 8.2 as well:
Yeah, I had just finished making the same adjustment to get an
8.2-compatible test case. 8.1 and before should be okay because
they haven't got the MinimalTuple business.
regards, tom lane
--
Sent vi
> "Tom" == Tom Lane writes:
>>> Yup, fails the same way on an --enable-cassert build of 8.3.7.
And on 8.2.13.
Tom> Do you have a quick test case? I just finished coding up my
Tom> plan-C fix, and I need some test cases ...
Andrew> This is the one I've been using:
This one is simpler
> "Tom" == Tom Lane writes:
Tom> Andrew Gierth writes:
>> Yup, fails the same way on an --enable-cassert build of 8.3.7.
Tom> Do you have a quick test case? I just finished coding up my
Tom> plan-C fix, and I need some test cases ...
This is the one I've been using:
create or replace
Andrew Gierth writes:
> Yup, fails the same way on an --enable-cassert build of 8.3.7.
Do you have a quick test case? I just finished coding up my plan-C
fix, and I need some test cases ...
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgre
> "Tom" == Tom Lane writes:
Tom> Yeah, good point. However I think that you could still get a
Tom> failure. The cases where a slot might contain a minimal tuple
Tom> are generally where we are reading out of a tuplestore or
Tom> tuplesort object, and all you have to do to get it to be a
> "Tom" == Tom Lane writes:
>> For example, given some function foo(out a text, out b text) returning
>> setof record, the query select t.a, t from foo() t; follows the
>> sequence of events you describe, but it doesn't fail because
>> slot-> tts_shouldFree is false, so the original minim
Andrew Gierth writes:
> "Tom" == Tom Lane writes:
> Tom> In principle there ought to be a whole lot of bugs around this
> Tom> area, because ExecFetchSlotTuple, ExecFetchSlotMinimalTuple, and
> Tom> ExecFetchSlotTupleDatum all are potentially destructive of the
> Tom> original slot contents;
> "Tom" == Tom Lane writes:
Tom> What is happening is that ExecProject fetches the Datum value of
Tom> t2.path from a TupleTableSlot that contains a "minimal tuple"
Tom> fetched from the tuplestore associated with the CTE "t". Then,
Tom> it fetches the value of the whole-row variable t2.