Re: [HACKERS] current_time?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [HACKERS] current_time?
Дата
Msg-id 11687.940395152@sss.pgh.pa.us
обсуждение исходный текст
Ответ на current_time?  (Vince Vielhaber <vev@michvhf.com>)
Ответы Re: [HACKERS] current_time?
Список pgsql-hackers
Vince Vielhaber <vev@michvhf.com> writes:
> Now I thought this was discussed recently and this:
> create table foo(
> x       int,
> y       datetime default current_time);
> would put the current date and time into y whenever a new record was
> inserted.  It appears to give the date and time the stupid table was
> created.  Is it me or is something broke?

The behavior for this was changed very recently.  Since current sources
refuse the above:

regression=> create table foo(
regression-> x       int,
regression-> y       datetime default current_time);
ERROR:  Attribute 'y' is of type 'datetime' but default expression is of type 'time'       You will need to rewrite or
castthe expression
 

I am guessing you are trying it with 6.5.*, where indeed you will likely
get the time of table creation.  Recommended approach isy  datetime default now()
which works the way you want in all Postgres versions AFAIK.

Next question is whether current sources are broken to refuse the above.
Since I get

regression=> create table zz (x datetime);
CREATE
regression=> insert into zz values(current_time);
ERROR:  Attribute 'x' is of type 'datetime' but expression is of type 'time'       You will need to rewrite or cast the
expression

it seems I managed to make default-expression handling consistent
with the rest of the system, but that doesn't necessarily mean this
behavior is desirable...  Thomas, what say you?
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Lockhart
Дата:
Сообщение: Re: Need refresh on main page...
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] book status