Thread: Binary Refcursor possible?

Binary Refcursor possible?

From
Ralph Mason
Date:
Hi,

I am trying to get better performance reading data from postgres, so I
would like to return the data as binary rather than text as parsing it
is taking a considerable amount of processor.

However I can't figure out how to do that! I have functions like.

function my_func(ret refcursor) returns refcursor AS

$$

BEGIN
OPEN $1 for select * from table;
return $1
END;

$$ language 'plpgsql'

There are queried using

SELECT my_func( 'ret'::refcursor); FETCH ALL FROM ret;

Is there any way I can say make ret a binary cursor?

Thanks
Ralph



Re: Binary Refcursor possible?

From
Tom Lane
Date:
Ralph Mason <ralph.mason@telogis.com> writes:
> Is there any way I can say make ret a binary cursor?

It's possible to determine that at the protocol level, if you're using
V3 protocol; but whether this is exposed to an application depends on
what client-side software you are using.  Which you didn't say.

            regards, tom lane

Re: Binary Refcursor possible?

From
Ralph Mason
Date:
Tom Lane wrote:
> Ralph Mason <ralph.mason@telogis.com> writes:
>
>> Is there any way I can say make ret a binary cursor?
>>
>
> It's possible to determine that at the protocol level, if you're using
> V3 protocol; but whether this is exposed to an application depends on
> what client-side software you are using.  Which you didn't say.
>
>             regards, tom lane
>
This is probably in the documentation but I couldn't find it.

All I could see is that if you open a cursor for  binary it would return
with a type of binary rather than text in the row data messages.  The
RowDescription format code is always text, and the cursor thing is the
only way I could see to change that.

Is there some setting I can set that will make it return all data as
binary?  The dream would also be that I could ask the server it's native
byte order and have it send me binary data in it's native byte order.
Nice and fast. :-0

Ralph