Skip to content

Latest commit

 

History

History
91 lines (78 loc) · 9.31 KB

File metadata and controls

91 lines (78 loc) · 9.31 KB
title Supported PostgreSQL extensions
description This page presents the PostgreSQL extensions supported by Serverless SQL Databases and the steps to use them
tags sql-databases serverless database extensions postgresql pgvector postgis timescaledb
dates
validation posted
2025-10-23
2024-10-08

import Requirements from '@macros/iam/requirements.mdx'

Serverless SQL Databases support the most popular PostgreSQL extensions. Due to autoscaling and built-in connection pooling, some advanced features of extensions might be limited or require workarounds.

Install an extension

  1. Connect to your Serverless SQL Database with a PostgreSQL client (such as psql):

    psql "postgres://[user-or-application-id]:[api-secret-key]@[database-hostname]:5432/[database-name]?sslmode=require"
  2. Run the following command to create an extension using SQL:

    CREATE EXTENSION extension_name;
  3. Use the supported features of the extension. For instance, if you installed pgvector with CREATE EXTENSION vector, you can create a vector and query it:

    CREATE TABLE songs (id bigserial PRIMARY KEY, embedding vector(3));
    INSERT INTO songs (embedding) VALUES ('[1,1,1]'), ('[2,2,2]'), ('[0,1,2]');
    SELECT * FROM songs ORDER BY embedding <-> '[3,3,3]' LIMIT 5;

    This example will find the nearest vectors (using L2 distance) from '[3,3,3]':

     id | embedding 
    ----+-----------
     2  | [2,2,2]
     1  | [1,1,1]
     3  | [0,1,2]

Supported extensions

The following PostgreSQL extensions are available with Serverless SQL Databases:

Extension Description and known limitations
address_standardizer Parses addresses into their constituent elements, typically used in the geocoding normalization process.
address_standardizer_data_us Provides a dataset example for the US Address Standardizer extension.
bloom Implements a Bloom filter-based index, ideal for situations where space efficiency is crucial.
btree_gin Adds support for indexing common data types using the GIN (Generalized Inverted Index) method.
btree_gist Adds support for indexing common data types using the GiST (Generalized Search Tree) method.
citext Provides a case-insensitive character string data type for easier text comparison.
cube Defines a data type for representing multidimensional cubes, useful in mathematical and geometrical computations.
dict_int Offers a text search dictionary template optimized for integer values.
dict_xsyn Provides a text search dictionary template for advanced synonym processing, improving search accuracy. Features requiring direct access to the file system will not be supported (eg. custom synonym lists).
earthdistance Calculates great-circle distances between points on Earth, useful in geographical applications.
fuzzystrmatch Determines similarities and differences between strings, helpful for tasks like data deduplication.
hstore Stores sets of key-value pairs in a single value, enabling a flexible schema for semi-structured data.
intagg Aggregates and enumerates integer values, though it is considered obsolete since PG 8.4, and official support has been integrated in PostgreSQL directly
intarray Provides functions, operators, and indexing support for one-dimensional arrays of integers, enhancing array processing.
isn Supports data types for international product numbering standards, such as ISBN and EAN.
ltree Defines a data type for representing tree-like structures in a hierarchical manner, facilitating complex data modeling.
pg_cron Schedules jobs within PostgreSQL using a cron-like syntax, automating routine database tasks. pg_cron requires the database to be in an active state permanently, and thus that you provision at least one vCPU for the extension to properly work.
pg_prewarm Preloads relation data into memory to reduce initial disk I/O latency and improve performance.
pg_stat_statements Tracks planning and execution statistics for all SQL statements, aiding in performance tuning.
pg_trgm Measures text similarity and provides index searching based on trigrams, enhancing text search capabilities.
pgcrypto Provides cryptographic functions for data encryption, decryption, and hashing, essential for secure data storage.
pgrouting Extends PostgreSQL and PostGIS with geospatial routing capabilities, enabling the calculation of shortest paths and other routing operations.
pgrowlocks Displays information about row-level locking, helping in the diagnosis of concurrency issues.
pgvector Supports vector similarity search, often used for storing and searching embeddings in machine learning applications. Query options using SET command require to be used in a single transaction (i.e. between BEGIN; (...) COMMIT;)
plpgsql Enables the use of PL/pgSQL, a procedural language for PostgreSQL that allows complex control structures and query manipulation.
postgis Adds support for geographic objects, allowing location queries to be run in SQL, and is the foundation of the geographic information system (GIS) functionality in PostgreSQL.
postgis_raster Implements raster data support in PostGIS, enabling analysis and storage of raster images alongside vector data.
postgis_sfcgal Adds advanced 3D geometry functions to PostGIS, leveraging the SFCGAL library for complex spatial operations.
postgis_tiger_geocoder Provides geocoding and reverse geocoding capabilities based on the US Census TIGER data within PostGIS.
postgis_topology Supports topological data models in PostGIS, allowing for advanced spatial relationships and analyses.
tablefunc Offers functions for manipulating entire tables, including crosstab operations for pivot tables.
timescaledb Enables efficient handling and analysis of time-series data, extending PostgreSQL with specialized time-series functions.
tsm_system_rows Implements a TABLESAMPLE method that limits the number of rows returned, useful for sampling large datasets.
tsm_system_time Implements a TABLESAMPLE method that limits rows based on a time duration, useful for time-based sampling.
unaccent Provides a text search dictionary that removes accents from characters, improving text search accuracy.
uuid-ossp Generates universally unique identifiers (UUIDs), essential for ensuring data uniqueness across distributed systems.