From: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
---|---|
To: | "wangshuo(at)highgo(dot)com(dot)cn" <wangshuo(at)highgo(dot)com(dot)cn>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
Cc: | Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] Re: [HACKERS] Is it necessary to rewrite table while increasing the scale of datatype numeric? |
Date: | 2013-09-06 15:29:35 |
Message-ID: | 1378481375.60559.YahooMailNeo@web162904.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"wangshuo(at)highgo(dot)com(dot)cn" <wangshuo(at)highgo(dot)com(dot)cn> wrote:
> I modified the code for this situation.I consider it very simple.
> It will does not modify the table file, when the scale has been
> increased exclusively.
This patch would allow data in a column which was not consistent
with the column definition:
test=# create table n (val numeric(5,2));
CREATE TABLE
test=# insert into n values ('123.45');
INSERT 0 1
test=# select * from n;
val
--------
123.45
(1 row)
test=# alter table n alter column val type numeric(5,4);
ALTER TABLE
test=# select * from n;
val
--------
123.45
(1 row)
Without your patch the ALTER TABLE command gets this error (as it
should):
test=# alter table n alter column val type numeric(5,4);
ERROR: numeric field overflow
DETAIL: A field with precision 5, scale 4 must round to an absolute value less than 10^1.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Greg Stark | 2013-09-06 16:02:33 | Re: [bug fix] strerror() returns ??? in a UTF-8/C database with LC_MESSAGES=non-ASCII |
Previous Message | Kevin Grittner | 2013-09-06 15:19:15 | Re: get rid of SQL_ASCII? |