diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 2f6821a45f..3c57e8d2d2 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -7103,9 +7103,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.
@@ -7385,11 +7387,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.
@@ -7448,26 +7450,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:
@@ -7478,9 +7488,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.
+