2. Difference betweenPostgres Pro Standard andPostgreSQL
Postgres Pro provides the most actualPostgreSQL 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 upcomingPostgreSQL 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 downloadingPostgres Pro Standard.
Postgres Pro Standard provides the following enhancements overPostgreSQL:
- Improved deadlock detection mechanism that does not cause performance degradation.
- 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 theauto_explain module.
NUL byte replacement with the specified ASCII code while loading data using the
COPY FROM
command. (Seenul_byte_replacement_on_import parameter description.)'\u0000'
character replacement with the specified unicode character when calling a function processing JSONB (Seeunicode_nul_character_replacement_in_jsonb 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 exceptC
andPOSIX
. (SeeSection 22.2.2.) - PTRACK implementation, which enablespg_probackup to track page changes on the fly when creating incremental backups.
- Support for reading
pg_control
of previousPostgreSQL/Postgres Pro major versions bypgpro_controldata. - Cluster compatibility verification, which allows you to determine whether the currentPostgres Pro version is compatible with the specified cluster and identify all parameters that can affect the compatibility without starting the cluster. (Seepgpro_controldata and
-Z
option ofpostgres.) - Changing the
restore_command
parameter without restarting the server. - Improvements for command-line editing usingWinEditLine in the Windows version ofpsql, including autocomplete support in psql console and changing thepsql default encoding to UTF-8.
- Unified structure of binary installation packages across all Linux distributions, which facilitates migration between them and allows installingPostgreSQL-based products side by side, without any conflicts. (SeeChapter 16.)
- Operation log, which stores information about system events such as an upgrade, execution ofpg_resetwal and so on, which is highly useful for vendor's technical support. Recording to the operation log is only done at the system level, and SQL functions are used to read it. (SeeSection 9.27.11.)
- Advanced authentication policies that provide effective password management and access control. (SeeCREATE PROFILE andALTER ROLE).
- Built-indata security mechanisms that enable sanitizing an object by filling it with zeroes before deletion. Zeroing can be done before purging files in external memory and removing outdated row versions (page vacuum), freeing RAM, and deleting or overwriting WAL files. (Certified edition only.)
- Collection of statistics about vacuuming tables and indexes. The collected information is displayed bypgpro_stats andpgpro_pwr.
- Getting information on crashes of a backend, which is enabled by thecrash_info configuration parameter and controlled by more of them.
- Optimized memory consumption during selectivity estimation for each array element.
Postgres Pro Standard also includes the following additional modules and applications:
- aqo extension for adaptive query optimization.
- 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 withMicrosoft SQL Server.
- hunspell-dict module that provides dictionaries for several languages.
- jsquery module that provides a specific language for effective index-supported querying of JSONB data.
- mamonsu monitoring service, which is implemented as aZabbix agent.
- mchar module that provides additional data type for compatibility withMicrosoft SQL Server.
- online_analyze module that provides a set of changes to immediately update statistics after
INSERT
,UPDATE
,DELETE
orSELECT INTO
operations applied for affected tables. - pgbadger application that rapidly analyzesPostgres Pro logs, producing detailed reports and graphs.
- pgbouncer connection pooler.
- pg_integrity_check module that calculates and validates checksums for controlled files. (Certified edition only.)
- pg_pathman module that provides optimized partitioning mechanism and functions to manage partitions. Starting fromPostgres Pro 12, usingpg_pathman is not recommended. Use vanilla declarative partitioning instead, as described inSection 5.11.
- pg_proaudit extension that enables detailed logging of various security events.
- pg_probackup, a backup and recovery manager.
- pgpro_controldata, an application to display control information of aPostgreSQL/Postgres Pro database cluster and compatibility information for a cluster and/or server.
- pgpro_pwr extension that enables you to generate workload reports, which help to discover most resource-intensive activities in your database.
- pgpro_stats extension that tracks execution statistics of SQL statements, calculates wait event statistics and provides other useful metrics that are not collected elsewhere inPostgreSQL. It also provides tracing of application sessions and can create views that emulate other statistic collecting extensions.
- 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. To facilitate migration of Oracle code that processes collections, these functions include those that allow working with general collection variables, whose elements can be accessed by a key that can have either integer or text type, and those that provide iterator functionality for any collections.
- pg_wait_sampling extension for sampling-based statistics of wait events. With this extension, you can get an insight into the server activity, including the current wait events for all processes and background workers.
- plantuner module that provides hints for the planner to disable or enable indexes for query execution.
- rum module that provides RUM index based on GIN.
- shared_ispell module that enables storing dictionaries in shared memory.
Postgres Pro Standard releases followPostgreSQL releases, though sometimes occur more frequently. ThePostgres Pro Standard versioning scheme is based on thePostgreSQL one and has an additional decimal place.