pgsql 7.4b2 bug on column defaults?
Hi,
just testing beta2 I got strange things on default values with functions:
create table test2 (i integer, t timestamp default 'now()');
test1=# \d test2
Table "public.test2"
Column | Type |
Modifiers
--------+-----------------------------+-------------------------------------------------------------------
i | integer |
t | timestamp without time zone | default '29/08/2003
11:26:23.937421'::timestamp without time zone
test1=# insert into test2 values(1);
INSERT 9841455 1
test1=# insert into test2 values(1);
INSERT 9841456 1
test1=# insert into test2 values(1);
INSERT 9841457 1
test1=# select * from test2;
i | t
---+----------------------------
1 | 29/08/2003 11:26:23.937421
1 | 29/08/2003 11:26:23.937421
1 | 29/08/2003 11:26:23.937421
(3 rows)
Seems that functions are valuated when the table is created,
It is a known change or a bug ?
thanks,
Giuseppe
--
-------------------------------------------------------
Giuseppe Tanzilli g.tanzilli@gruppocsf.com
CSF Sistemi srl phone ++39 0775 7771
Via del Ciavattino
Anagni FR
Italy
Hi,
I see it work without quotes around function,
but I got it from a 7.2 dump with quotes around it.
Maybe it require a note for people dumping from 7.2,
I don't have 7.3 around to try, sorry
bye
Giuseppe Tanzilli - CSF wrote:
Hi,
just testing beta2 I got strange things on default values with functions:create table test2 (i integer, t timestamp default 'now()');
test1=# \d test2
Table "public.test2"
Column | Type |
Modifiers
--------+-----------------------------+-------------------------------------------------------------------i | integer |
t | timestamp without time zone | default '29/08/2003
11:26:23.937421'::timestamp without time zonetest1=# insert into test2 values(1);
INSERT 9841455 1
test1=# insert into test2 values(1);
INSERT 9841456 1
test1=# insert into test2 values(1);
INSERT 9841457 1test1=# select * from test2;
i | t
---+----------------------------
1 | 29/08/2003 11:26:23.937421
1 | 29/08/2003 11:26:23.937421
1 | 29/08/2003 11:26:23.937421
(3 rows)Seems that functions are valuated when the table is created,
It is a known change or a bug ?thanks,
Giuseppe
--
-------------------------------------------------------
Giuseppe Tanzilli g.tanzilli@gruppocsf.com
CSF Sistemi srl phone ++39 0775 7771
Via del Ciavattino
Anagni FR
Italy
Giuseppe Tanzilli - CSF <g.tanzilli@gruppocsf.com> writes:
create table test2 (i integer, t timestamp default 'now()');
Use "DEFAULT now()". I'm surprised you didn't get a syntax error from
the above.
It is a known change or a bug ?
It's an intentional change, yes.
regards, tom lane