Re: Convert *GetDatum() and DatumGet*() macros to inline functions
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Aleksander Alekseev <aleksander@timescale.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2022-08-30T14:16:45Z
Lists: pgsql-hackers
On Tue, Aug 30, 2022 at 10:13 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Aleksander Alekseev <aleksander@timescale.com> writes: > > Just to clarify, a break in this case is going to be the fact that we > > are adding new functions, although inlined, correct? Or maybe > > something else? I'm sorry this is the first time I encounter the > > question of ABI compatibility in the context of Postgres, so I would > > appreciate it if you could elaborate a bit. > > After absorbing a bit more caffeine, I suppose that replacing a > macro with a "static inline" function would not be an ABI break, > at least not with most modern compilers, because the code should > end up the same. I'd still vote against back-patching though. > I don't think the risk-reward ratio is good, especially not for > the pre-C99 branches which don't necessarily have "inline". Yeah, I don't see a reason to back-patch a change like this, certainly not right away. If over time it turns out that the different definitions on different branches cause too many headaches, we could reconsider. However, I'm not sure that will happen, because the whole point is that the static inline functions are intended to behave in the same way as the macros, just with better type-checking. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
Convert *GetDatum() and DatumGet*() macros to inline functions
- c8b2ef05f481 16.0 landed
- 595836e99bf1 16.0 landed
-
Fix incorrect uses of Datum conversion macros
- 6bcda4a72123 16.0 landed