Re: [HACKERS] pgsql: Improve performance of SendRowDescriptionMessage.

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Noah Misch <noah@leadboat.com>, pgsql-committers@postgresql.org
Date: 2017-10-13T18:19:22Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> A easiest way to do this would be to put something like
> CPPFLAGS="$CPPFLAGS -Dpg_restrict" into the existing
> if test "$GCC" != yes ; then
> block in a/src/template/linux. But that'd probably result in "macro
> redefined" warnings or somesuch.

You mean src/template/aix, no?  Agreed, that seems like a reasonable
place to control it.  But I'm pretty sure the above would flat out
not work, the #define in pg_config.h would override it.

> So it'd probably better to introduce a FORCE_DISABLE_RESTRICT=yes, set
> at the same place, that's then tested before running the relevant
> configure check?

+1.  I think you don't actually have to skip the configure check,
and there might be some value in letting it carry on normally
(so that "restrict" is set properly).  We'd just want it to affect
what pg_restrict gets defined as.  Something like

if test "$ac_cv_c_restrict" = "no" -o "x$FORCE_DISABLE_RESTRICT" = "xyes"; then
  pg_restrict=""
else
  pg_restrict="$ac_cv_c_restrict"
fi

			regards, tom lane


Commits

  1. Force "restrict" not to be used when compiling with xlc.

  2. Rely on sizeof(typename) rather than sizeof(variable) in pqformat.h.

  3. Use C99 restrict via pg_restrict, rather than restrict directly.

  4. Improve performance of SendRowDescriptionMessage.

  5. Partially flatten struct tupleDesc so that it can be used in DSM.

  6. Remove useless duplicate inclusions of system header files.