]> granicus.if.org Git - postgresql/commit
Use static inline functions for float <-> Datum conversions.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 31 Aug 2016 13:00:28 +0000 (16:00 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 31 Aug 2016 13:00:28 +0000 (16:00 +0300)
commit14cca1bf8e31ed39dbc26dd6c610f1113e759972
tree489757c243e8ec3564adfe383f494426dc0e16ae
parent0e0f43d6fdc2e1fbd5261245ed4cf85302a3f653
Use static inline functions for float <-> Datum conversions.

Now that we are OK with using static inline functions, we can use them
to avoid function call overhead of pass-by-val versions of Float4GetDatum,
DatumGetFloat8, and Float8GetDatum. Those functions are only a few CPU
instructions long, but they could not be written into macros previously,
because we need a local union variable for the conversion.

I kept the pass-by-ref versions as regular functions. They are very simple
too, but they call palloc() anyway, so shaving a few instructions from the
function call doesn't seem so important there.

Discussion: <dbb82a4a-2c15-ba27-dd0a-009d2aa72b77@iki.fi>
src/backend/utils/fmgr/fmgr.c
src/include/postgres.h