Thread: Numeric overflow problem + patch

Numeric overflow problem + patch

From
David Fetter
Date:
Folks,

Dennis Björklund and I discovered a little problem with how CVS TIP
reports overflows on cast.  Please find enclosed a patch which fixes
it.

Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666
                              Skype: davidfetter

Remember to vote!

Attachment

Re: [HACKERS] Numeric overflow problem + patch

From
Tom Lane
Date:
David Fetter <david@fetter.org> writes:
> ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
> [ becomes ]
> ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.

This strikes me as overly pedantic.  The message needs to be clear,
and the proposed change will just confuse people.

            regards, tom lane

Re: [HACKERS] Numeric overflow problem + patch

From
Martijn van Oosterhout
Date:
On Thu, Sep 28, 2006 at 05:11:43PM -0400, Tom Lane wrote:
> David Fetter <david@fetter.org> writes:
> > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
> > [ becomes ]
> > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.
>
> This strikes me as overly pedantic.  The message needs to be clear,
> and the proposed change will just confuse people.

I don't know if the code can detect the difference, but a message like:

A field with precision 4, scale 4 must *round to* an absolute value less than 1

Since that more accurately describes the actual problem.

Have a ncie day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Attachment

Re: [HACKERS] Numeric overflow problem + patch

From
David Fetter
Date:
On Thu, Sep 28, 2006 at 05:11:43PM -0400, Tom Lane wrote:
> David Fetter <david@fetter.org> writes:
> > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
> > [ becomes ]
> > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.
>
> This strikes me as overly pedantic.  The message needs to be clear,
> and the proposed change will just confuse people.

It might, but the error that's currently in there is wrong.  With the
patch applied, you get:

postgres=# SELECT .99995::NUMERIC(4,4);
ERROR:  numeric field overflow
DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.

postgres=# SELECT .9999499999999999999999999999::NUMERIC(4,4);
 numeric
---------
  0.9999
(1 row)

I'd thought of changing it to the corresponding numeric piece, but
this doesn't work so well for NUMERIC(16,8) and the like.

Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666
                              Skype: davidfetter

Remember to vote!

Re: [HACKERS] Numeric overflow problem + patch

From
David Fetter
Date:
On Thu, Sep 28, 2006 at 11:16:56PM +0200, Martijn van Oosterhout wrote:
> On Thu, Sep 28, 2006 at 05:11:43PM -0400, Tom Lane wrote:
> > David Fetter <david@fetter.org> writes:
> > > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
> > > [ becomes ]
> > > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.
> >
> > This strikes me as overly pedantic.  The message needs to be
> > clear, and the proposed change will just confuse people.
>
> I don't know if the code can detect the difference, but a message
> like:
>
> A field with precision 4, scale 4 must *round to* an absolute value
> less than 1

What does .999 round to?  How about .5?

> Since that more accurately describes the actual problem.

I'd say it doesn't, as worded.  Maybe some other wording would be
clearer.

Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666
                              Skype: davidfetter

Remember to vote!

Re: [HACKERS] Numeric overflow problem + patch

From
David Fetter
Date:
On Thu, Sep 28, 2006 at 11:16:56PM +0200, Martijn van Oosterhout wrote:
> On Thu, Sep 28, 2006 at 05:11:43PM -0400, Tom Lane wrote:
> > David Fetter <david@fetter.org> writes:
> > > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
> > > [ becomes ]
> > > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.
> >
> > This strikes me as overly pedantic.  The message needs to be clear,
> > and the proposed change will just confuse people.
>
> I don't know if the code can detect the difference, but a message like:
>
> A field with precision 4, scale 4 must *round to* an absolute value less than 1
>
> Since that more accurately describes the actual problem.
>
> Have a ncie day,

Per your suggestion, how about this patch?

Cheers,
D
--
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666
                              Skype: davidfetter

Remember to vote!

Attachment

Re: [HACKERS] Numeric overflow problem + patch

From
Bruce Momjian
Date:
Patch applied.  Thanks.

---------------------------------------------------------------------------


David Fetter wrote:
> On Thu, Sep 28, 2006 at 11:16:56PM +0200, Martijn van Oosterhout wrote:
> > On Thu, Sep 28, 2006 at 05:11:43PM -0400, Tom Lane wrote:
> > > David Fetter <david@fetter.org> writes:
> > > > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1.
> > > > [ becomes ]
> > > > ! DETAIL:  A field with precision 4, scale 4 must have an absolute value less than 1 - 5 * 10^-5.
> > >
> > > This strikes me as overly pedantic.  The message needs to be clear,
> > > and the proposed change will just confuse people.
> >
> > I don't know if the code can detect the difference, but a message like:
> >
> > A field with precision 4, scale 4 must *round to* an absolute value less than 1
> >
> > Since that more accurately describes the actual problem.
> >
> > Have a ncie day,
>
> Per your suggestion, how about this patch?
>
> Cheers,
> D
> --
> David Fetter <david@fetter.org> http://fetter.org/
> phone: +1 415 235 3778        AIM: dfetter666
>                               Skype: davidfetter
>
> Remember to vote!

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +