Extensions
Eleven extensions you can install yourself with CREATE EXTENSION, what is deferred and why, and what will never be available.
Eleven extensions are installable by your managed elevated role with ordinary SQL. They are the trusted extensions from PostgreSQL's own distribution, which is what lets a database owner create one without being a superuser.
The full catalogue, including what is deferred and what is refused, is on supported extensions.
Install one
CREATE EXTENSION IF NOT EXISTS pg_trgm;That is the whole procedure. There is no request to us and no wait.
Check what a database already has:
SELECT extname, extversion FROM pg_extension ORDER BY extname;What you can install
pgcrypto, uuid-ossp, pg_trgm, citext, hstore, btree_gin, btree_gist, ltree,
unaccent, tablefunc and intarray.
Each one is marked trusted = true in its packaged control file, which is the flag that decides
whether a database owner may create it. Anything not on this list is not installable by you.
Deferred
postgres_fdw and dblink are not offered. Both let the database open outbound network
connections, which needs an egress policy we have not written. Shipping them without one would mean
a database that can reach anything the host can reach, which is not a decision to make by omission.
PostGIS is under evaluation. It is a large, stateful extension with its own upgrade path, and supporting it badly is worse than not supporting it.
Never offered
Untrusted procedural languages, file_fdw, and anything that reaches the host filesystem or network
directly. These give a database process capabilities the isolation model exists to deny it. There is
no plan to add them.
Requesting one
If you need an extension that is not listed, ask. The answer will be one of: yes with a date, no with a reason, or under evaluation with what we are evaluating. It will not be silence.
Contact support any time by email or from your dashboard. Every service is monitored around the clock.
Troubleshooting
permission denied to create extension, with HINT: Must be superuser to create this extension. The extension is not trusted, so it is not one you can install. The eleven above are
the set.
permission denied to create extension, with HINT: Must have CREATE privilege on current database to create this extension. A different problem: the role is missing CREATE on the
database or on the target schema. This is the message a trusted extension gives when the privileges
are wrong, so it is worth reading the hint rather than the first line.
could not open extension control file. The extension is not installed on the host at all.
Check the spelling against the catalogue.
CREATE EXTENSION succeeded but the functions are not found. The extension went into a schema
that is not on your search_path. Qualify the call, or create the extension with
SCHEMA public explicitly.