Attached is version 0.3 of the proposed PGparam extension to the libpq
API. I think we are wrapping up our changes in the short term and
will begin using our api for our internal projects. There were a lot
of changes and reorganizations, but the big features are that client
side geometry types were introduced and we folded the PGparam struct
into PGconn which simplifies the interface in our opinion. See the
attached changes file for a complete list. Also attached is a small
test which is a good overview of how the proposed API changes work.
The code has been reorganized into a proper patch so that things are
injected into libpq in what we think are the right places along with
an updated makefile and exports.txt.
There are many things we discussed but did not implement because of
time concerns, for example client side support for binary arrays and a
queryf interface which would map input parameters into the various put
functions. These are exciting things but fairly complex features and
may require some reorganization of code on the backend to do properly.
Hopefully this will help developers who would like to use the high
performance binary interface or optimize access to the database from
their particular language. Assuming the code is acceptable to the
community, we will keep the patch up to date through the 8.4 cycle and
write the documentation.
Things are obviously really busy right now with HOT and getting 8.3
locked down...but comments and suggestions are most welcome.