PDH.KFI3@t-online.de (Andreas Stahlhut) writes:
> If I use this in a create table like
> create table primtab(
> primkey
> int4
> primary key
> default
> int4(date_part('year', 'now'::datetime) * 1000+nextval('serial_seq'))
> );
> it never works.
> ERROR: parser: parse error at or near "'"
The default-value support in 6.5.* is pretty limited, not to say broken;
I think it is probably failing on the '::datetime' part of that
expression. 7.0 copes just fine. As a workaround for 6.5, you might
try writing date_part('year', now()) instead.
> If I use it in a create function like
> create function primfnc() returns int4
> as 'select .... as primnum'
> language 'sql';
> it never works.
> ERROR: parser: parse error at or near "year"
This is probably pilot error. Did you remember to double the ' symbols
in the body of the function definition? Remember the body is itself
a single-quoted string, so any embedded quote marks must be written ''
(or \' if you prefer).
regards, tom lane