]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Adjust some incorrect *GetDatum() macros
authorMichael Paquier <michael@paquier.xyz>
Thu, 30 Apr 2026 04:10:19 +0000 (13:10 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 30 Apr 2026 04:10:19 +0000 (13:10 +0900)
commitac59a90bef4527961ce205c9f890bf3ef0672c7d
treedd34af4f8e7ba0988276564857f6cc28b7fac5fe
parent4bfd0f1b769eca345072ea4da646a0d46a49960c
Adjust some incorrect *GetDatum() macros

This reverts portions of commit 6dcfac9696cb, which is wrong in trying
to use a *GetDatum() that matches with the C types of the values read.
*GetDatum() should match with the output argument types of the SQL
functions.

The portions of 6dcfac9696cb that are right regarding this rule are:
- gistget.c, where the GiST support functions use DatumGetUInt16() to
retrieve the strategy number.
- The BRIN code for strategynum, used in syscache lookups.

The adjustments done in this commit are for pageinspect, pg_buffercache
and pg_lock_status().

While double-checking the whole state of the tree regarding non-matching
pairs of DatumGet*() and *GetDatum(), I have found much more code paths
that are incorrect, unrelated to 6dcfac9696cb.  These may be adjusted in
the future, in a different patch (perhaps not for v19, as we are already
past feature freeze).

Reported-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/97f9375a-be61-4272-a44d-408337fe8fa6@eisentraut.org
Discussion: https://postgr.es/m/CAJ7c6TMcGu8qmRe1gZfJ-gOzVnZq-t=fwn-UuyStx1w6ZyydMw@mail.gmail.com
contrib/pageinspect/btreefuncs.c
contrib/pageinspect/ginfuncs.c
contrib/pageinspect/gistfuncs.c
contrib/pg_buffercache/pg_buffercache_pages.c
src/backend/utils/adt/lockfuncs.c