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 Cramer


On 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 по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Incremental backup from a streaming replication standby fails
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Protocol question regarding Portal vs Cursor