Re: [PATCH] Reset single-row processing mode at end of pipeline commands queue
От | Alvaro Herrera |
---|---|
Тема | Re: [PATCH] Reset single-row processing mode at end of pipeline commands queue |
Дата | |
Msg-id | 20221014173458.iacteadybkaja5sy@alvherre.pgsql обсуждение исходный текст |
Ответ на | [PATCH] Reset single-row processing mode at end of pipeline commands queue (Denis Laxalde <denis.laxalde@dalibo.com>) |
Список | pgsql-hackers |
Hello Denis, On 2022-Oct-07, Denis Laxalde wrote: > I'm trying to make single-row mode and pipeline mode work together in > Psycopg using libpq. I think there is something wrong with respect to the > single-row mode flag, not being correctly reset, in some situations. > > The minimal case I'm considering is (in a pipeline): > * send query 1, > * get its results in single-row mode, > * send query 2, > * get its results *not* in single-row mode. > > It seems that, as the command queue in the pipeline is empty after getting > the results of query 1, the single-row mode flag is not reset and is still > active for query 2, thus leading to an unexpected PGRES_SINGLE_TUPLE status. > > The attached patch demonstrates this in the test suite. It also suggests to > move the statement resetting single-row mode up in pqPipelineProcessQueue(), > before exiting the function when the command queue is empty in particular. Your suggestion to move the code up seems correct to me. Therefore, I have pushed this including the added test code. Thanks for an excellent report and patch. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
В списке pgsql-hackers по дате отправления: