]> granicus.if.org Git - postgresql/commit
Always use our own versions of *printf().
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 26 Sep 2018 17:13:57 +0000 (13:13 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 26 Sep 2018 17:13:57 +0000 (13:13 -0400)
commit96bf88d52711ad3a0a4cc2d1d9cb0e2acab85e63
tree5fe0dd88e19f308167a9d17c19b372012573dd8e
parent758ce9b7794845f95473c569155d29fcf0e2751b
Always use our own versions of *printf().

We've spent an awful lot of effort over the years in coping with
platform-specific vagaries of the *printf family of functions.  Let's just
forget all that mess and standardize on always using src/port/snprintf.c.
This gets rid of a lot of configure logic, and it will allow a saner
approach to dealing with %m (though actually changing that is left for
a follow-on patch).

Preliminary performance testing suggests that as it stands, snprintf.c is
faster than the native printf functions for some tasks on some platforms,
and slower for other cases.  A pending patch will improve that, though
cases with floating-point conversions will doubtless remain slower unless
we want to put a *lot* of effort into that.  Still, we've not observed
that *printf is really a performance bottleneck for most workloads, so
I doubt this matters much.

Patch by me, reviewed by Michael Paquier

Discussion: https://postgr.es/m/2975.1526862605@sss.pgh.pa.us
16 files changed:
config/c-compiler.m4
config/c-library.m4
configure
configure.in
src/include/c.h
src/include/pg_config.h.in
src/include/pg_config.h.win32
src/include/port.h
src/interfaces/ecpg/compatlib/Makefile
src/interfaces/ecpg/ecpglib/Makefile
src/interfaces/ecpg/pgtypeslib/Makefile
src/interfaces/libpq/Makefile
src/pl/plperl/plperl.h
src/pl/plpython/plpython.h
src/port/Makefile
src/port/README