pgsql: Always use our own versions of *printf().

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Always use our own versions of *printf().
Дата
Msg-id E1g5DNy-0005cK-Vj@gemulon.postgresql.org
обсуждение исходный текст
Список 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(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Incorporate strerror_r() into src/port/snprintf.c, too.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Implement %m in src/port/snprintf.c,and teach elog.c to rely on