Adjust some incorrect *GetDatum() macros
Michael Paquier <michael@paquier.xyz>
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
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pageinspect/btreefuncs.c | modified | +1 −1 |
| contrib/pageinspect/ginfuncs.c | modified | +1 −1 |
| contrib/pageinspect/gistfuncs.c | modified | +2 −2 |
| contrib/pg_buffercache/pg_buffercache_pages.c | modified | +1 −1 |
| src/backend/utils/adt/lockfuncs.c | modified | +2 −2 |
Discussion
- Define DatumGetInt8 function. 14 messages · 2025-12-29 → 2026-04-30
- Use correct macro for accessing offset numbers. 10 messages · 2026-01-11 → 2026-04-27