#Article
Recent posts
January 12
  •  
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:
MAINTAIN — a new privilege for table maintenance (commit: 151c22de
Setting parameter values at the database and user level (commit: b9a7a822 )
Some patches have been updated:
...
May 25, 2023
  •  
PostgreSQL
The end of the March Commitfest concludes the acceptance of patches for PostgreSQL 16. Let’s take a look at some exciting new updates it introduced.
I hope that this review together with the previous articles in the series ( 2022-07 , 2022-09 , 2022-11 , 2023-01 ) will give you a coherent idea of the new features of PostgreSQL 16.
As usual, the March Commitfest introduces a ton of new changes. I’ve split them into several sections for convenience.
Monitoring
pg_stat_io: input/output statistics
Counter for new row versions moved to another page when performing an UPDATE
pg_buffercache: new pg_buffercache_usage_counts function
Normalization of DDL and service commands, continued
EXPLAIN (generic_plan): generic plan of a parameterized query
auto_explain: logging the query ID
PL/pgSQL: GET DIAGNOSTICS .. PG_ROUTINE_OID
Client applications
psql: variables SHELL_ERROR and SHELL_EXIT_CODE
psql: \watch and the number of repetitions
psql:\df+ does not show the source code of functions
pg_dump: support for LZ4 and zstd compression methods
pg_dump and partitioned tables
pg_verifybackup --progress
libpq: balancing connections
Server administration and maintenance
initdb: setting configuration parameters during cluster initialization
Autovacuum: balancing I/O impact on the fly
Managing the size of shared memory for vacuum and analyze
VACUUM for TOAST tables only
The vacuum_defer_cleanup_age parameter has been removed
pg_walinspect: interpretation of the end_lsn parameter
pg_walinspect: pg_get_wal_fpi_info → pg_get_wal_block_info
Localization
ICU: UNICODE collation
ICU: Canonization of locales
ICU: custom rules for customizing the sorting algorithm
Security
libpq: new parameter require_auth
scram_iterations: iteration counter for password encryption using SCRAM-SHA-256
SQL functions and commands
SQL/JSON standard support
New functions pg_input_error_info and pg_input_is_valid
The Daitch-Mokotoff Soundex
New functions array_shuffle and array_sample
New aggregate function any_value
COPY: inserting default values
timestamptz: adding and subtracting time intervals
XML: formatting values
pg_size_bytes: support for "B"
New functions: erf, erfc
Performance
Parallel execution of full and right hash joins
Options for the right antijoin
Relation extension mechanism rework
Don’t block HOT update by BRIN index
postgres_fdw: aborting transactions on remote servers in parallel mode
force_parallel_mode → debug_parallel_query
Direct I/O (for developers only)
Logical replication
Logical replication from a physical replica
Using non-unique indexes with REPLICA IDENTITY FULL
Initial synchronization in binary format
Privileges for creating subscriptions and applying changes
Committing changes in parallel mode (for developers only)
...
March 7, 2023
  •  
PostgreSQL
We continue to follow the news of the PostgreSQL 16 release, and today, the results of the fourth CommitFest are on the table. Let’s have a look.
If you missed the previous CommitFests, check out our reviews for 2022-07 , 2022-09 and 2022-11 .
Here are the patches I want to talk about this time:
New function: random_normal
Input formats for integer literals
Goodbye, postmaster
Parallel execution for string_agg and array_agg
New parameter: enable_presorted_aggregate
Planner support function for working with window functions
Optimized grouping of repeating columns in GROUP BY and DISTINCT
VACUUM parameters: SKIP_DATABASE_STATS and ONLY_DATABASE_STATS
pg_dump: lock tables in batches
PL/pgSQL: cursor variable initialization
Roles with the CREATEROLE attribute
Setting parameter values at the database and user level
New parameter: reserved_connections
postgres_fdw: analyzing foreign tables with TABLESAMPLE
postgres_fdw: batch insert records during partition key updates
pg_ident.conf: new ways to identify users in PostgreSQL
Query jumbling for DDL and utility statements
New function: bt_multi_page_stats
New function: pg_split_walfile_name
pg_walinspect, pg_waldump: collecting page images from WAL
December 31, 2022
  •  
PostgreSQL
We continue to follow the news of the upcoming PostgreSQL 16. The third CommitFest concluded in early December. Let's look at the results.
If you missed the previous CommitFests, check out our reviews: 2022-07 , 2022-09 .
Here are the patches I want to talk about:
meson: a new source code build system
Documentation: a new chapter on transaction processing
psql: \d+ indicates foreign partitions in a partitioned table
psql: extended query protocol support
Predicate locks on materialized views
Tracking last scan time of indexes and tables
pg_buffercache: a new function pg_buffercache_summary
walsender displays the database name in the process status
Reducing the WAL overhead of freezing tuples
Reduced power consumption when idle
postgres_fdw: batch mode for COPY
Modernizing the GUC infrastructure
Hash index build optimization
MAINTAIN ― a new privilege for table maintenance
SET ROLE: better role change management
Support for file inclusion directives in pg_hba.conf and pg_ident.conf
Regular expressions support in pg_hba.conf