Re: Pipeline mode and PQpipelineSync()
От | Alvaro Herrera |
---|---|
Тема | Re: Pipeline mode and PQpipelineSync() |
Дата | |
Msg-id | 202106291354.wyn7ar6emdm6@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: Pipeline mode and PQpipelineSync() (Boris Kolpackov <boris@codesynthesis.com>) |
Ответы |
Re: Pipeline mode and PQpipelineSync()
|
Список | pgsql-hackers |
On 2021-Jun-24, Boris Kolpackov wrote: > I've hit another similar case except now an unexpected NULL result is > returned in the middle of PGRES_PIPELINE_ABORTED result sequence. The > call sequence is as follows: > > PQsendQueryPrepared() # INSERT #1 > PQflush() > PQsendQueryPrepared() # INSERT #2 > PQflush() > ... > PQsendQueryPrepared() # INSERT #251 -- insert duplicate PK > PQflush() > ... > PQsendQueryPrepared() # INSERT #343 > PQflush() > PQconsumeInput() # At this point select() indicates we can read. > PQgetResult() # NULL -- unexpected but skipped (see prev. email) > PQgetResult() # INSERT #1 > PQgetResult() # NULL > PQgetResult() # INSERT #2 > PQgetResult() # NULL > ... > PQgetResult() # INSERT #251 error result, SQLSTATE 23505 > PQgetResult() # NULL > PQgetResult() # INSERT #252 PGRES_PIPELINE_ABORTED > PQgetResult() # NULL > PQgetResult() # INSERT #253 PGRES_PIPELINE_ABORTED > PQgetResult() # NULL > ... > PQgetResult() # INSERT #343 NULL (???) > > Notice that result #343 corresponds to the last PQsendQueryPrepared() > call made before the socket became readable (it's not always 343 but > around there). No luck reproducing any problems with this sequence as yet. -- Álvaro Herrera 39°49'30"S 73°17'W
В списке pgsql-hackers по дате отправления: