Numeric overflow problem + patch

Started by David Fetterover 19 years ago7 messageshackers
Jump to latest
#1David Fetter
david@fetter.org

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!

Attachments:

correct_numeric_overflow_error.patchtext/plain; charset=us-asciiDownload+11-11
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: David Fetter (#1)
Re: [HACKERS] Numeric overflow problem + patch

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

#3Martijn van Oosterhout
kleptog@svana.org
In reply to: Tom Lane (#2)
Re: [HACKERS] Numeric overflow problem + patch

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/

Show quoted text

From each according to his ability. To each according to his ability to litigate.

#4David Fetter
david@fetter.org
In reply to: Tom Lane (#2)
Re: [HACKERS] Numeric overflow problem + patch

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!

#5David Fetter
david@fetter.org
In reply to: Martijn van Oosterhout (#3)
Re: [HACKERS] Numeric overflow problem + patch

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!

#6David Fetter
david@fetter.org
In reply to: Martijn van Oosterhout (#3)
Re: [HACKERS] Numeric overflow problem + patch

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!

Attachments:

correct_numeric_overflow_error.patchtext/plain; charset=us-asciiDownload+9-9
#7Bruce Momjian
bruce@momjian.us
In reply to: David Fetter (#6)
Re: [HACKERS] Numeric overflow problem + patch

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. +