From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: "Named" column default expression |
Date: | 2011-10-28 16:05:14 |
Message-ID: | j8ejrq$38r$1@dough.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Tom Lane wrote on 28.10.2011 16:21:
>>>> I just noticed that Postgres allows the following syntax:
>>>> create table foo
>>>> (
>>>> id integer constraint id_default_value default 42
>>>> );
>
>> I'm wondering why this doesn't throw an error then.
>
> It's an implementation artifact --- our grammar regards everything after
> a column's type name as a list of column constraints. So "DEFAULT foo"
> has to be considered as one variant of column constraint. We could
> probably tweak the grammar enough so it didn't allow "CONSTRAINT name"
> to be prefixed to that one case, but there seems little point in adding
> complexity for that. The most it would accomplish is to break
> applications that are expecting this particular deviation from spec to
> work.
Thanks for the explanation.
I have seen the syntax on SQL Server and there it does give the default definition a name. I was somewhat surprised about the syntax as I have never considered a default to be a constraint. So I checked the PostgreSQL manual just to find that the same syntax works there as well....
Regards
Thomas
From | Date | Subject | |
---|---|---|---|
Next Message | Merlin Moncure | 2011-10-28 16:29:22 | Re: nextval skips values between consecutive calls |
Previous Message | depstein | 2011-10-28 15:28:05 | Re: nextval skips values between consecutive calls |