Re: libpq: why only one PQsendQuery per connection at a time?

Поиск
Список
Период
Сортировка
От Dmitry Igrishin
Тема Re: libpq: why only one PQsendQuery per connection at a time?
Дата
Msg-id CAAfz9KNkZFiJK3SneJ0VKXjC2Bb1PWSLpamWvp8qrQbUQv77gA@mail.gmail.com
обсуждение исходный текст
Ответ на libpq: why only one PQsendQuery per connection at a time?  (sftf-misc@mail.ru)
Список pgsql-general


2015-01-04 19:02 GMT+03:00 <sftf-misc@mail.ru>:
Hello!
Question generally to (libpq) developers.

According to http://www.postgresql.org/docs/9.4/static/libpq-async.html:
"PQsendQuery cannot be called again (on the same connection) until PQgetResult
has returned a null pointer, indicating that the command is done."

As I guess this is also true for all PQsend* functions, like PQsendQueryPrepared,
although this is not explicitly stated in the documentation.

So question is why this limitaion exists?
Because it's violates the protocol -- sending messages like Parse or Bind to the backend
until the CommandComplete or ErrorResponse consumed by the frontend is wrong.


Why PQgetResult(PGconn *conn) operates on connection,
and not on some unique handler that each "PQsend*" could return.
It does not make sense because of the message flow described by the protocol.

Is it limitaion of libpq or architecture of postgresql backend or backend-frontend protocol?

PS. If you need pipelining  take a look at the thread "libpq pipelining" in hackers-.


--
// Dmitry.

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

Предыдущее
От: David G Johnston
Дата:
Сообщение: Re: libpq: why only one PQsendQuery per connection at a time?
Следующее
От: Josh Berkus
Дата:
Сообщение: Meetups in New Zealand Jan 12 to 20