Convert *GetDatum() and DatumGet*() macros to inline functions

Peter Eisentraut <peter@eisentraut.org>

Commit: c8b2ef05f481ef06326d7b9f3eb14b303f215c7e
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2022-09-27T18:50:21Z
Releases: 16.0
Convert *GetDatum() and DatumGet*() macros to inline functions

The previous macro implementations just cast the argument to a target
type but did not check whether the input type was appropriate.  The
function implementation can do better type checking of the input type.

For the *GetDatumFast() macros, converting to an inline function
doesn't work in the !USE_FLOAT8_BYVAL case, but we can use
AssertVariableIsOfTypeMacro() to get a similar level of type checking.

Reviewed-by: Aleksander Alekseev <aleksander@timescale.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/8528fb7e-0aa2-6b54-85fb-0c0886dbd6ed%40enterprisedb.com

Files

Documentation touched

Discussion