Robert Haas <robertmh...@gmail.com> writes: > On Thu, Jun 17, 2021 at 9:34 AM Tom Lane <t...@sss.pgh.pa.us> wrote: >> I think putting a version number as such in there is a truly >> horrid idea. However, I could get behind adding a boolean flag >> that says specifically whether the pipeline feature exists.
> I realize that this kind of feature-based testing is generally > considered a best practice, but the problem is we're unlikely to do it > consistently. If we put a version number in there, people will be able > to test for whatever they want. We don't really add major new APIs to libpq very often, so I don't find that too compelling. I do find it compelling that user code shouldn't embed knowledge about "feature X arrived in version Y". > Then again, why would pg_config.h be absent? Likely because somebody decided it was a server-side include rather than an application-side include. A more critical point is that if pg_config is present, it'll likely contain the server version, which might not have a lot to do with the libpq version. Debian's already shipping things in a way that decouples those, and I gather Red Hat is moving in that direction too. I think what people really want to know is "if I try to call PQenterPipelineMode, will that compile?". Comparing v13 and v14 libpq-fe.h, I see that there is a solution available now: "#ifdef PQ_QUERY_PARAM_MAX_LIMIT". But depending on that seems like a bit of a hack, because I'm not sure that it's directly tied to the pipelining feature. regards, tom lane