Life with Open Source

PostgreSQL 19.0 (upcoming) commit log

Fix double-free in pg_stat_autovacuum_scores.

commit   : 71ff232a5bc40f36365be985da72b8b6fa275811    
  
author   : Nathan Bossart <nathan@postgresql.org>    
date     : Thu, 9 Apr 2026 13:07:06 -0500    
  
committer: Nathan Bossart <nathan@postgresql.org>    
date     : Thu, 9 Apr 2026 13:07:06 -0500    

Click here for diff

Presently, relation_needs_vacanalyze() unconditionally frees the  
pgstat entry returned by pgstat_fetch_stat_tabentry_ext().  This  
behavior was first added by commit 02502c1bca to avoid memory  
leakage in autovacuum.  While this is fine for autovacuum since it  
forces stats_fetch_consistency to "none", it is not okay for other  
callers that use "cache" or "snapshot".  This manifests as a  
double-free when pg_stat_autovacuum_scores is called multiple times  
in the same transaction.  
  
To fix, add a "bool *may_free" parameter to  
pgstat_fetch_stat_tabentry_ext() that returns whether it is safe  
for the caller to explicitly pfree() the result.  If a caller would  
rather leave it to the memory context machinery to free the result,  
it can pass NULL as the "may_free" argument (or just ignore its  
value).  
  
Oversight in commit 87f61f0c82.  
  
Reported-by: Tender Wang <tndrwang@gmail.com>  
Reported-by: Alexander Lakhin <exclusion@gmail.com>  
Suggested-by: Andres Freund <andres@anarazel.de>  
Suggested-by: Tom Lane <tgl@sss.pgh.pa.us>  
Author: Sami Imseih <samimseih@gmail.com>  
Discussion: https://postgr.es/m/CAHewXNkJKdwb3D5OnksrdOqzqUnXUEMpDam1TPW0vfUkW%3D7jUw%40mail.gmail.com  
Discussion: https://postgr.es/m/5684f479-858e-4c5d-b8f5-bcf05de1f909%40gmail.com  

M src/backend/postmaster/autovacuum.c
M src/backend/utils/activity/pgstat.c
M src/backend/utils/activity/pgstat_backend.c
M src/backend/utils/activity/pgstat_database.c
M src/backend/utils/activity/pgstat_function.c
M src/backend/utils/activity/pgstat_relation.c
M src/backend/utils/activity/pgstat_replslot.c
M src/backend/utils/activity/pgstat_subscription.c
M src/include/pgstat.h
M src/include/utils/pgstat_internal.h
M src/test/modules/test_custom_stats/test_custom_var_stats.c

PostgreSQL 14.22 commit log

Stamp 14.22.

commit   : 966473719c7f8067848dc79b58da0fb17ed136b1    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 17:03:30 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 17:03:30 -0500    

Click here for diff

M configure
M configure.ac

Translation updates

commit   : 7917762558545fbe16c0c9e9b97b83a30c11eaa8    
  
author   : Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 14:06:33 +0100    
  
committer: Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 14:06:33 +0100    

Click here for diff

PostgreSQL 15.17 commit log

Stamp 15.17.

commit   : 3eb6f61958ac5027a18791a828a0c7a47accf211    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 17:01:47 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 17:01:47 -0500    

Click here for diff

M configure
M configure.ac

Translation updates

commit   : 7063b9e92b25caaa27c8cc4ec37ef85fe9e63cb7    
  
author   : Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 14:03:47 +0100    
  
committer: Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 14:03:47 +0100    

Click here for diff

PostgreSQL 16.13 commit log

Stamp 16.13.

commit   : 776479eed63aac4185e57adaf7db1ce0810a4d3e    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 17:00:20 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 17:00:20 -0500    

Click here for diff

M configure
M configure.ac
M meson.build

Translation updates

commit   : 96802648aa2fc114f1d8728540494e422059b9ab    
  
author   : Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 14:02:22 +0100    
  
committer: Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 14:02:22 +0100    

Click here for diff

PostgreSQL 17.9 commit log

Stamp 17.9.

commit   : 6d396980fc5aed4f1a525e0bd75cb16b25ed40ca    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 16:58:47 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 16:58:47 -0500    

Click here for diff

M configure
M configure.ac
M meson.build

Translation updates

commit   : 0546d90442f7226076d474045d3a287e20325fee    
  
author   : Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 13:56:36 +0100    
  
committer: Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 13:56:36 +0100    

Click here for diff

PostgreSQL 18.3 commit log

Stamp 18.3.

commit   : 62d6c7d3df6287f1bd83199c1a746e50d31571a0    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 16:56:43 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 23 Feb 2026 16:56:43 -0500    

Click here for diff

M configure
M configure.ac
M meson.build

Translation updates

commit   : 1598d06b1490f7ed3a753c688620187403188ed9    
  
author   : Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 13:53:35 +0100    
  
committer: Peter Eisentraut <peter@eisentraut.org>    
date     : Mon, 23 Feb 2026 13:53:35 +0100    

Click here for diff

PostgreSQL 14.21 commit log

Stamp 14.21.

commit   : eb788b43371849237c61ba2747fc11e96c08d861    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:57:12 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:57:12 -0500    

Click here for diff

M configure
M configure.ac

Last-minute updates for release notes.

commit   : 8771763bd97607882dd47925dceea0859a59ce97    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    

Click here for diff

PostgreSQL 15.16 commit log

Stamp 15.16.

commit   : 78bc85dd4455c302c345c550e0628a1522df108d    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:55:28 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:55:28 -0500    

Click here for diff

M configure
M configure.ac

Last-minute updates for release notes.

commit   : 749e616b7693cec9baaaf8744d740d436693ac91    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    

Click here for diff

PostgreSQL 16.12 commit log

Stamp 16.12.

commit   : e15d96551f9760e62888b5082ad050329c1c4cdf    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:53:53 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:53:53 -0500    

Click here for diff

M configure
M configure.ac
M meson.build

Last-minute updates for release notes.

commit   : 9889b3b64fe6bb52084159ae9bc5f2f5943fdd8a    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    

Click here for diff

PostgreSQL 17.8 commit log

Stamp 17.8.

commit   : 6af885119b52a2a6229959670ba3ae5e36bf9806    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:51:54 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 16:51:54 -0500    

Click here for diff

M configure
M configure.ac
M meson.build

Last-minute updates for release notes.

commit   : a3acb409025a2f8e2cb93346bbc1d87281f861fc    
  
author   : Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    
  
committer: Tom Lane <tgl@sss.pgh.pa.us>    
date     : Mon, 9 Feb 2026 14:01:20 -0500    

Click here for diff