From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Require a C99-compliant snprintf(), and remove related workaroun |
Date: | 2018-08-16 17:01:16 |
Message-ID: | E1fqLe8-0002Zs-Kd@gemulon.postgresql.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Require a C99-compliant snprintf(), and remove related workarounds.
Since our substitute snprintf now returns a C99-compliant result,
there's no need anymore to have complicated code to cope with pre-C99
behavior. We can just make configure substitute snprintf.c if it finds
that the system snprintf() is pre-C99. (Note: I do not believe that
there are any platforms where this test will trigger that weren't
already being rejected due to our other C99-ish feature requirements for
snprintf. But let's add the check for paranoia's sake.) Then, simplify
the call sites that had logic to cope with the pre-C99 definition.
I also dropped some stuff that was being paranoid about the possibility
of snprintf overrunning the given buffer. The only reports we've ever
heard of that being a problem were for Solaris 7, which is long dead,
and we've sure not heard any reports of these assertions triggering in
a long time. So let's drop that complexity too.
Likewise, drop some code that wasn't trusting snprintf to set errno
when it returns -1. That would be not-per-spec, and again there's
no real reason to believe it is a live issue, especially not for
snprintfs that pass all of configure's feature checks.
Discussion: https://postgr.es/m/17245.1534289329@sss.pgh.pa.us
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/e1d19c902e59ad739cb4b6267ee2073a61e86cd3
Modified Files
--------------
config/c-library.m4 | 27 ++++++++++++++
configure | 46 +++++++++++++++++++++++-
configure.in | 11 +++++-
src/backend/utils/misc/guc.c | 23 +++++-------
src/common/psprintf.c | 73 ++++++++------------------------------
src/interfaces/libpq/pqexpbuffer.c | 68 +++++++++++------------------------
6 files changed, 125 insertions(+), 123 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2018-08-16 17:56:29 | pgsql: Remove remaining GEODEBUG references from geo_ops.c |
Previous Message | Alvaro Herrera | 2018-08-16 16:01:00 | pgsql: Fix executor prune failure when plan already pruned |