Hello, Pgsql-hackers. As you probably know dealing with Windows MSVCRT is some kind of hell. That's why we have src/port/win32env.c particulalry, because there may be several CRT's loaded at the same time.
libpq unfortunately is using standard "getenv" function call to fill connection parameters inside "conninfo_add_defaults()", see http://www.postgresql.org/docs/9.3/interactive/libpq-envars.html This happens because MSVCRT has it's own local copy of environment variables table, and this table is not updated during execution. So if one used "SetEnvironmentVariable()" Windows API to set any variable, e.g. PGHOST, then this change will not be visible inside libpq's "conninfo_add_defaults()" function where all default values are obtained. This situation especially unpleasant for non-C developers, since there is no opportunity to use standard "putenv" function or ported "pgwin32_putenv". My proposal is to implement "pgwin32_getenv" function which will call GetEnvironmentVariable first and if it's NULL then call MSVCRT's "getenv" in the same way as "pgwin32_putenv" does. So now the bad scenario is: 1. SetEnvironmentVariable('PGHOST=192.188.9.9') 2. PQconnectdbParams without specifying host parameter will fail -- With best wishes, Pavel mailto:pa...@gf.microolap.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers