On Wed, Dec 4, 2013 at 6:56 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: >> Hmm. And yet, there's this: > >> * When a type narrower than Datum is stored in a Datum, we place it in the >> * low-order bits and are careful that the DatumGetXXX macro for it discards >> * the unused high-order bits (as opposed to, say, assuming they are zero). >> * This is needed to support old-style user-defined functions, since >> depending >> * on architecture and compiler, the return value of a function returning >> char >> * or short may contain garbage when called as if it returned Datum. > >> And record_image_eq does a rather elaborate dance around here, calling >> the appropriate GET_x_BYTES macro depending on the type-width. If we >> can really count on the high-order bits to be zero, that's all >> completely unnecessary tomfoolery. > > Yeah, that's another thing we could simplify if we fixed this problem > at the source. I think these decisions date from a time when we still > cared about the speed of fmgr_oldstyle.
Sure, let's whack that thing with a crowbar. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers