Skip to main content
Foreign data wrapper extensions can be used to query AWS S3 and other external data stores directly from ParadeDB.
Postgres has a rich ecosystem of extensions. ParadeDB is designed to work alongside other PostgreSQL extensions for a complete data platform.

Pre-installed Extensions

To keep the ParadeDB Docker image size manageable, the following extensions are pre-installed:
  • pg_search — Full-text and hybrid search with BM25
  • pgvector — Vector similarity search
  • postgis — Geospatial queries and indexing
  • pg_ivm — Incremental materialized views
  • pg_cron — Scheduled jobs and background tasks
pg_cron is configured on the default postgres database and cannot be changed.

Compatible Extensions

ParadeDB has been tested with and supports the following popular extensions:
  • Citus — Distributed PostgreSQL for horizontal scaling
  • pg_partman — Automated partition management
  • pg_stat_statements — Query performance monitoring
  • postgres_fdw — Foreign data wrappers for federated queries
If you encounter any issues with extension compatibility, please open an issue or reach out to our community.

Installing Third Party Extensions

The process for installing an extension varies by extension. Generally speaking, it requires:
  • Download the prebuilt binaries inside ParadeDB
  • Install the extension binary and any dependencies inside ParadeDB
  • Add the extension to shared_preload_libraries in postgresql.conf, if required by the extension
  • Run CREATE EXTENSION <extension name>
We recommend installing third party extensions from prebuilt binaries to keep the image size small. As an example, let’s install pg_partman, an extension for managing table partition sets.

Install Prebuilt Binaries

First, enter a shell with root permissions in the ParadeDB image.
docker exec -it --user root paradedb bash
This command assumes that your ParadeDB container name is paradedb.
Next, install the prebuilt binaries. Most popular Postgres extensions can be installed with apt-get install.
apt-get update
apt-get install -y --no-install-recommends postgresql-17-partman
If the extension is not available with apt-get install, you can usually curl the prebuilt binary from a GitHub Release page. You will need to first install curl via apt-get install if you are taking this approach.

Add to shared_preload_libraries

If you are installing an extension which requires this step, you can do so via the following command, replacing <extension_name> with your extension’s name:
sed -i "/^shared_preload_libraries/s/'\([^']*\)'/'\1,<extension_name>'/" /var/lib/postgresql/data/postgresql.conf
For pg_partman, the command is:
sed -i "/^shared_preload_libraries/s/'\([^']*\)'/'\1,pg_partman_bgw'/" /var/lib/postgresql/data/postgresql.conf
Postgres must be restarted afterwards. We recommend simply restarting the Docker container.

Create the Extension

Connect to ParadeDB via psql and create the extension.
CREATE EXTENSION pg_partman;
pg_partman is now ready to use! Note that this is a simple example of installing pg_partman. The full list of settings and optional dependencies can be found in the official installation instructions.