diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index e452773df3..4c16f75b35 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -7285,9 +7285,11 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough) PGSERVICEFILE PGSERVICEFILE specifies the name of the per-user - connection service file. If not set, it defaults - to ~/.pg_service.conf + connection service file (see ). + Defaults to ~/.pg_service.conf, or + %APPDATA%\postgresql\.pg_service.conf on + Microsoft Windows. @@ -7537,11 +7539,11 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough) The file .pgpass in a user's home directory can contain passwords to be used if the connection requires a password (and no password has been - specified otherwise). On Microsoft Windows the file is named + specified otherwise). On Microsoft Windows the file is named %APPDATA%\postgresql\pgpass.conf (where %APPDATA% refers to the Application Data subdirectory in the user's profile). - Alternatively, a password file can be specified + Alternatively, the password file to use can be specified using the connection parameter or the environment variable PGPASSFILE. @@ -7600,26 +7602,34 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough) The connection service file allows libpq connection parameters to be associated with a single service name. That service name can then be - specified by a libpq connection, and the associated settings will be + specified in a libpq connection string, and the associated settings will be used. This allows connection parameters to be modified without requiring - a recompile of the libpq application. The service name can also be + a recompile of the libpq-using application. The service name can also be specified using the PGSERVICE environment variable. - The connection service file can be a per-user service file - at ~/.pg_service.conf or the location - specified by the environment variable PGSERVICEFILE, - or it can be a system-wide file - at `pg_config --sysconfdir`/pg_service.conf or in the directory - specified by the environment variable - PGSYSCONFDIR. If service definitions with the same - name exist in the user and the system file, the user file takes - precedence. + Service names can be defined in either a per-user service file or a + system-wide file. If the same service name exists in both the user + and the system file, the user file takes precedence. + By default, the per-user service file is named + ~/.pg_service.conf. + On Microsoft Windows, it is named + %APPDATA%\postgresql\.pg_service.conf (where + %APPDATA% refers to the Application Data subdirectory + in the user's profile). A different file name can be specified by + setting the environment variable PGSERVICEFILE. + The system-wide file is named pg_service.conf. + By default it is sought in the etc directory + of the PostgreSQL installation + (use pg_config --sysconfdir to identify this + directory precisely). Another directory, but not a different file + name, can be specified by setting the environment variable + PGSYSCONFDIR. - The file uses an INI file format where the section + Either service file uses an INI file format where the section name is the service name and the parameters are connection parameters; see for a list. For example: @@ -7630,9 +7640,22 @@ host=somehost port=5433 user=admin - An example file is provided at + An example file is provided in + the PostgreSQL installation at share/pg_service.conf.sample. + + + Connection parameters obtained from a service file are combined with + parameters obtained from other sources. A service file setting + overrides the corresponding environment variable, and in turn can be + overridden by a value given directly in the connection string. + For example, using the above service file, a connection string + service=mydb port=5434 will use + host somehost, port 5434, + user admin, and other parameters as set by + environment variables or built-in defaults. +