From: | Noah Misch <noah(at)leadboat(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Bruce Momjian <bruce(at)momjian(dot)us>, David Rowley <dgrowleyml(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Zero-padding and zero-masking fixes for to_char(float) |
Date: | 2015-03-23 06:49:15 |
Message-ID: | 20150323064915.GA805525@tornado.leadboat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Mar 23, 2015 at 12:36:25AM -0400, Tom Lane wrote:
> Bruce Momjian <bruce(at)momjian(dot)us> writes:
> > On Sun, Mar 22, 2015 at 12:46:08PM -0400, Noah Misch wrote:
> >> I recommend adding a "configure" test to use our snprintf.c replacements if
> >> sprintf("%.*f", 65536, 99999999999.0) gives unexpected output.
>
> > Do we really want to go to our /port snprintf just to handle 512+
> > digits?
>
> I'd rather not go that direction (that is, to using a configure test).
> It assumes that all copies of libc on a particular platform behave the
> same, which seems like a bad bet to me. I think we'd be better off to
> avoid asking libc to do anything that might not work everywhere.
>
> On the other hand, this line of thought might end up having you
> reimplement in formatting.c the same logic I put into snprintf.c
> recently, which seems a bit silly.
We already assume that a positive PGAC_FUNC_SNPRINTF_LONG_LONG_INT_MODIFIER,
PGAC_FUNC_SNPRINTF_ARG_CONTROL and PGAC_FUNC_SNPRINTF_SIZE_T_SUPPORT will hold
forever. While one can construct counterexamples, I don't recall much push to
change that. This %1000f problem evades casual testing and will fade from
hacker memory. We're liable to introduce similar bugs if everyone hacking
high level code like src/backend/utils/adt needs to remember it.
A potential compromise is to verify the configure-detected behavior during
startup_hacks(). The DBA will see clearly when the runtime libraries exhibit
a bug absent at build time.
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2015-03-23 06:51:30 | Re: Display of multi-target-table Modify plan nodes in EXPLAIN |
Previous Message | Heikki Linnakangas | 2015-03-23 06:38:03 | Re: Display of multi-target-table Modify plan nodes in EXPLAIN |