Greetings,

Well, it seems that the numeric issue I was having has nothing to do with 
the precision and scale being set the same, it has to do with the input 
data.  The precision has to be at least 2 greater than the biggest number 
you need to enter, i.e.

equinox=# create table test ( d numeric(4,2) );
CREATE
equinox=# insert into test values(10);
INSERT 167844 1
equinox=# insert into test values(101);
ERROR:  overflow on numeric ABS(value) >= 10^2 for field with precision 4 
scale 2


Matthew


Wed, 04 Oct 2000 23:57:45 -0400
Matthew Hagerty <matthew@venux.net>
Numeric field quirk [Again]
Matthew Hagerty <matthew@venux.net> writes:
> Well, it seems that the numeric issue I was having has nothing to do with 
> the precision and scale being set the same, it has to do with the input 
> data.  The precision has to be at least 2 greater than the biggest number 
> you need to enter, i.e.

> equinox=# create table test ( d numeric(4,2) );
> CREATE
> equinox=# insert into test values(10);
> INSERT 167844 1
> equinox=# insert into test values(101);
> ERROR:  overflow on numeric ABS(value) >= 10^2 for field with precision 4 
> scale 2

Precision is the total number of digits, scale is the number of digits
to the right of the decimal point.  So the above (4,2) means numbers
like XX.XX --- and obviously 10 fits, 101 doesn't.  Your previous
example of (3,3) means numbers like .XXX --- no integer will fit,
but fractions will.  I see no bug here...

			regards, tom lane

Thu, 05 Oct 2000 02:02:42 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: Numeric field quirk [Again] 
Matthew Hagerty wrote:
> Greetings,
>
> Well, it seems that the numeric issue I was having has nothing to do with
> the precision and scale being set the same, it has to do with the input
> data.  The precision has to be at least 2 greater than the biggest number
> you need to enter, i.e.
>
> equinox=# create table test ( d numeric(4,2) );
> CREATE
> equinox=# insert into test values(10);
> INSERT 167844 1
> equinox=# insert into test values(101);
> ERROR:  overflow on numeric ABS(value) >= 10^2 for field with precision 4
> scale 2

    The  scale  digits  aren't  added,  they  are  taken from the
    precision   specified   digits.   Numeric(4.2)   is    99.99,
    numeric(8.2)  is 999999.99 and numeric(4.4) is .9999 - so the
    above looks correct to me.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



Thu, 5 Oct 2000 03:44:08 -0500 (EST)
Jan Wieck <janwieck@Yahoo.com>
Re: Numeric field quirk [Again]
> Greetings,
> 
> Well, it seems that the numeric issue I was having has nothing to do with 
> the precision and scale being set the same, it has to do with the input 
> data.  The precision has to be at least 2 greater than the biggest number 
> you need to enter, i.e.
> 
> equinox=# create table test ( d numeric(4,2) );
> CREATE
> equinox=# insert into test values(10);
> INSERT 167844 1
> equinox=# insert into test values(101);
> ERROR:  overflow on numeric ABS(value) >= 10^2 for field with precision 4 
> scale 2

The variable above is 4 digits, with 2 digits to the right of the
decimal place.  Doing numberic(3,3) allows insertion of 0.4, but not
4.0.  This is expected.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Mon, 9 Oct 2000 13:02:36 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Numeric field quirk [Again]