Postgres Extensions Overview
Extensions are exactly as they sound - they "extend" the database with functionality which isn't part of the Postgres core. Supabase has pre-installed some of the most useful open source extensions.
Enable and disable extensions
- Go to the Database page in the Dashboard.
- Click Extensions in the sidebar.
- Enable or disable an extension.
Most extensions are installed under the extensions
schema, which is accessible to public by default. To avoid namespace pollution, we do not recommend creating other entities in the extensions
schema.
If you need to restrict user access to tables managed by extensions, we recommend creating a separate schema for installing that specific extension.
Some extensions can only be created under a specific schema, for example, postgis_tiger_geocoder
extension creates a schema named tiger
. Before enabling such extensions, make sure you have not created a conflicting schema with the same name.
In addition to the pre-configured extensions, you can also install your own SQL extensions directly in the database using Supabase's SQL editor. The SQL code for the extensions, including plpgsql extensions, can be added through the SQL editor.
Upgrade Extensions
If a new version of an extension becomes available on Supabase, you need to initiate a software upgrade in the Infrastructure Settings to access it. Software upgrades can also be initiated by restarting your server in the General Settings.
Full list of extensions
Supabase is pre-configured with over 50 extensions. You can also install your own SQL extensions directly in the database through our SQL editor.
Filter
address_standardizer
Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us
Address Standardizer US dataset example
amcheck
Functions for verifying relation integrity
autoinc
Functions for autoincrementing fields
bloom
Bloom access method - signature file based index
btree_gin
Support for indexing common datatypes in GIN
btree_gist
Support for indexing common datatypes in GiST
citext
Data type for case-insensitive character strings
cube
Data type for multidimensional cubes
dblink
Connect to other PostgreSQL databases from within a database
dict_int
Text search dictionary template for integers
dict_xsyn
Text search dictionary template for extended synonym processing
earthdistance
Calculate great-circle distances on the surface of the Earth
fuzzystrmatch
Determine similarities and distance between strings
hstore
Data type for storing sets of (key, value) pairs
hypopg
Hypothetical indexes for PostgreSQL
http
HTTP client for PostgreSQL, allows web page retrieval inside the database.
insert_username
Functions for tracking who changed a table
old_snapshot
Utilities in support of old_snapshot_threshold
index_advisor
Optimize query performance with automatic index recommendation
intarray
Functions, operators, and index support for 1-D arrays of integers
isn
Data types for international product numbering standards
lo
Large Object maintenance
ltree
Data type for hierarchical tree-like structures
moddatetime
Functions for tracking last modification time
pg_cron
Job scheduler for PostgreSQL
pg_freespacemap
Examine the free space map (FSM)
pg_graphql
Pg_graphql: GraphQL support
pg_hashids
Pg_hashids
pg_jsonschema
Pg_jsonschema
pg_net
Async HTTP
pg_prewarm
Prewarm relation data
pg_stat_monitor
The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.
pg_stat_statements
Track execution statistics of all SQL statements executed
pg_surgery
Extension to perform surgery on a damaged relation
pg_trgm
Text similarity measurement and index searching based on trigrams
pgaudit
Provides auditing functionality
pg_walinspect
Functions to inspect contents of PostgreSQL Write-Ahead Log
pgcrypto
Cryptographic functions
pgjwt
JSON Web Token API for Postgresql
pgroonga
Super fast and all languages supported full text search index based on Groonga
pgroonga_database
PGroonga database management module
pgrouting
PgRouting Extension
pgrowlocks
Show row-level locking information
pgsodium
Postgres extension for libsodium functions
pgstattuple
Show tuple-level statistics
pgtap
Unit testing for PostgreSQL
plcoffee
PL/CoffeeScript (v8) trusted procedural language
pljava
PL/Java procedural language (https://tada.github.io/pljava/)
plls
PL/LiveScript (v8) trusted procedural language
plpgsql
PL/pgSQL procedural language
plpgsql_check
Extended check for plpgsql functions
plv8
PL/JavaScript (v8) trusted procedural language
postgis
PostGIS geometry and geography spatial types and functions
postgres_fdw
Foreign-data wrapper for remote PostgreSQL servers
refint
Functions for implementing referential integrity (obsolete)
rum
GIN-like index for text search
seg
Data type for representing line segments or floating-point intervals
sslinfo
Information about SSL certificates
tablefunc
Functions that manipulate whole tables, including crosstab
tcn
Triggered change notifications
timescaledb
Enables scalable inserts and complex queries for time-series data
tsm_system_rows
TABLESAMPLE method which accepts number of rows as a limit
tsm_system_time
TABLESAMPLE method which accepts time in milliseconds as a limit
unaccent
Text search dictionary that removes accents
uuid-ossp
Generate universally unique identifiers (UUIDs)
vector
Vector data type with similarity search
wrappers
Foreign data wrappers developed by Supabase