Re: Protocol question regarding Portal vs Cursor
От | Dave Cramer |
---|---|
Тема | Re: Protocol question regarding Portal vs Cursor |
Дата | |
Msg-id | CADK3HHKa-adGNZK8Ga4QGoXqA+cKAs5O710K-6B-S97BThO2hA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Protocol question regarding Portal vs Cursor (Dave Cramer <davecramer@gmail.com>) |
Ответы |
Re: Protocol question regarding Portal vs Cursor
|
Список | pgsql-hackers |
Hi Tom,
On Wed, 8 Nov 2023 at 06:02, Dave Cramer <davecramer@gmail.com> wrote:
Dave CramerOn Tue, 7 Nov 2023 at 10:26, Tom Lane <tgl@sss.pgh.pa.us> wrote:Dave Cramer <davecramer@gmail.com> writes:
> If we use a Portal it is possible to open the portal and do a describe and
> then Fetch N records.
> Using a Cursor we open the cursor. Is there a corresponding describe and a
> way to fetch N records without getting the fields each time. Currently we
> have to send the SQL "fetch <direction> N" and we get the fields and the
> rows. This seems overly verbose.
Portals and cursors are pretty much the same thing, so why not use
the API that suits you better?So in this case this is a refcursor. Based on above then I should be able to do a describe on the refcursor and fetch using the extended query protocol
Is it possible to describe a CURSOR
Testing out the above hypothesis
2024-07-25 15:55:39 FINEST org.postgresql.core.v3.QueryExecutorImpl sendSimpleQuery FE=> SimpleQuery(query="declare C_3 CURSOR WITHOUT HOLD FOR SELECT * FROM testsps WHERE id = 2")
2024-07-25 15:55:39 FINEST org.postgresql.core.v3.QueryExecutorImpl sendDescribePortal FE=> Describe(portal=C_3)
2024-07-25 15:55:39 FINEST org.postgresql.core.v3.QueryExecutorImpl sendExecute FE=> Execute(portal=C_3,limit=10)
2024-07-25 15:55:39 FINEST org.postgresql.core.v3.QueryExecutorImpl sendSync FE=> Sync
gives me the following results
2024-07-25 15:55:39 FINEST org.postgresql.core.v3.QueryExecutorImpl receiveErrorResponse <=BE ErrorMessage(ERROR: portal "C_3" does not exist
Location: File: postgres.c, Routine: exec_describe_portal_message, Line: 2708
Server SQLState: 34000)
Note Describe portal is really just a DESCRIBE message, the log messages are misleading
Dave
В списке pgsql-hackers по дате отправления: