Skip to content

Commit 8ba9182

Browse files
Create supported-postgresql-extensions.md (#3807)
* Create supported-postgresql-extensions.md Adding documentation for extensions support with Serverless SQL Database * docs(SRV): update * docs(SRV): update --------- Co-authored-by: SamyOubouaziz <[email protected]>
1 parent 11b4759 commit 8ba9182

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed

menu/navigation.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4083,6 +4083,10 @@
40834083
"label": "Serverless SQL Databases overview",
40844084
"slug": "serverless-sql-databases-overview"
40854085
},
4086+
{
4087+
"label": "Supported PostgreSQL extensions",
4088+
"slug": "supported-postgresql-extensions"
4089+
},
40864090
{
40874091
"label": "Planned maintenance",
40884092
"slug": "planned-maintenance"
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
meta:
3+
title: Supported PostgreSQL extensions
4+
description: This page presents the PostgreSQL extensions supported by Serverless SQL Databases and the steps to use them
5+
content:
6+
h1: Supported PostgreSQL extensions
7+
paragraph: This page presents the PostgreSQL extensions supported by Serverless SQL Databases and the steps to use them
8+
tags: sql-databases serverless database extensions postgresql pgvector postgis timescaledb
9+
dates:
10+
validation: 2024-10-08
11+
posted: 2024-10-08
12+
categories:
13+
- serverless
14+
---
15+
16+
Serverless SQL Databases support the most popular [PostgreSQL extensions](#install-an-extension). Due to autoscaling and built-in connection pooling, some [advanced features of extensions might be limited or require workarounds](#supported-extensions).
17+
18+
<Macro id="requirements" />
19+
20+
- A Scaleway account logged into the [console](https://console.scaleway.com)
21+
- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization
22+
- [Created a Serverless SQL Database](/serverless/sql-databases/how-to/create-a-database/)
23+
24+
## Install an extension
25+
26+
1. [Connect to your Serverless SQL Database](/serverless/sql-databases/quickstart/#how-to-connect-to-a-database) with a PostgreSQL client (such as `psql`):
27+
```bash
28+
psql "postgres://[user-or-application-id]:[api-secret-key]@[database-hostname]:5432/[database-name]?sslmode=require"
29+
```
30+
31+
2. Run the following command to create an extension using SQL:
32+
```sql
33+
CREATE EXTENSION extension_name;
34+
```
35+
36+
3. Use the supported features of the extension.
37+
For instance, if you installed `pgvector` with `CREATE EXTENSION vector`, you can create a vector and query it:
38+
39+
```sql
40+
CREATE TABLE songs (id bigserial PRIMARY KEY, embedding vector(3));
41+
INSERT INTO songs (embedding) VALUES ('[1,1,1]'), ('[2,2,2]'), ('[0,1,2]');
42+
SELECT * FROM songs ORDER BY embedding <-> '[3,3,3]' LIMIT 5;
43+
```
44+
This example will find the nearest vectors (using L2 distance) from '[3,3,3]':
45+
```sql
46+
id | embedding
47+
----+-----------
48+
2 | [2,2,2]
49+
1 | [1,1,1]
50+
3 | [0,1,2]
51+
```
52+
53+
## Supported extensions
54+
55+
The following PostgreSQL extensions are available with Serverless SQL Databases:
56+
57+
58+
| Extension | Description and known limitations |
59+
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
60+
| address_standardizer | Parses addresses into their constituent elements, typically used in the geocoding normalization process. |
61+
| address_standardizer_data_us | Provides a dataset example for the US Address Standardizer extension. |
62+
| bloom | Implements a Bloom filter-based index, ideal for situations where space efficiency is crucial. |
63+
| btree_gin | Adds support for indexing common data types using the GIN (Generalized Inverted Index) method. |
64+
| btree_gist | Adds support for indexing common data types using the GiST (Generalized Search Tree) method. |
65+
| citext | Provides a case-insensitive character string data type for easier text comparison. |
66+
| cube | Defines a data type for representing multidimensional cubes, useful in mathematical and geometrical computations. |
67+
| dict_int | Offers a text search dictionary template optimized for integer values. |
68+
| dict_xsyn | Provides a text search dictionary template for advanced synonym processing, improving search accuracy. Features requiring direct access to the filesystem will not be supported (eg. custom synonym lists). |
69+
| earthdistance | Calculates great-circle distances between points on Earth, useful in geographical applications. |
70+
| fuzzystrmatch | Determines similarities and differences between strings, helpful for tasks like data deduplication. |
71+
| hstore | Stores sets of key-value pairs in a single value, enabling a flexible schema for semi-structured data. |
72+
| intagg | Aggregates and enumerates integer values, though it is considered obsolete since PG 8.4, and official support has been integrated in PostgreSQL directly |
73+
| intarray | Provides functions, operators, and indexing support for one-dimensional arrays of integers, enhancing array processing. |
74+
| isn | Supports data types for international product numbering standards, such as ISBN and EAN. |
75+
| ltree | Defines a data type for representing tree-like structures in a hierarchical manner, facilitating complex data modeling. |
76+
| 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. |
77+
| pg_prewarm | Preloads relation data into memory to reduce initial disk I/O latency and improve performance. |
78+
| pg_stat_statements | Tracks planning and execution statistics for all SQL statements, aiding in performance tuning. |
79+
| pg_trgm | Measures text similarity and provides index searching based on trigrams, enhancing text search capabilities. |
80+
| pgcrypto | Provides cryptographic functions for data encryption, decryption, and hashing, essential for secure data storage. |
81+
| pgrouting | Extends PostgreSQL and PostGIS with geospatial routing capabilities, enabling the calculation of shortest paths and other routing operations. |
82+
| pgrowlocks | Displays information about row-level locking, helping in the diagnosis of concurrency issues. |
83+
| 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;`) |
84+
| plpgsql | Enables the use of PL/pgSQL, a procedural language for PostgreSQL that allows complex control structures and query manipulation. |
85+
| 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. |
86+
| postgis_raster | Implements raster data support in PostGIS, enabling analysis and storage of raster images alongside vector data. |
87+
| postgis_sfcgal | Adds advanced 3D geometry functions to PostGIS, leveraging the SFCGAL library for complex spatial operations. |
88+
| postgis_tiger_geocoder | Provides geocoding and reverse geocoding capabilities based on the US Census TIGER data within PostGIS. |
89+
| postgis_topology | Supports topological data models in PostGIS, allowing for advanced spatial relationships and analyses. |
90+
| tablefunc | Offers functions for manipulating entire tables, including crosstab operations for pivot tables. |
91+
| timescaledb | Enables efficient handling and analysis of time-series data, extending PostgreSQL with specialized time-series functions. |
92+
| tsm_system_rows | Implements a `TABLESAMPLE` method that limits the number of rows returned, useful for sampling large datasets. |
93+
| tsm_system_time | Implements a `TABLESAMPLE` method that limits rows based on a time duration, useful for time-based sampling. |
94+
| unaccent | Provides a text search dictionary that removes accents from characters, improving text search accuracy. |
95+
| uuid-ossp | Generates universally unique identifiers (UUIDs), essential for ensuring data uniqueness across distributed systems. |

0 commit comments

Comments
 (0)