[PATCH] Reset single-row processing mode at end of pipeline commands queue
Denis Laxalde <denis.laxalde@dalibo.com>
From: Denis Laxalde <denis.laxalde@dalibo.com>
To: pgsql-hackers@lists.postgresql.org
Date: 2022-10-07T13:08:05Z
Lists: pgsql-hackers
Attachments
- 0001-Reset-single-row-processing-mode-at-end-of-pipeline-.patch (text/x-patch) patch 0001
Hello, 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. Thanks for considering, Denis
Commits
-
libpq: Reset singlerow flag correctly in pipeline mode
- db1b931a4ee8 16.0 landed
- b8af4166ff96 14.6 landed
- 27ca0bce5f41 15.1 landed