@ -3829,8 +3829,9 @@ Oid PQftype(const PGresult *res,
You can query the system table <literal>pg_type</literal> to
obtain the names and properties of the various data types. The
<acronym>OID</acronym>s of the built-in data types are defined
in the file <filename>include/server/catalog/pg_type_d.h</filename>
in the install directory.
in the file <filename>catalog/pg_type_d.h</filename>
in the <productname>PostgreSQL</productname>
installation's <filename>include</filename> directory.
</para>
</listitem>
</varlistentry>
@ -8091,26 +8092,30 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough)
<para>
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 <envar>PGSERVICE</envar> environment variable.
</para>
<para>
The connection service file can be a per-user service file
at <filename>~/.pg_service.conf</filename> or the location
specified by the environment variable <envar>PGSERVICEFILE</envar>,
or it can be a system-wide file
at <filename>`pg_config --sysconfdir`/pg_service.conf</filename> or in the directory
specified by the environment variable
<envar>PGSYSCONFDIR</envar>. 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 located
at <filename>~/.pg_service.conf</filename>; this can be overridden by
setting the environment variable <envar>PGSERVICEFILE</envar>.
The system-wide file is named <filename>pg_service.conf</filename>.
By default it is sought in the <filename>etc</filename> directory
of the <productname>PostgreSQL</productname> installation
(use <literal>pg_config --sysconfdir</literal> to identify this
directory precisely). Another directory, but not a different file
name, can be specified by setting the environment variable
<envar>PGSYSCONFDIR</envar>.
</para>
<para>
The file uses an <quote>INI file</quote> format where the section
Either servic e file uses an <quote>INI file</quote> format where the section
name is the service name and the parameters are connection
parameters; see <xref linkend="libpq-paramkeywords"/> for a list. For
example:
@ -8121,9 +8126,22 @@ host=somehost
port=5433
user=admin
</programlisting>
An example file is provided at
An example file is provided in
the <productname>PostgreSQL</productname> installation at
<filename>share/pg_service.conf.sample</filename>.
</para>
<para>
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
<literal>service=mydb port=5434</literal> will use
host <literal>somehost</literal>, port <literal>5434</literal>,
user <literal>admin</literal>, and other parameters as set by
environment variables or built-in defaults.
</para>
</sect1>