Hi, I need to verify something. I use spi cursors in a C function (which return a SETOF). I am using the spi cursors to run the following query: "SELECT DISTINCT * FROM mytable". Each time the system gets back to the function spi cursor can give me the next tuple which I can return. Q1:My question is, does an SPI cursor pin its last buffer, I.e. if I will take 1 tuple from SPI each time and a page can contain 10 tuples, would there be 10 I/Os or just 1 (since the last page is always pinned in memory). I tried to reason the answer from the code but its not as clear as the heap_fetch,etc... functions. Q2:If I move to the first tuple in the cursor, does it reads everything in its way back? I don't want the database to start another SELECT DISTINCT and use what is already ready. Thanks. Regards, tzahi. WARNING TO SPAMMERS: see at http://members.lycos.co.uk/my2nis/spamwarning.html ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster