I wrote:
> A bigger issue here is that it seems fundamentally wrong for initdb to be
> including libpq, because it surely is never meant to be communicating
> with a running postmaster. Not sure what to do about that. We could
> consider moving pqexpbuffer out of libpq into fe_utils, but I wonder
> whether that would break any third-party code. We've never advertised
> pqexpbuffer.h as a supported API of libpq, but it's probably handy enough
> that people use it anyway. I suppose we could duplicate it in fe_utils
> and libpq, though that's a tad ugly. Thoughts?
I looked into this and soon found that fe_utils/string_utils.o has
dependencies on libpq that are much wider than just pqexpbuffer :-(.
It might be a project to think about sorting that out sometime, but it
looks like it would be an awful lot of work just to avoid having initdb
depend on libpq.so. So I now think this objection is impractical.
I'll just annotate the makefile entry to say that initdb itself doesn't
use libpq.
> Another perhaps-only-cosmetic issue is that now initdb prints quotes
> whether they are needed or not. I find this output pretty ugly:
> ...
> That's not really the fault of this patch perhaps. Maybe we could adjust
> appendShellString so it doesn't add quotes if they are clearly
> unnecessary.
I still think this is worth fixing, but it's a simple modification.
Will take care of it.
This item is listed in the commitfest as a bug fix, but given the lack of
previous complaints, and the fact that the printed command isn't really
meant to be blindly copied-and-pasted anyway (you're at least meant to
replace "logfile" with something), I do not think it needs back-patching.
regards, tom lane