From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Portal destination issue: binary vs normal cursors |
Date: | 2001-08-10 20:19:24 |
Message-ID: | 4519.997474764@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Jan,
I discovered yesterday that DECLARE BINARY CURSOR was broken in CVS tip:
when you do a FETCH from a binary cursor, you get back ASCII data.
The problem seems to have been induced by your patch for SPI cursor
support, specifically commands/command.c version 1.128: what had been
if (dest == None)
override portal's destination with requested dest
became
if (dest != queryDesc->dest)
override portal's destination with requested dest
Now a FETCH always passes the standard output destination, normally
Remote, and so this breaks binary cursors which have dest =
RemoteInternal and need to stick to that.
I changed the code to look like this:
/*
* If the requested destination is not the same as the query's
* original destination, make a temporary QueryDesc with the proper
* destination. This supports MOVE, for example, which will pass in
* dest = None.
*
* EXCEPTION: if the query's original dest is RemoteInternal (ie, it's
* a binary cursor) and the request is Remote, we do NOT override the
* original dest. This is necessary since a FETCH command will pass
* dest = Remote, not knowing whether the cursor is binary or not.
*/
if (dest != queryDesc->dest &&
!(queryDesc->dest == RemoteInternal && dest == Remote))
{
... override
This makes binary cursors work again, and it didn't break the regression
tests, but I thought you should take a look at it. I don't know what
aspect of SPI cursors led you to make the original change, so maybe this
version isn't right for SPI cursors.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2001-08-10 20:47:26 | Re: Portal destination issue: binary vs normal cursors |
Previous Message | Tom Lane | 2001-08-10 20:08:50 | JDBC pg_description update needed for CVS tip |