From: | Paul Jungwirth <pj(at)illuminatedcomputing(dot)com> |
---|---|
To: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
Cc: | jian he <jian(dot)universality(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, vignesh C <vignesh21(at)gmail(dot)com> |
Subject: | Re: SQL:2011 application time |
Date: | 2025-03-20 03:33:36 |
Message-ID: | 472e52a1-1960-49e3-a029-f271ba2670d8@illuminatedcomputing.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 3/3/25 02:05, Peter Eisentraut wrote:
> In the theory of the SQL standard, executing referential actions and checking the foreign-key
> constraint are two separate steps. So it kind of goes like this:
>
> 1. run command
> 2. run any referential actions
> 3. check that foreign key is still satisfied
>
> This is why the default referential action is called "NO ACTION": It just skips the step 2. But it
> still does step 3.
>
> This means that under RESTRICT and with my interpretation, the check for a RESTRICT violation in
> step 2 can "ignore" the period part, but the step 3 still has to observe the period part.
>
> In the implementation, these steps are mostly combined into one trigger function, so it might be a
> bit tricky to untangle them.
I understand that there are those separate steps. But it still doesn't make sense for RESTRICT to
ignore the temporal part of the key. Actually, talking about "actions" reminds me of another reason:
the effect of CASCASE/SET NULL/SET DEFAULT actions should also be limited to only the part of
history that was updated/deleted in the referenced row. (This is why their implementation depends on
FOR PORTION OF.) Otherwise a temporal CASCADE/SET NULL/SET DEFAULT would wreck havoc on your data.
But if that's how these other actions behave, shouldn't RESTRICT behave the same way? Again, it's
not clear why anyone would want a temporal foreign key that ignores its temporal attribute. And as I
explained before, I don't think that's what a careful read of the standard says.
Yours,
--
Paul ~{:-)
pj(at)illuminatedcomputing(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Shubham Khanna | 2025-03-20 03:36:10 | Re: Adding a '--clean-publisher-objects' option to 'pg_createsubscriber' utility. |
Previous Message | Paul Jungwirth | 2025-03-20 03:32:38 | Re: SQL:2011 application time |