I am not sure about the definition of a context of a single SQL command. Example of a run:
A <- SELECT getfdr('Relation1,Relation2,Relation3'); to get the result schema (takes a few milliseconds). SELECT * FROM FullDisjunctions('Relation1,Relation2,Relation3') AS RECORD A; Can take a long time. Inside C-language FullDisjunctions() function i repeatedly call, using SPI: SELECT * FROM Relation1; SELECT * FROM Relation2; SELECT * FROM Relation1 WHERE...; SELECT * FROM Relation3; .... So i call using one SQL to FullDisjunction and subsequent SQL calls in it. I wish that the context of the overall SELECT FullDisjunctions will be perfectly unchanged for all subsequent SQL calls inside it and especially the CTID. p.s.: In a different version of the function i create a temporary relation and insert tuples in it, but it is exclusively used and destroyed by the specific instance of that function. I hope it does not affect anything in the general sense of a read only transaction. 10x! Regards, tzahi. On Thu, 2006-06-01 at 11:28 -0400, Tom Lane wrote: > > I think this is OK within the context of a single SQL command, since > tuple visibility should not change for that command. If you were trying > to use the CTID info across multiple statements then it'd get worrisome. > > regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq