On 18/01/2010 6:09 PM, Greg Stark wrote:
> On Mon, Jan 18, 2010 at 8:30 AM, Craig Ringer
> <craig@postnewspapers.com.au> wrote:
>> I don't know whether Oracle or Pg are more "correct" here - you're
>> giving Pg "3" so arguably it shouldn't assume "3.00" and should in fact
>> return "3". OTOH, you've told it what the scale and precision are for
>> the column, and inputs to the column should be presumed to fit that
>> scale and precision.
>>
> In no case does postgres remember the precision of the input text. If
> you don't specify a precision on the column it just prints as many as
> necessar. That sounds like what you're looking for.
Then I'm confused:
regress=> create table test (x numeric);
CREATE TABLE ^
regress=> insert into test (x) values ('3');
INSERT 0 1
regress=> insert into test (x) values ('3.0');
INSERT 0 1
regress=> insert into test (x) values ('3.00');
INSERT 0 1
regress=> insert into test (x) values ('3.000');
INSERT 0 1
regress=> select * from test;
x
-------
3
3.0
3.00
3.000
(4 rows)
--
Craig Ringer