Обсуждение: types of constraint deferment

Поиск
Список
Период
Сортировка

types of constraint deferment

От
Ron Johnson
Дата:
Hi,

v7.3.3
http://www.postgresql.org/docs/7.3/static/sql-createtable.html

Is "INITIALLY DEFERRED" a modifier of "NOT DEFERRABLE"?  If so,
what does it do, since they seem contradictory.

Thanks
--
+---------------------------------------------------------------+
| Ron Johnson, Jr.        Home: ron.l.johnson@cox.net           |
| Jefferson, LA  USA                                            |
|                                                               |
| "Man, I'm pretty.  Hoo Hah!"                                  |
|    Johnny Bravo                                               |
+---------------------------------------------------------------+



Re: types of constraint deferment

От
Stephan Szabo
Дата:
On 11 Aug 2003, Ron Johnson wrote:

> v7.3.3
> http://www.postgresql.org/docs/7.3/static/sql-createtable.html
>
> Is "INITIALLY DEFERRED" a modifier of "NOT DEFERRABLE"?  If so,
> what does it do, since they seem contradictory.

It's not allowed.  An INITIALLY DEFERRED constraint must not
be defined as NOT DEFERRABLE, although an INITIALLY DEFERRED
constraint that doesn't specify either is considered DEFERRABLE.
The docs refered to are weak on this, care to try a rewrite of
those parts? :)


Re: types of constraint deferment

От
Dennis Gearon
Дата:
I don't believe they work together.

Ron Johnson wrote:

> Hi,
>
> v7.3.3
> http://www.postgresql.org/docs/7.3/static/sql-createtable.html
>
> Is "INITIALLY DEFERRED" a modifier of "NOT DEFERRABLE"?  If so,
> what does it do, since they seem contradictory.
>
> Thanks


Re: types of constraint deferment

От
Ron Johnson
Дата:
On Tue, 2003-08-12 at 00:38, Stephan Szabo wrote:
> On 11 Aug 2003, Ron Johnson wrote:
>
> > v7.3.3
> > http://www.postgresql.org/docs/7.3/static/sql-createtable.html
> >
> > Is "INITIALLY DEFERRED" a modifier of "NOT DEFERRABLE"?  If so,
> > what does it do, since they seem contradictory.
>
> It's not allowed.  An INITIALLY DEFERRED constraint must not
> be defined as NOT DEFERRABLE, although an INITIALLY DEFERRED
> constraint that doesn't specify either is considered DEFERRABLE.
> The docs refered to are weak on this, care to try a rewrite of
> those parts? :)

Sure, after I know what the rules are!!!!!

--
+---------------------------------------------------------------+
| Ron Johnson, Jr.        Home: ron.l.johnson@cox.net           |
| Jefferson, LA  USA                                            |
|                                                               |
| "Man, I'm pretty.  Hoo Hah!"                                  |
|    Johnny Bravo                                               |
+---------------------------------------------------------------+



Re: types of constraint deferment

От
Stephan Szabo
Дата:
On 12 Aug 2003, Ron Johnson wrote:

> On Tue, 2003-08-12 at 00:38, Stephan Szabo wrote:
> > On 11 Aug 2003, Ron Johnson wrote:
> >
> > > v7.3.3
> > > http://www.postgresql.org/docs/7.3/static/sql-createtable.html
> > >
> > > Is "INITIALLY DEFERRED" a modifier of "NOT DEFERRABLE"?  If so,
> > > what does it do, since they seem contradictory.
> >
> > It's not allowed.  An INITIALLY DEFERRED constraint must not
> > be defined as NOT DEFERRABLE, although an INITIALLY DEFERRED
> > constraint that doesn't specify either is considered DEFERRABLE.
> > The docs refered to are weak on this, care to try a rewrite of
> > those parts? :)
>
> Sure, after I know what the rules are!!!!!

Basically, you can specify one of the following states on the constraint
(unless I'm missing something)

Neither a check time nor a deferrability, in which case you get
 NOT DEFERRABLE INITIALLY IMMEDIATE
No check time and NOT DEFERRABLE, in which case you get
 NOT DEFERRABLE INITIALLY IMMEDIATE
No check time and DEFERRABLE, in which case you get
 DEFERRABLE INITIALLY IMMEDIATE
A check time of INITIALLY IMMEDIATE and no deferrability, in which case
 you get NOT DEFERRABLE INITIALLY IMMEDIATE
A check time of INITIALLY DEFERRED and no deferrability, in which case
 you get DEFERRABLE INITIALLY DEFERRED
A check time of INITIALLY IMMEDIATE and NOT DEFERRABLE, in which case
 you get NOT DEFERRABLE INITIALLY IMMEDIATE
A check time of INITIALLY IMMEDIATE and DEFERRABLE, in which case
 you get DEFERRABLE INITIALLY IMMEDIATE
A check time of INITIALLY DEFERRED and DEFERRABLE, in which case
 you get DEFERRABLE INITIALLY DEFERRED
A check time of INITIALLY DEFERRED and NOT DEFERRABLE is an error
 condition.



Re: types of constraint deferment

От
Dennis Gearon
Дата:
Boy, that'd be nice to have in the manual!

Stephan Szabo wrote:

> On 12 Aug 2003, Ron Johnson wrote:
>
>
>>On Tue, 2003-08-12 at 00:38, Stephan Szabo wrote:
>>
>>>On 11 Aug 2003, Ron Johnson wrote:
>>>
>>>
>>>>v7.3.3
>>>>http://www.postgresql.org/docs/7.3/static/sql-createtable.html
>>>>
>>>>Is "INITIALLY DEFERRED" a modifier of "NOT DEFERRABLE"?  If so,
>>>>what does it do, since they seem contradictory.
>>>
>>>It's not allowed.  An INITIALLY DEFERRED constraint must not
>>>be defined as NOT DEFERRABLE, although an INITIALLY DEFERRED
>>>constraint that doesn't specify either is considered DEFERRABLE.
>>>The docs refered to are weak on this, care to try a rewrite of
>>>those parts? :)
>>
>>Sure, after I know what the rules are!!!!!
>
>
> Basically, you can specify one of the following states on the constraint
> (unless I'm missing something)
>
> Neither a check time nor a deferrability, in which case you get
>  NOT DEFERRABLE INITIALLY IMMEDIATE
> No check time and NOT DEFERRABLE, in which case you get
>  NOT DEFERRABLE INITIALLY IMMEDIATE
> No check time and DEFERRABLE, in which case you get
>  DEFERRABLE INITIALLY IMMEDIATE
> A check time of INITIALLY IMMEDIATE and no deferrability, in which case
>  you get NOT DEFERRABLE INITIALLY IMMEDIATE
> A check time of INITIALLY DEFERRED and no deferrability, in which case
>  you get DEFERRABLE INITIALLY DEFERRED
> A check time of INITIALLY IMMEDIATE and NOT DEFERRABLE, in which case
>  you get NOT DEFERRABLE INITIALLY IMMEDIATE
> A check time of INITIALLY IMMEDIATE and DEFERRABLE, in which case
>  you get DEFERRABLE INITIALLY IMMEDIATE
> A check time of INITIALLY DEFERRED and DEFERRABLE, in which case
>  you get DEFERRABLE INITIALLY DEFERRED
> A check time of INITIALLY DEFERRED and NOT DEFERRABLE is an error
>  condition.
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>