postgres-github.git / summary / log / commit / refs

commit    80156cee06b9d257251d72379ac43f9b88bd13e1
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Sat Apr 11 08:02:52 2026 +0000

    Honor passed-in database OIDs in pgstat_database.c
    
    Three routines in pgstat_database.c incorrectly ignore the database OID
    provided by their caller, using MyDatabaseId instead:
    - pgstat_report_connect()
    - pgstat_report_disconnect()
    - pgstat_reset_database_timestamp()
    
    The first two functions, for connection and disconnection, each have a
    single caller that already passes MyDatabaseId.  This was harmless,
    still incorrect.
    
    The timestamp reset function also has a single caller, but in this case
    the issue has a real impact: it fails to reset the timestamp for the
    shared-database entry (datid=0) when operating on shared objects.  This
    situation can occur, for example, when resetting counters for shared
    relations via pg_stat_reset_single_table_counters().
    
    There is currently one test in the tree that checks the reset of a
    shared relation, for pg_shdescription, we rely on it to check what is
    stored in pg_stat_database.  As stats_reset may be NULL, two resets are
    done to provide a baseline for comparison.
    
    Author: Chao Li <li.evan.chao@gmail.com>
    Reviewed-by: Michael Paquier <michael@paquier.xyz>
    Reviewed-by: Dapeng Wang <wangdp20191008@gmail.com>
    Discussion: https://postgr.es/m/ABBD5026-506F-4006-A569-28F72C188693@gmail.com
    Backpatch-through: 15

[parent: 77d0e82e5885]