Обсуждение: incompatible changes of PQsetdbLogin()
It seems some incompatible changes have been made between 7.0 and current. In 7.0, if a parameter is NULL OR a null string (""), then the value from an environment variable is applied. However in current ONLY NULL is considered. Is there any reason for this? -- Tatsuo Ishii
Tatsuo Ishii writes: > It seems some incompatible changes have been made between 7.0 and > current. In 7.0, if a parameter is NULL OR a null string (""), then > the value from an environment variable is applied. However in current > ONLY NULL is considered. Is there any reason for this? Yes, there are several reasons. First, to be consistent with PQconnectdb(). Second, to be able to override a set environment variable with an empty value. Third, because the existing behaviour was deemed to be quite useless. See Oct 2 thread "libpq PGHOST". Is there a problem? -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Tatsuo Ishii <t-ishii@sra.co.jp> writes: > It seems some incompatible changes have been made between 7.0 and > current. In 7.0, if a parameter is NULL OR a null string (""), then > the value from an environment variable is applied. However in current > ONLY NULL is considered. Is there any reason for this? Peter E. did that recently, after discussion that concluded it was a good idea --- otherwise there is no way to override an environment variable with an empty string. Do you have an example where it's a bad idea? regards, tom lane
> Tatsuo Ishii <t-ishii@sra.co.jp> writes: > > It seems some incompatible changes have been made between 7.0 and > > current. In 7.0, if a parameter is NULL OR a null string (""), then > > the value from an environment variable is applied. However in current > > ONLY NULL is considered. Is there any reason for this? > > Peter E. did that recently, after discussion that concluded it was a > good idea --- otherwise there is no way to override an environment > variable with an empty string. Do you have an example where it's > a bad idea? For PGHOST Peter E.'s changes seem reasonable. But what about PGPORT? In 7.0.x, if pgport is an empty string and PGPORT environment variable is not set, then the default port no. (5432) is used. However, in current, if pgport is an empty string, then the empty string is assumed as a port no. that causes a failure on connection even if PGPORT variable is set. -- Tatsuo Ishii