Tom Lane писал 2021-05-21 21:23:
Yura Sokolov <y.soko...@postgrespro.ru> writes:
I propose to add PortalDrop at the 'if (completed)' branch of
exec_execute_message.
This violates our wire protocol specification, which
specifically says
If successfully created, a named portal object lasts till the end
of
the current transaction, unless explicitly destroyed. An unnamed
portal is destroyed at the end of the transaction, or as soon as
the
next Bind statement specifying the unnamed portal as destination is
issued. (Note that a simple Query message also destroys the unnamed
portal.)
I'm inclined to think that your complaint would be better handled
by having the client send a portal-close command, if it's not
going to do something else immediately.
I thought about it as well. Then, if I understand correctly,
PQsendQueryGuts and PQsendQueryInternal in pipeline mode should send
"close portal" (CP) message after "execute" message, right?
regards,
Sokolov Yura