On 2021-Jun-18, Boris Kolpackov wrote:
> Tom Lane <tgl@sss.pgh.pa.us> writes:
>
> > 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.
> > Then you'd do something like
> >
> > #ifdef LIBPQ_HAS_PIPELINING
> >
> > rather than embedding knowledge of exactly which release
> > added that.
>
> That would be even better, but I agree with what others have
> said: we would have to keep adding such feature test macros
> going forward.
But we do not add that many significant features to libpq in the first
place, so I'm not sure it would be too bad. As far as I am aware, this
is the first time someone has requested a mechanism to detect feature
presence specifically in libpq.
To put a number to it, I counted the number of commits to exports.txt
since Jan 2015 -- there are 17. But many of them are just intra-release
fixups; the number of actual "features" is 11, an average of two per
year. That seems small enough to me.
So I'm +1 on adding this "feature macro".
(The so-version major changed from 4 to 5 in commit 1e7bb2da573e, dated
April 2006.)
> I think ideally you would want to have both since the version
> macro could still be helpful in dealing with "features" that you
> did not plan to add (aka bugs).
>
>
> > Comparing v13 and v14 libpq-fe.h, I see that there is a solution
> > available now: "#ifdef PQ_QUERY_PARAM_MAX_LIMIT".
>
> Hm, it must have been added recently since I don't see it in 14beta1.
> But thanks for the pointer, if nothing better comes up this will
> have to do.
Yeah, this one was added by commit cb92703384e2 on June 8th, three weeks
after beta1.
--
Álvaro Herrera Valdivia, Chile
"Pido que me den el Nobel por razones humanitarias" (Nicanor Parra)