Skip to content

Commit

Permalink
DISTPG-790 Added all supported extensions (#546)
Browse files Browse the repository at this point in the history
* DISTPG-790 Added all supported extensions

new file:   docs/contrib.md
        new file:   docs/extensions.md
        modified:   docs/index.md
        new file:   docs/third-party.md
        modified:   mkdocs-base.yml
  • Loading branch information
nastena1606 authored May 14, 2024
1 parent 94de9c6 commit ff15e9b
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 31 deletions.
54 changes: 54 additions & 0 deletions docs/contrib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# PostgreSQL contrib modules and utilities

Find the list of controb modules and extensions included in Percona Distribution for PostgtreSQL.

| Name | Database superuser | Description |
| ---------| -------------------- | ------------- |
| [adminpack](https://www.postgresql.org/docs/{{pgversion}}/adminpack.html) | Required | Support toolpack for pgAdmin to provide additional functionality like remote management of server log files. |
| [amcheck](https://www.postgresql.org/docs/{{pgversion}}/amcheck.html) | Required | Provides functions to verify the logical consistency of the structure of indexes, such as B-trees. It's useful for detecting system catalog corruption and index corruption.|
| [auth_delay](https://www.postgresql.org/docs/{{pgversion}}/auth-delay.html)| Required | Causes the server to pause briefly before reporting authentication failure, to make brute-force attacks on database passwords more difficult. |
| [auto_explain](https://www.postgresql.org/docs/{{pgversion}}/auto-explain.html)| Required | Automatically logs execution plans of slow SQL statements. It helps in performance analysis by tracking down un-optimized queries in large applications that exceed a specified time threshold. |
| [basebackup_to_shell](https://www.postgresql.org/docs/{{pgversion}}/basebackup-to-shell.html)| | Adds a custom basebackup target called `shell`. This enables an administartor to make a base backup of a running PostgreSQL server to a shell archive.|
|[basic-archive](https://www.postgresql.org/docs/{{pgversion}}/basic-archive.html) | Required| An archive module that copies completed WAL segment files to the specified directory. Can be used as a starting point for developing own archive module.|
| [bloom](https://www.postgresql.org/docs/{{pgversion}}/bloom.html) | Required | Provides an index access method based on Bloom filters. <br> A Bloom filter is a space-efficient data structure that is used to test whether an element is a member of a set.|
| [btree_gin](https://www.postgresql.org/docs/{{pgversion}}/btree-gin.html)| Required |Provides GIN index operator classes with B-tree-like behavior. This allows you to use GIN indexes, which are typically used for full-text search, in situations where you might otherwise use a B-tree index, such as with integer or text data.|
| [btree_gist](https://www.postgresql.org/docs/{{pgversion}}/btree-gist.html) | Required | Provides GiST (Generalized Search Tree) index operator classes that implement B-tree-like behavior. This allows you to use GiST indexes, which are typically used for multidimensional and non-scalar data, in situations where you might otherwise use a B-tree index, such as with integer or text data.|
|[citext](https://www.postgresql.org/docs/{{pgversion}}/citext.html)| | Provides a case-insensitive character string type, citext. Essentially, it internally calls `lower` when comparing values. Otherwise, it behaves almost exactly like `text`.|
|[cube](https://www.postgresql.org/docs/{{pgversion}}/cube.html) | | Implements a data type cube for representing multidimensional cubes|
|[dblink](https://www.postgresql.org/docs/{{pgversion}}/dblink.html) | Required | Provides functions to connect to other PostgreSQL databases from within a database session. This allows for queries to be run across multiple databases as if they were on the same server. |
|[dict_int](https://www.postgresql.org/docs/{{pgversion}}/dict-int.html) | | An example of an add-on dictionary template for full-text search. It's used to demonstrate how to create custom dictionaries in PostgreSQL.|
| [dict_xsyn](https://www.postgresql.org/docs/{{pgversion}}/dict-xsyn.html) | Required | Example synonym full-text search dictionary. This dictionary type replaces words with groups of their synonyms, and so makes it possible to search for a word using any of its synonyms.|
| [earthdistance](https://www.postgresql.org/docs/{{pgversion}}/earthdistance.html) | Required | This module provides two different approaches to calculating great circle distances on the surface of the Earth. The fisrt one depends on the `cube` module. The second one is based on the built-in `point` data type, using longitude and latitude for the coordinates.|
|[hstore](https://www.postgresql.org/docs/{{pgversion}}/hstore.html) | | Implements the `hstore` data type for storing sets of key/value pairs within a single PostgreSQL value.|
|[intagg](https://www.postgresql.org/docs/{{pgversion}}/intagg.html) | |Integer aggregator and enumerator. |
|[intarray](https://www.postgresql.org/docs/{{pgversion}}/intarray.html) | | Provides a number of useful functions and operators for manipulating null-free arrays of integers. |
|[isn](https://www.postgresql.org/docs/{{pgversion}}/isn.html) | |Provides data types for the following international product numbering standards: EAN13, UPC, ISBN (books), ISMN (music), and ISSN (serials). |
|[lo](https://www.postgresql.org/docs/{{pgversion}}/lo.html) | |Provides support for managing Large Objects (also called LOs or BLOBs). This includes a data type lo and a trigger lo_manage. |
|[ltree](https://www.postgresql.org/docs/{{pgversion}}/ltree.html) | |Implements a data type `ltree` for representing labels of data stored in a hierarchical tree-like structure. Extensive facilities for searching through label trees are provided.|
|[oldsnapshot](https://www.postgresql.org/docs/{{pgversion}}/oldsnapshot.html)| Required |Allows inspection of the server state that is used to implement [old_snapshot_threshold](https://www.postgresql.org/docs/{{pgversion}}/runtime-config-resource.html#GUC-OLD-SNAPSHOT-THRESHOLD). |
|[pageinspect](https://www.postgresql.org/docs/{{pgversion}}/pageinspect.html) | Required |Provides functions that allow you to inspect the contents of database pages at a low level, which is useful for debugging purposes. |
|[passwordcheck](https://www.postgresql.org/docs/{{pgversion}}/passwordcheck.html) | |Checks users' passwords whenever they are set with CREATE ROLE or ALTER ROLE. If a password is considered too weak, it will be rejected and the command will terminate with an error.|
|[pg_buffercache](https://www.postgresql.org/docs/{{pgversion}}/pgbuffercache.html) | Required |Provides the set of functions for examining what's happening in the shared buffer cache in real time. |
|[pgcrypto](https://www.postgresql.org/docs/{{pgversion}}/pgcrypto.html) |Required |Provides cryptographic functions for PostgreSQL. |
|[pg_freespacemap](https://www.postgresql.org/docs/{{pgversion}}/pgfreespacemap.html) |Required |Provides a means of examining the free space map (FSM), which PostgreSQL uses to track the locations of available space in tables and indexes. This can be useful for understanding space utilization and planning for maintenance operations. |
|[pg_prewarm](https://www.postgresql.org/docs/{{pgversion}}/pgprewarm.html) | | Provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache. This can be useful for reducing the time needed for a newly started database to reach its full performance potential by preloading frequently accessed data.|
|[pgrowlocks](https://www.postgresql.org/docs/{{pgversion}}/pgrowlocks.html) | Required |Provides a function to show row locking information for a specified table. |
|[pg_stat_statements](https://www.postgresql.org/docs/{{pgversion}}/pgstatstatements.html) | Required |A module for tracking planning and execution statistics of all SQL statements executed by a server. Consider using an advanced version of `pg_stat_statements` - [`pg_stat_monitor`](pg-stat-monitor.md) |
|[pgstattuple](https://www.postgresql.org/docs/{{pgversion}}/pgstattuple.html) | Required |Povides various functions to obtain tuple-level statistics. It offers detailed information about tables and indexes, such as the amount of free space and the number of live and dead tuples. |
|[pg_surgery](https://www.postgresql.org/docs/{{pgversion}}/pgsurgery.html) | Required | Provides various functions to perform surgery on a damaged relation. These functions are unsafe by design and using them may corrupt (or further corrupt) your database. Use them with caution and only as a last resort|
|[pg_trgm](https://www.postgresql.org/docs/{{pgversion}}/pgtrgm.html) | |Provides functions and operators for determining the similarity of alphanumeric text based on trigram matching. A trigram is a contiguous sequence of three characters. The extension can be used for text search and pattern matching operations. |
|[pg_visibility](https://www.postgresql.org/docs/{{pgversion}}/pgvisibility.html) | Required | Provides a way to examine the visibility map (VM) and the page-level visibility information of a table. It also provides functions to check the integrity of a visibility map and to force it to be rebuilt.|
|[pg_walinspect](https://www.postgresql.org/docs/{{pgversion}}/pgwalinspect.html) | Required |Provides SQL functions that allow you to inspect the contents of write-ahead log of a running PostgreSQL database cluster at a low level, which is useful for debugging, analytical, reporting or educational purposes. |
|[postgres_fdw](https://www.postgresql.org/docs/{{pgversion}}/postgres-fdw.html) | Required |Provides a Foreign Data Wrapper (FDW) for accessing data in remote PostgreSQL servers. It allows a PostgreSQL database to interact with remote tables as if they were local. |
|[seg](https://www.postgresql.org/docs/{{pgversion}}/seg.html) | | Implements a data type `seg` for representing line segments, or floating point intervals. `seg` can represent uncertainty in the interval endpoints, making it especially useful for representing laboratory measurements.|
|[segpgsql](https://www.postgresql.org/docs/{{pgversion}}/sepgsql.html) | |SELinux-, label-based mandatory access control (MAC) security module. It can only be used on Linux 2.6.28 or higher with SELinux enabled. |
|[spi](https://www.postgresql.org/docs/{{pgversion}}/contrib-spi.html) | Required |Provides several workable examples of using the Server Programming Interface (SPI) and triggers. |
|[sslinfo](https://www.postgresql.org/docs/{{pgversion}}/sslinfo.html) | Reqjuired |Provides information about the SSL certificate that the current client provided when connecting to PostgreSQL. |
|[tablefunc](https://www.postgresql.org/docs/{{pgversion}}/tablefunc.html) | |Includes various functions that return tables (that is, multiple rows). These functions are useful both in their own right and as examples of how to write C functions that return multiple rows. |
|[tcn](https://www.postgresql.org/docs/{{pgversion}}/tcn.html) | | Provides a trigger function that notifies listeners of changes to any table on which it is attached. |
|[test_decoding](https://www.postgresql.org/docs/{{pgversion}}/test-decoding.html) | Required | An SQL-based test/example module for WAL logical decoding|
|[tsm_system_rows](https://www.postgresql.org/docs/16/tsm-system-rows.html) | |Provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT command. |
|[tsm_system_time](https://www.postgresql.org/docs/16/tsm-system-time.html) | | Provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT command.|
|[unaccent](https://www.postgresql.org/docs/16/unaccent.html) | |A text search dictionary that removes accents (diacritic signs) from lexemes. It's a filtering dictionary, which means its output is always passed to the next dictionary (if any). This allows accent-insensitive processing for full text search. |
|[uuid-ossp](https://www.postgresql.org/docs/16/uuid-ossp.html) |Required | Provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms |
|[xml2](https://www.postgresql.org/docs/16/xml2.html) |Required | Provides XPath querying and XSLT functionality. It allows for complex querying and transformation of XML data stored in PostgreSQL.|
21 changes: 21 additions & 0 deletions docs/extensions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Extensions

Percona Distribution for PostgreSQL includes a set of extensions that have been tested to work together. These extensions enable you to efficiently solve essential practical tasks to operate and manage PostgreSQL.

The set of extensions includes the following:

* [PostgreSQL contrib modules and utilities](contrib.md)
* [Third-party components](third-party.md)
* Extensions authored by Percona:

* [`pg_stat_monitor`](pg-stat-monitor.md)
* [`pg_tde`](#)

* Extra modules, not included in Percona Distribution for PostgreSQL but tested to work with it and supported by Percona

## Install an extension

To use an extension, install it. Run the [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/static/sql-createextension.html) command on the PostgreSQL node where you want the extension to be available.

The user should be a superuser or have the `CREATE` privilege on the current database to be able to run the [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/static/sql-createextension.html) command. Some extensions may require additional privileges depending on their functionality. To learn more, check the documentation for the desired extension.

32 changes: 2 additions & 30 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,10 @@

Percona Distribution for PostgreSQL is a collection of tools to assist you in managing your PostgreSQL
database system: it installs PostgreSQL and complements it by a selection of
extensions that enable solving essential practical tasks efficiently:
extensions that enable solving essential practical tasks efficiently.

* [HAProxy](http://www.haproxy.org/) - a high-availability and load-balancing solution
[What's included in the Distribution](extensions.md){.md-button}

* [Patroni](https://patroni.readthedocs.io/en/latest/) is an HA (High Availability) solution for PostgreSQL.

* [pgAudit](https://www.pgaudit.org/) provides detailed session or object
audit logging via the standard PostgreSQL logging facility

* [pgAudit set_user](https://github.com/pgaudit/set_user) - The `set_user` part of `pgAudit` extension provides an additional layer of logging and control when unprivileged users must escalate themselves to superuser or object owner roles in order to perform needed maintenance tasks.

* [pgBackRest](https://pgbackrest.org/) is a backup and restore solution for
PostgreSQL

* [pgBadger](https://github.com/darold/pgbadger) - a fast PostgreSQL Log Analyzer.

* [PgBouncer](https://www.pgbouncer.org/) - a lightweight connection pooler for PostgreSQL

* [pg_gather](https://github.com/jobinau/pg_gather) - an SQL script to assess the health of PostgreSQL cluster by gathering performance and configuration data from PostgreSQL databases.

* [pgpool2](https://www.pgpool.net/mediawiki/index.php/Main_Page) - a middleware between PostgreSQL server and client for high availability, connection pooling and load balancing.

* [pg_repack](https://github.com/reorg/pg_repack) rebuilds
PostgreSQL database objects

* [pg_stat_monitor](https://github.com/percona/pg_stat_monitor) collects and aggregates statistics for PostgreSQL and provides histogram information.

* [PostGIS](http://postgis.net/) allows storing and manipulating spacial data in PostgreSQL.

* [wal2json](https://github.com/eulerto/wal2json) - a PostgreSQL logical decoding JSON output plugin.

* A collection of [additional PostgreSQL contrib extensions](https://www.postgresql.org/docs/16/contrib.html)


[Get started](installing.md){ .md-button }
Expand Down
20 changes: 20 additions & 0 deletions docs/third-party.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Third-party components

Percona Distribution for PostgreSQL is supplied with the set of third-party open source components and tools that provide additional functionality such as high-availability or disaster recovery, without the need of modifying PostgreSQL core code. These components are included in the Percona Distribution for PostgreSQL repository and are tested to work together.


| Name | Superuser privileges | Description |
|------|---------------------|-------------|
| [HAProxy](http://www.haproxy.org/) | Required | A high-availability and load-balancing solution |
| [Patroni](https://patroni.readthedocs.io/en/latest/) | Required | An HA (High Availability) solution for PostgreSQL |
| [pgAudit](https://www.pgaudit.org/) | Required | Provides detailed session or object audit logging via the standard PostgreSQL logging facility |
| [pgAudit set_user](https://github.com/pgaudit/set_user) | Required | The `set_user` part of `pgAudit` extension provides an additional layer of logging and control when unprivileged users must escalate themselves to superuser or object owner roles in order to perform needed maintenance tasks |
| [pgBackRest](https://pgbackrest.org/) | Required | A backup and restore solution for PostgreSQL |
| [pgBadger](https://github.com/darold/pgbadger) | Required | A fast PostgreSQL Log Analyzer |
| [PgBouncer](https://www.pgbouncer.org/) | Required | A lightweight connection pooler for PostgreSQL |
| [pg_gather](https://github.com/jobinau/pg_gather) | Required | An SQL script to assess the health of PostgreSQL cluster by gathering performance and configuration data from PostgreSQL databases |
| [pgpool2](https://www.pgpool.net/mediawiki/index.php/Main_Page) | Required | A middleware between PostgreSQL server and client for high availability, connection pooling and load balancing |
| [pg_repack](https://github.com/reorg/pg_repack) | Required | Rebuilds PostgreSQL database objects |
| [pg_stat_monitor](https://github.com/percona/pg_stat_monitor) | Required | Collects and aggregates statistics for PostgreSQL and provides histogram information |
| [PostGIS](http://postgis.net/) | Required | Allows storing and manipulating spacial data in PostgreSQL |
|[wal2json](https://github.com/eulerto/wal2json)|Required| A PostgreSQL logical decoding JSON output plugin.|
6 changes: 5 additions & 1 deletion mkdocs-base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,11 @@ nav:
- minor-upgrade.md
- migration.md
- Extensions:
- 'pg_stat_monitor': 'pg-stat-monitor.md'
- 'Extensions': extensions.md
- contrib.md
- third-party.md
- Percona-authored extensions:
- 'pg_stat_monitor': 'pg-stat-monitor.md'
- Solutions:
- High availability:
- 'High availability': 'solutions/high-availability.md'
Expand Down

0 comments on commit ff15e9b

Please sign in to comment.