The Frontend/Backend protocol's "bind" message allows to
specify mixed text and binary result formats, but there
is not support in the C API for that.
I'd like to add support for that to libpq for these reasons:
- I think that every feature of the line protocol should
be exposed in the C API.
- This is quite useful if you select bytea and other
fields in one query (less overhead and data traffic
for the bytea).
- I've seen at least one case on the list where
somebody would have liked to have that feature:
http://archives.postgresql.org/pgsql-general/2012-08/msg00761.php
Attached is a WIP patch that adds four new functions
to libpq:
PQexecParams2
PQexecPrepared2
PQsendQueryParams2
PQsendQueryPrepared2
If that idea meets with approval, I'd add documentation and
submit it to the next commitfest.
I am aware that these names are rather ugly and welcome
better ideas.
Maybe it is not necessary to add four new functions.
You could get the full functionality just with
PQsendQueryPrepared2, the rest is just for ease of use.
Yours,
Laurenz Albe