---
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: 2025-10-23
  posted: 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](#supported-extensions).

<Requirements />

- A Scaleway account logged into the [console](https://console.scaleway.com)
- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization
- [Created a Serverless SQL Database](/serverless-sql-databases/how-to/create-a-database/)

## Install an extension

1. [Connect to your Serverless SQL Database](/serverless-sql-databases/quickstart/#how-to-connect-to-a-database) with a PostgreSQL client (such as `psql`):
    ```bash
    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:
    ```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:

    ```sql
    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]':
    ```sql
     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](https://github.com/pgvector/pgvector?tab=readme-ov-file#query-options) using `SET` command require [to be used in a single transaction](/serverless-sql-databases/reference-content/known-differences/#unsupported-configuration-commands) (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.                            |