Redefine default result from PQhost()?
От | Tom Lane |
---|---|
Тема | Redefine default result from PQhost()? |
Дата | |
Msg-id | 27665.1448492388@sss.pgh.pa.us обсуждение исходный текст |
Ответы |
Re: Redefine default result from PQhost()?
|
Список | pgsql-hackers |
Currently, libpq's PQhost() function will return NULL if the connection is using the default Unix-socket connection address. This seems like a pretty dubious definition to me. psql works around it in several places with host = PQhost(pset.db); if (host == NULL) host = DEFAULT_PGSOCKET_DIR; That seems rather duplicative, and it also means that both libpq and psql have the default socket directory hard-wired into them, which does not seem like a good thing. It's conceivable that psql could get used with a libpq built with a different default, in which case these places would be outright lying about which socket is being used. I think we should do this: char *PQhost(const PGconn *conn){ if (!conn) return NULL; if (conn->pghost != NULL && conn->pghost[0] != '\0') return conn->pghost; else {#ifdef HAVE_UNIX_SOCKETS - return conn->pgunixsocket; + if (conn->pgunixsocket != NULL && conn->pgunixsocket[0] != '\0') + return conn->pgunixsocket; + else + return DEFAULT_PGSOCKET_DIR;#else return DefaultHost;#endif }} As a definitional change, this would be for HEAD only. Comments? regards, tom lane
В списке pgsql-hackers по дате отправления: