Re: "Named" column default expression

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

In response to

Browse pgsql-general by date

  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