PostgreSQL extensions

This page describes the PostgreSQL extensions and lists the extensions supported by Cloud SQL.

PostgreSQL provides a way to extend the functionality of your database by bundling together multiple SQL objects into a single package that can be added or removed as a unit.

How you use PostgreSQL extensions

You must install an extension before you use it. To install an extension, you use the CREATE EXTENSION command with the psql tool. For information about using a specific extension, see the documentation for that extension.

You cannot create your own extensions with Cloud SQL. You can install only extensions supported by Cloud SQL. To request support for an extension, add a Me, too! vote for its issue in the Issue Tracker (look under Cloud SQL) or create a new issue.

PostgreSQL extensions supported by Cloud SQL

Cloud SQL supports many of the standard PostgreSQL extensions:


The PostGIS 2.3 extension family is supported for Cloud SQL, including JSON-C support. This extension family includes the following extensions:

  • postgis
  • postgis_tiger_geocoder
  • postgis_topology

For more information about installing the PostGIS extension family, see PostGIS Installation.

Data type extensions

Extension Description
btree_gin Provides sample GIN operator classes that implement B-tree equivalent behavior.
btree_gist Provides GiST index operator classes that implement B-tree equivalent behavior.
chkpass Implements a data type chkpass that is designed for storing encrypted passwords.
citext Provides a case-insensitive character string type citext.
cube Implements a data type cube for representing multidimensional cubes.
hstore Implements the hstore data type for storing sets of key/value pairs within a single PostgreSQL value.
isn Provides data types for some international product numbering standards.
ltree Implements a data type ltree for representing labels of data stored in a hierarchical tree-like structure.
lo Support for managing Large Objects (also called LOs or BLOBs).

Language extensions

Extension Description
plpgsql A loadable procedural language used to create SQL functions and trigger procedures that execute as a block on the server.

Miscellaneous extensions

Extension Description
dict_int An add-on dictionary template for full-text search that controls the indexing of integers.
dict_xsyn An add-on dictionary template for full-text search that replaces words with groups of their synonyms.
earthdistance Provides two approaches to calculating great circle distances on the surface of the Earth.
fuzzystrmatch Provides several functions to determine similarities and distance between strings.
intagg Provides an integer aggregator and an enumerator.
intarray Provides a set of functions and operators for manipulating null-free arrays of integers and performing indexed searches on them.
pg_buffercache Provides a means for examining what's happening in the shared buffer cache in real time.
pgcrypto Provides cryptographic functions for PostgreSQL.
pgrowlocks Provides row locking information for the specified table.
pg_prewarm Provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache.
pg_stat_statements Provides a means for tracking execution statistics of all SQL statements executed.
pg_trgm Provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, as well as index operator classes that support fast searching for similar strings.
sslinfo Provides information about the SSL certificate that the current client provided when it connected to the instance.
tablefunc Includes various functions that return tables (multiple rows).
tsm_system_rows Provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT command.
tsm_system_time Provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT command.
unaccent A text search dictionary that removes accents (diacritic signs) from lexemes.
uuid-ossp Provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms.