Blog

Our blog is where our Postgres Pro experts share their knowledge with the community. Blog posts cover a variety of topics, including Postgres internals, extensions and monitoring solutions.

Recent posts

September 25   •   PostgreSQL

September 25th marks the release of PostgreSQL 18. This article covers the March CommitFest and concludes the series covering the new features of the upcoming update. This article turned out quite large, as the last March CommitFest is traditionally the biggest and richest in new features.

You can find previous reviews of PostgreSQL 18 CommitFests here: 2024-07, 2024-09, 2024-11, 2025-01.

Client and Server Applications

  • pg_dump[all]/pg_restore: dump and restore statistics
  • Collect statistics after server upgrade
  • pg_upgrade --swap: migrate directories to a new cluster
  • pg_combinebackup --link: hard links instead of copying files
  • pg_dump[all], pg_restore: --no-policies
  • pg_createsubscriber: enable two_phase for all subscriptions
  • pg_createsubscriber: remove publications on subscriber
  • pg_createsubscriber: create subscriptions for every database on the publication server
  • psql: pipeline mode
  • psql: current connection information
  • psql: set the default time interval for \watch
  • psql: \dx displays the default extension version

Monitoring

  • NUMA: monitoring tools for non-uniform memory access architectures
  • pg_stat_get_backend_wal: WAL statistics for a specific process
  • EXPLAIN: actual rows shown to two decimal places
  • EXPLAIN: an interface for adding more options to the command
  • Log failed lock attempts
  • Log session time-to-connect
  • log_line_prefix: local server IP address
  • pg_stat_statements: normalize commands with lists of constants in IN
  • Additional WAL buffer overflow monitoring tools
  • Track vacuum and analyze delays

[Auto]vacuum and Analysis

  • vacuum_truncate: manage the truncation of empty pages at the end of a table
  • More frequent autovacuuming of dead tuples in large tables
  • Autovacuum triggers sooner after new rows are inserted
  • Eager freezing to amortize aggressive vacuum

Performance

  • Asynchronous input/output
  • io_combine_limit: increase maximum allowed limit to 1MB
  • Read stream interface usage
  • BTree indexes: skipping the condition on the index’s leading column
  • GiST indexes: fast index creation using the sortsupport method
  • Planner: replacing IN (VALUES ...) with array search
  • Planner: eliminating redundant self-joins

Procedural Languages

  • PL/pgSQL: passing named values of cursor parameters using =>

Replication

  • multiple_unique_conflicts: another logical replication conflict
  • idle_replication_slot_timeout: canceling inactive slots by timeout
  • max_active_replication_origins: maximum number of replication origins

Security

  • Support for the OAuth 2.0 authorization protocol
  • dblink: using pass-through SCRAM authentication
  • pgcrypto: support for sha256crypt and sha512crypt password hashing algorithms
  • pgcrypto: support for CFB mode for the AES encryption standard
  • ALTER DEFAULT PRIVILEGES and large objects
  • libpq: the sslkeylogfile parameter

Server

  • Temporal primary, unique, and foreign keys
  • Virtual computed columns
  • NOT NULL integrity constraints: creation without validation, enabling and disabling inheritance
  • Integrity constraints: NOT ENFORCED
  • file_copy_method: method for copying files when creating a database
  • extension_control_path: location of extension control files
  • Nondeterministic collations: support for substring search functions
  • The gamma and lgamma functions
  • Conversion of integer types to bytea and back
  • The pg_get_loaded_modules function: information about libraries loaded into shared memory
  • pg_buffercache: evict tables or the entire cache
  • amcheck: GIN index verification

SQL commands and built-in functions

  • CREATE FOREIGN TABLE LIKE
  • COPY ... TO: materialized view support
  • The json_strip_nulls function removes empty values in arrays
  • New array_sort function

...

September 4   •   PostgreSQL

Postgres Professional, a developer of data management products, has released version 17.5.1 of its Postgres Pro Enterprise DBMS. The system now supports embedded analytics, offers automated database tuning, introduces a new backup technology, and much more.

September 4   •   PostgreSQL

Postgres Professional introduces a scheduled update to the Postgres Pro Enterprise Manager (PPEM) platform—a comprehensive administration and maintenance solution for Postgres Pro databases. The new release includes features for real-time infrastructure monitoring, performance bottleneck detection, and management of Patroni-based high-availability clusters.

Browse by keywords:

September 4   •   PostgreSQL

Postgres Professional has issued updates for Postgres Pro Standard. Versions 13.21.1, 14.18.1, 15.13.1, 16.9.1 and 17.5.1 are now available for download and upgrade from the official repository.

Below is an overview of the fixes and enhancements that have been updated or newly introduced for 17.5.1 users.

September 24, 2024   •   PostgreSQL

Since the PostgreSQL 17 RC1 came out, we are on a home run towards the official PostgreSQL release, scheduled for September 26, 2024.

Letʼs take a look at the patches that came in during the March CommitFest. Previous articles about PostgreSQL 17 CommitFests: 2023-07, 2023-09, 2023-11, 2024-01.

Together, these give an idea of what the new PostgreSQL will look like.

Reverts after code freeze

Unfortunately, some previously accepted patches didn't make it in after all. Some of the notable ones:

Now, letʼs get to the new stuff.

SQL commands

Performance

Monitoring and management

Server

Replication

Client applications

May 21, 2024   •   PostgreSQL

Spring is in full swing as we bring you the hottest winter news of the January Commitfest. Let’s get to the good stuff right away!

Previous articles about PostgreSQL 17: 2023-07, 2023-09, 2023-11.

  • Incremental backup
  • Logical replication: maintaining the subscription status when upgrading the subscriber server
  • Dynamic shared memory registry
  • EXPLAIN (memory): report memory usage for planning
  • pg_stat_checkpointer: restartpoint monitoring on replicas
  • Building BRIN indexes in parallel mode
  • Queries with the IS [NOT] NULL condition for NOT NULL columns
  • Optimization of SET search_path
  • GROUP BY optimization
  • Support planner functions for range types
  • PL/pgSQL: %TYPE and %ROWTYPE arrays
  • Jsonpath: new data conversion methods
  • COPY ... FROM: ignoring format conversion errors
  • to_timestamp: format codes TZ and OF
  • GENERATED AS IDENTITY in partitioned tables
  • ALTER COLUMN ... SET EXPRESSION
January 12, 2024   •   PostgreSQL

The November commitfest is ripe with new interesting features! Without further ado, let’s proceed with the review.

If you missed our July and September commitfest reviews, you can check them out here: 2023-07, 2023-09.

  • ON LOGIN trigger
  • Event triggers for REINDEX
  • ALTER OPERATOR: commutator, negator, hashes, merges
  • pg_dump --filter=dump.txt
  • psql: displaying default privileges
  • pg_stat_statements: track statement entry timestamps and reset min/max statistics
  • pg_stat_checkpointer: checkpointer process statistics
  • pg_stats: statistics for range type columns
  • Planner: exclusion of unnecessary table self-joins
  • Planner: materialized CTE statistics
  • Planner: accessing a table with multiple clauses
  • Index range scan optimization
  • dblink, postgres_fdw: detailed wait events
  • Logical replication: migration of replication slots during publisher upgrade
  • Replication slot use log
  • Unicode: new information functions
  • New function: xmltext
  • AT LOCAL support
  • Infinite intervals
  • ALTER SYSTEM with unrecognized custom parameters
  • Building the server from source
November 5, 2023   •   PostgreSQL

We continue to follow the news of the PostgreSQL 17 development. Let’s find out what the September commitfest brings to the table.

If you missed our July commitfest review, you can check it out here: 2023-07.

  • Removed the parameter old_snapshot_threshold
  • New parameter event_triggers
  • New functions to_bin and to_oct
  • New system view pg_wait_events
  • EXPLAIN: a JIT compilation time counter for tuple deforming
  • Planner: better estimate of the initial cost of the WindowAgg node
  • pg_constraint: NOT NULL constraints
  • Normalization of CALL, DEALLOCATE and two-phase commit control commands
  • unaccent: the target rule expressions now support values in quotation marks
  • COPY FROM: FORCE_NOT_NULL * and FORCE_NULL *
  • Audit of connections without authentication
  • pg_stat_subscription: new column worker_type
  • The behaviour of pg_promote in case of unsuccessful switchover to a replica
  • Choosing the disk synchronization method in server utilities
  • pg_restore: optimization of parallel recovery of a large number of tables
  • pg_basebackup and pg_receivewal with the parameter dbname
  • Parameter names for a number of built-in functions
  • psql: \watch min_rows
September 12, 2023   •   PostgreSQL

We continue to follow the news in the world of PostgreSQL. The PostgreSQL 16 Release Candidate 1 was rolled out on August 31. If all is well, PostgreSQL 16 will officially release on September 14.

What has changed in the upcoming release after the April code freeze? What’s getting into PostgreSQL 17 after the first commitfest? Read our latest review to find out!

PostgreSQL 16

For reference, here are our previous reviews of PostgreSQL 16 commitfests: 2022-07, 2022-09, 2022-11, 2023-01, 2023-03.

Since April, there have been some notable changes.

Let’s start with the losses. The following updates have not made it into the release:

Some patches have been updated:

...

July 12, 2023   •   PostgreSQL

PostgreSQL 14 Internals for print on demand

A quick note to let you know that the PostgreSQL 14 Internals book is now available for orders on a worldwide print-on-demand service. You can buy hardcover or paperback version. PDF is still freely available on our website.