Remove PQsendQuery support in pipeline mode

Enterprise / PostgreSQL - Alvaro Herrera [alvh.no-ip.org] - 23 September 2022 16:21 UTC

The extended query protocol implementation I added in commit acb7e4eb6b1c has bugs when used in pipeline mode. Rather than spend more time trying to fix it, remove that code and make the function rely on simple query protocol only, meaning it can no longer be used in pipeline mode.

Users can easily change their applications to use PQsendQueryParams instead. We leave PQsendQuery in place for Postgres 14, just in case somebody is using it and has not hit the mentioned bugs; but we should recommend that it not be used.

Backpatch to 15.

Per bug report from Gabriele Varrazzo. Discussion: https://postgr.es/m/CA+mi_8ZGSQNmW6-mk_iSR4JZB_LJ4ww3suOF+1vGNs3MrLsv4g@mail.gmail.com

0032a54567 Remove PQsendQuery support in pipeline mode
doc/src/sgml/libpq.sgml | 9 +-
src/interfaces/libpq/fe-exec.c | 117 +++++------------------
src/interfaces/libpq/fe-protocol3.c | 18 +---
src/test/modules/libpq_pipeline/libpq_pipeline.c | 12 +++
4 files changed, 41 insertions(+), 115 deletions(-)

Upstream: git.postgresql.org


  • Share