Managing a Cluster
Managing Supported Extensions

Managing Extensions on a pgEdge Cluster

You can use the pgEdge Update Manager module to help manage extensions on a pgEdge cluster. Command options let you install, remove, upgrade, and check the availability of extensions for your pgEdge installation.

To find a list of the available build versions and build dates for components that Update Manager can add to your pgEdge cluster, navigate into the pgedge directory, and invoke the command:

./pgedge um list

Category     | Component       | Version   | ReleaseDt  | Stage | Status    | Updates | PreReqs
Postgres       pg15              15.13-1     2025-05-08   prod                                   
Postgres       pg16              16.9-1      2025-05-08   prod                                   
Postgres       pg17              17.5-1      2025-05-08   prod    Installed                      
Extensions     audit-pg17        17.0-1      2024-09-12   prod                                   
Extensions     cron-pg17         1.6.4-1     2024-09-10   prod                                   
Extensions     hintplan-pg17     1.7.0-1     2024-09-10   prod                                   
Extensions     lolor-pg17        1.2-1       2024-05-21   prod                                   
Extensions     orafce-pg17       4.13.4-1    2024-11-04   prod                                   
Extensions     pldebugger-pg17   1.8-1       2024-09-05   prod                                   
Extensions     plprofiler-pg17   4.2.5-1     2024-08-20   prod                                   
Extensions     plv8-pg17         3.2.3-1     2024-11-04   prod                                   
Extensions     postgis-pg17      3.5.0-3     2025-04-04   prod                                   
Extensions     setuser-pg17      4.1.0-1     2024-09-12   prod                                   
Extensions     snowflake-pg17    2.2-1       2024-06-26   prod    Installed                      
Extensions     spock40-pg17      4.0.10-1    2025-02-24   prod    Installed                      
Extensions     vector-pg17       0.8.0-1     2024-11-01   prod                                   
Applications   etcd              3.5.12-2    2024-03-28   prod                          EL       
Applications   patroni           3.2.2.2-1   2024-11-07   prod                          EL       
   

The Update Manager table displays the following information about the available extension versions:

  • The Category column identifies the component as a PostgreSQL version, an extension, or an application.
  • The Component column lists the name of the component, followed by the PostgreSQL version that the component runs on.
  • The Version column displays the available version of the component.
  • The ReleaseDt column displays the date that the listed version was released.
  • The Stage column displays a note about the build; production releases are noted with the abbreviation prod.
  • The Status column displays Installed if the listed component is installed on your system.
  • The Updates column identifies components with available updates; you can use the pgedge um update (opens in a new tab) command to update components.
  • The PreReqs column identifies any prerequisites required by the component.

Then, to install an extension, use the um install (opens in a new tab) command:

./pgedge um install component_name

Where component_name is the name of the component you wish to install. For example, the following command installs PostGIS, updates the shared_preload_libraries parameter, restarts the server, and creates the extension:

./pgedge um install postgis
 
########### Installing postgis-pg17 ###############
  ['postgis-pg17']
 
Get:1 https://pgedge-devel.s3.amazonaws.com/REPO/stable/0601 postgis-pg17-3.5.0-3-arm
   24 MB [100%]
 
Unpacking postgis-pg17-3.5.0-3-arm.tgz
  new: shared_preload_libraries = 'pg_stat_statements, snowflake, spock, postgis-3'
 
pg17 stopping
pg17 starting on port 6432
 
$ pg17/bin/psql -p 6432 -c "CREATE EXTENSION IF NOT EXISTS postgis CASCADE" postgres
CREATE EXTENSION

For detailed information about configuring a component after installation, please refer to the component documentation.

pgEdge Supporting Components

Please note that the components available for installation via the UM module will vary with each pgEdge Postgres version. The following list is intended only to provide quick links to more information about each component.

PostgreSQL (opens in a new tab) is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

pgedge (opens in a new tab) is the name of the CLI for the pgEdge platform.

The Spock (opens in a new tab) extension provides multi-master (multi-active) replication for PostgreSQL 15 & 16. We leveraged both the pgLogical & BDR2 Open Source projects as a solid foundation to build upon for this enterprise-class extension.

The ACE (opens in a new tab) extension provides the Active Consistency Engine for a pgEdge SPOCK cluster.

Citus (opens in a new tab) provides an open source extension that supports PostgreSQL features including distributed tables.

etcd (opens in a new tab) is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines.

HAProxy (opens in a new tab) is a free, very fast and reliable reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic web sites and powers a significant portion of the world's most visited ones.

Patroni (opens in a new tab) is a template for high availability (HA) PostgreSQL solutions using Python.

pgBackRest (opens in a new tab) is a reliable, easy-to-use backup and restore solution that can seamlessly scale up to the largest databases and workloads by utilizing algorithms that are optimized for database-specific requirements.

pgCat2 (opens in a new tab) is a PostgreSQL pooler and proxy (like PgBouncer) with support for sharding, load balancing, failover and mirroring.

pg_curl (opens in a new tab) allows most curl actions, including data transfer with URL syntax via HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP.

PostgREST (opens in a new tab) is a standalone web server that allows you to access your pgEdge Postgres database cluster with RESTful API calls. It is very simple to use because the API is built on the existing structure and inherits permissions you've already defined in your PostgreSQL database. You use a simple configuration file to specify the schema objects that will be exposed through the API. While the PostgreSQL server monitors the default listener port, for libpq-styled calls to the server, the PostgREST server monitors port 3000 for API-styled calls.

pgAdmin (opens in a new tab) is an open-source graphical administration and development platform for PostgreSQL that works on Linux, Unix, macOS, and Windows.

HypoPG (opens in a new tab) is a PostgreSQL extension that adds support for Hypothetical Indexes.

oracle_fdw (opens in a new tab) is a PostgreSQL extension that provides a Foreign Data Wrapper for easy and efficient access to Oracle databases, including pushdown of WHERE conditions and required columns as well as comprehensive EXPLAIN support.

orafce (opens in a new tab) supports functions and operators that emulate a subset of functions and packages from the Oracle RDBMS.

pgAudit (opens in a new tab) provides detailed session and/or object audit logging via the standard PostgreSQL logging facility.

pg_cat (opens in a new tab) is a PostgreSQL pooler and proxy with support for sharding, load balancing, failover and mirroring.

pg_cron is a simple cron-based job scheduler for PostgreSQL (10 or higher) that runs inside the database as an extension.

pg_hint_plan (opens in a new tab) makes it possible to tweak PostgreSQL execution plans using so-called "hints" in SQL comments, like /*+ SeqScan(a) */.

pg_partman (opens in a new tab) is an extension to create and manage both time-based and serial-based table partition sets.

pg_repack (opens in a new tab) is a PostgreSQL extension which lets you remove bloat from tables and indexes, and optionally restore the physical order of clustered indexes.

pgvector (opens in a new tab) enables you to store vector embeddings and perform vector similarity search in Postgres. It is particularly useful for applications involving natural language processing, such as those built on top of OpenAI's GPT models.

The PL/Debugger (opens in a new tab) module is a set of shared libraries which implement an API for debugging pl/pgsql functions on PostgreSQL 8.4 and above.

plprofiler (opens in a new tab) is an extension for PostgreSQL that creates performance profiles of PL/pgSQL functions and stored procedures.

PLV8 (opens in a new tab) is a shared library that provides a PostgreSQL procedural language powered by V8 Javascript Engine. With this program you can write functions in Javascript that are callable from SQL.

PostGIS (opens in a new tab) extends the capabilities of the PostgreSQL relational database by adding support for storing, indexing, and querying geographic data.

TimescaleDB (opens in a new tab) is an open-source database designed to make SQL scalable for time-series data. It is engineered up from PostgreSQL and packaged as a PostgreSQL extension, providing automatic partitioning across time and space (partitioning key), as well as full SQL support.