Hi, On 2023-08-23 17:55:53 -0400, Tom Lane wrote: > Andres Freund <and...@anarazel.de> writes: > > On 2023-08-23 17:02:51 -0400, Tom Lane wrote: > >> ... unless we hit problems with, say, a different default port number or > >> socket path compiled into one copy vs. the other? That seems like it's > >> probably a "so don't do that" case, though. > > > If we were to find such a case, it seems we could just add whatever missing > > parameter to the connection string? I think we would likely already hit such > > problems though, the psql started by an installcheck pg_regress might use > > the > > system libpq, I think? > > The trouble with that approach is that in "make installcheck", we > don't really want to assume we know what the installed libpq's default > connection parameters are. So we don't explicitly know where that > libpq will connect.
Stepping back: I don't think installcheck matters for the concrete use of libpq we're discussing - the only time we wait for server startup is the non-installcheck case. There are other potential uses for libpq in pg_regress though - I'd e.g. like to have a "monitoring" session open, which we could use to detect that the server crashed (by waiting for the FD to be become invalid). Where the connection default issue could matter more? I was wondering if we could create an unambiguous connection info, but that seems like it'd be hard to do, without creating cross version hazards. > As I said, we might be able to start treating installed-libpq-not- > compatible-with-build as a "don't do it" case. Another idea is to try > to ensure that pg_regress uses the same libpq that the psql-under-test > does; but I'm not sure how to implement that. I don't think that's likely to work, psql could use a libpq with a different soversion. We could dlopen() libpq, etc, but that seems way too complicated. What's the reason we don't force psql to come from the same build as pg_regress? Greetings, Andres Freund