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.
Postgres Pro Standard provides the following enhancements
over PostgreSQL:
- 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 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.)
- PTRACK implementation, which enables pg_probackup
to track page changes on the fly when creating incremental backups.
-
Support for reading
pg_control of previous
PostgreSQL/Postgres Pro major
versions by pgpro_controldata.
-
Cluster compatibility verification, which allows you to determine whether the
current Postgres Pro version is compatible with
the specified cluster and identify all parameters that can affect
the compatibility without starting the cluster.
(See pgpro_controldata and
-Z option of postgres.)
-
Changing the
restore_command
parameter without restarting the server.
-
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.)
-
Advanced authentication policies that provide effective password management and access control.
(See CREATE PROFILE and ALTER ROLE).
-
Built-in data 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.)
-
Pilot implementation of SQL/JSON standard, including JSON constructor
and SQL/JSON query functions,
IS JSON predicates, and
JSON_TABLE function. (See Section 9.16.3.)
Postgres Pro Standard also includes the
following additional modules:
- 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 with Microsoft 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 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_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 from Postgres Pro 12, using
pg_pathman is not recommended. Use vanilla
declarative partitioning instead, as described in
Section 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 a
PostgreSQL/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 in PostgreSQL.
- 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.
-
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.
To provide the advanced functionalities and features, Postgres Pro
imposes more stringent requirements on operating systems supported.
Important
Postgres Pro Standard runs on all major Linux operating systems.
Any reference to Windows or another operating system different from Linux in this documentation
is inapplicable for Postgres Pro.
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.