Don't Ignore shared_preload_libraries

You might have seen
shared_preload_libraries in
the postgresql.conf configuration file, but its
usefulness might have been unclear — I would like to explain its purpose here.

Unlike traditional database systems, Postgres is an object-relation
database system, meaning it relies heavily on plug-in objects to enable flexible behavior, and many of these objects are supplied as
shared object libraries (or dynamically-loadable libraries (DDL) on Windows). Examples of external objects include the
PL/pgSQL server-side language, the
pgcrypto cryptographic library, and the
PostGIS geographic information system. These are all implemented as shared libraries that are
dynamically loaded into the database server when accessed. The process of loading a library into a running executable is called
dynamic loading and is the way most modern operating systems access libraries (the
non-dynamic method is called "static linking").

Continue Reading »