RE: Portal destination issue: binary vs normal cursors
От | Christopher Kings-Lynne |
---|---|
Тема | RE: Portal destination issue: binary vs normal cursors |
Дата | |
Msg-id | ECEHIKNFIMMECLEBJFIGCEIOCBAA.chriskl@familyhealth.com.au обсуждение исходный текст |
Ответ на | Portal destination issue: binary vs normal cursors (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Portal destination issue: binary vs normal cursors
|
Список | pgsql-hackers |
Does this mean there should be a regression test for binary cursors then...? Chris > -----Original Message----- > From: pgsql-hackers-owner@postgresql.org > [mailto:pgsql-hackers-owner@postgresql.org]On Behalf Of Tom Lane > Sent: Saturday, 11 August 2001 4:19 AM > To: Jan Wieck > Cc: pgsql-hackers@postgresql.org > Subject: [HACKERS] Portal destination issue: binary vs normal cursors > > > 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 > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://www.postgresql.org/search.mpl >
В списке pgsql-hackers по дате отправления: