Re: Is it possible to create a cursor with hold using extended query protocol

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: Is it possible to create a cursor with hold using extended query protocol
Дата
Msg-id CAKFQuwbOCYefsEDbv292pMywG0k9ZC_Ak-j2=VOEFry3qr37Sw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Is it possible to create a cursor with hold using extended query protocol  (Dave Cramer <davecramer@gmail.com>)
Список pgsql-hackers
On Wed, Jul 10, 2024 at 8:29 AM Dave Cramer <davecramer@gmail.com> wrote:

On Wed, 10 Jul 2024 at 11:04, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Wednesday, July 10, 2024, Dave Cramer <davecramer@gmail.com> wrote:
Greetings,

There are suggestions that you can use extended query to fetch from a cursor, however I don't see how you can bind values to the cursor ?


Is this possible?

Not that i can see.  The declare’d query isn’t shown to accept $n bindings rather it must be executable (select or values).  Per the note on declare, the bind phase of the fetch command under the extended protocol is used to determine whether values retrieved are text or binary.  Beyond that, the bind is really just a formality of the protocol, the same as for executing any other non-parameterized query that way.

Seems you can bind to the Declare though.

 
Right.  You got me trying to equate cursors and prepared statements and they differ in exactly this way.  The prepared binds are held until execute while cursor binds, and query execution for that matter, are immediate, with fetch just being a way to obtain the rows already computed (at least conceptually, optimizations might exist).  They both end up creating a named portal.  You cannot declare an execute command which simplifies things a bit.

David J.

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Add a GUC check hook to ensure summarize_wal cannot be enabled when wal_level is minimal
Следующее
От: Greg Sabino Mullane
Дата:
Сообщение: Send duration output to separate log files