Re: SQL:2011 application time

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Paul Jungwirth <pj(at)illuminatedcomputing(dot)com>
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-01-23 15:40:32
Message-ID: e773bc11-4ac1-40de-bb91-814e02f05b6d@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 21.01.25 19:52, Peter Eisentraut wrote:
> On 12.01.25 00:19, Paul Jungwirth wrote:
>> On 1/4/25 13:39, Paul Jungwirth wrote:
>>> These updates fix a problem in the unaccent contrib module. When I
>>> added a new parameter to get_func_namespace, I changed a call there.
>>> Then I when took out that parameter, I didn't update the extension
>>> again. Otherwise these are the same as the v46 patches.
>>
>> Hi Hackers,
>>
>> Here is another set of commits. Based on discussion on the thread
>> about Index AM API Cleanup [1], I decided that I should just always
>> make FOR PORTION OF infer its intersect proc from whatever intersect
>> op is used by temporal foreign keys (even though we don't have a way
>> to get an intersect op for non-range/multirange types yet). This means
>> we need one less GiST support proc, which seems like a nice improvement.
>>
>> I also fixed the RESTRICT commit where a change previously was
>> included in a later commit that should have been included there.
>>
>> Rebased to 29dfffae0a, fixing a merge conflict + crash with the NOT
>> ENFORCED commit.
>
> I have committed the fix for foreign key NO ACTION (patch 0002, this did
> not require patch 0001).  I will study the proposed fix for RESTRICT
> (patches 0001 and 0003) next.

I think my interpretation of what RESTRICT should do is different.

The clause "Execution of referential actions" in the SQL standard only
talks about referenced and referencing columns, not periods. So this
would mean you can change the period columns all you want (as long as
they maintain referential integrity). So it would be like the NO ACTION
case. But you can't change any of the non-period columns on the primary
key if they are referenced by any referencing columns, even if the
respective periods are disjoint.

Maybe this makes sense, or maybe this is a mistake (neglected to update
this part when periods were introduced?). But in any case, I can't get
from this to what the patch does. When I apply the tests in the patch
without the code changes, what I would intuitively like are more errors
than the starting state, but your patch results in fewer errors.

If we're not sure, we can also disable RESTRICT for now. We have to get
NO ACTION right first anyway, given the other messages in this thread.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dean Rasheed 2025-01-23 15:46:47 Re: [PATCH] Add get_bytes() and set_bytes() functions
Previous Message Peter Eisentraut 2025-01-23 15:31:09 Re: SQL:2011 application time