From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Always use our own versions of *printf(). |
Date: | 2018-09-26 17:14:02 |
Message-ID: | E1g5DNy-0005cK-Vj@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
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
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/96bf88d52711ad3a0a4cc2d1d9cb0e2acab85e63
Modified Files
--------------
config/c-compiler.m4 | 11 +-
config/c-library.m4 | 100 -------------
configure | 254 --------------------------------
configure.in | 83 -----------
src/include/c.h | 8 -
src/include/pg_config.h.in | 17 ---
src/include/pg_config.h.win32 | 17 ---
src/include/port.h | 8 +-
src/interfaces/ecpg/compatlib/Makefile | 3 +-
src/interfaces/ecpg/ecpglib/Makefile | 4 +-
src/interfaces/ecpg/pgtypeslib/Makefile | 4 +-
src/interfaces/libpq/Makefile | 4 +-
src/pl/plperl/plperl.h | 5 -
src/pl/plpython/plpython.h | 5 -
src/port/Makefile | 3 +-
src/port/README | 2 +-
16 files changed, 19 insertions(+), 509 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-09-26 17:32:03 | pgsql: Implement %m in src/port/snprintf.c, and teach elog.c to rely on |
Previous Message | Tom Lane | 2018-09-26 16:36:03 | pgsql: Incorporate strerror_r() into src/port/snprintf.c, too. |