## 2. Difference between Postgres Pro Standard and PostgreSQL

Postgres Pro provides the most actual PostgreSQL version with some additional patches applied and extensions added. It includes new features developed by Postgres Professional, as well as third-party patches already accepted by the PostgreSQL community for the upcoming PostgreSQL versions. Postgres Pro Standard users thus have early access to important features and fixes.

### Note

Postgres Pro Standard is provided under the following license: https://postgrespro.com/products/postgrespro/eula. Make sure to review the license terms before downloading Postgres Pro Standard.

Postgres Pro Standard provides the following enhancements over PostgreSQL:

- Improved deadlock detection mechanism that does not cause performance degradation.
- Reduced WAL size on `CREATE INDEX` operation for GiST, GIN, SP-GiST.
- Improved performance when using multiple temporary tables for each backend or opening multiple concurrent connections.
- Better planning speed and accuracy for various query types.
- Reduced memory consumption in complex queries that involve multiple tables.
- Displaying planning time in the output of the auto_explain module.
- NUL byte replacement with the specified ASCII code while loading data using the `COPY FROM` command. (See nul_byte_replacement_on_import parameter description.)
- ICU collation support on all platforms to provide platform-independent sort for various locales. By default, the `icu` collation provider is used for all locales except `C` and `POSIX`. (See Section 22.2.2.)
- PTRACK implementation, which enables pg_probackup to track page changes on the fly when creating incremental backups.
- Consistent reads on standby servers. (See WAITLSN.)
- `pg_recovery_settings` view that displays the current recovery settings stored in the `recovery.conf` file.
- Changing parameters in `recovery.conf` without restarting the server.
- Improved fault tolerance on Windows systems.
- Enhanced support for command-line editing using `WinEditLine` in the Windows version of psql.
- Unified structure of binary installation packages across all Linux distributions, which facilitates migration between them and allows to install different PostgreSQL-based products side by side, without any conflicts. (See Chapter 16.)

Postgres Pro Standard also includes the following additional modules:

- dump_stat module that allows to save and restore database statistics when dumping/restoring the database.
- fasttrun module that provides transaction-unsafe function to truncate temporary tables without growing `pg_class` size.
- fulleq module that provides additional equivalence operator for compatibility with Microsoft SQL Server.
- hunspell-dict module that provides dictionaries for several languages.
- jsquery module provides a specific language for effective index-supported querying of JSONB data.
- mamonsu monitoring service, which is implemented as a Zabbix agent.
- mchar module that provides additional data type for compatibility with Microsoft SQL Server.
- online_analyze module that provides a set of changes to immediately update statistics after `INSERT`, `UPDATE`, `DELETE` or `SELECT INTO` operations applied for affected tables.
- pgbouncer connection pooler.
- pg_pathman module that provides optimized partitioning mechanism and functions to manage partitions.
- pg_probackup, a backup and recovery manager.
- pg_query_state module that enables you to get the current state of query execution for a backend.
- pg_repack utility for reorganizing tables.
- pg_tsparser module, which is an alternative text search parser.
- pg_variables module that provides functions for working with variables of various types.
- plantuner module that provides hints for the planner to disable or enable indexes for query execution.
- shared_ispell module that enables storing dictionaries in shared memory.
- sr_plan module that allows to save and restore query plans.

Postgres Pro Standard releases follow PostgreSQL releases, though sometimes occur more frequently. The Postgres Pro Standard versioning scheme is based on the PostgreSQL one and has an additional decimal place.