Re: PERIOD foreign key feature

From: Paul Jungwirth <pj(at)illuminatedcomputing(dot)com>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: PERIOD foreign key feature
Date: 2024-05-07 16:43:58
Message-ID: 4a630353-11bb-4e3a-ae61-5ec10abe7aed@illuminatedcomputing.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 5/7/24 08:23, David G. Johnston wrote:
> On Tue, May 7, 2024 at 7:54 AM Bruce Momjian <bruce(at)momjian(dot)us <mailto:bruce(at)momjian(dot)us>> wrote:
> In the two marked lines, it says "if one side of the foreign key uses
> PERIOD, the other side must too."  However, looking at the example
> queries, it seems like if the foreign side has PERIOD, the primary side
> must have WITHOUT OVERLAPS, not PERIOD.
>
> Does this doc text need correcting?
>
>
> The text is factually correct, though a bit hard to parse.
>
> "the other side" refers to the part after "REFERENCES":
>
> FOREIGN KEY ( column_name [, ... ] [, PERIOD column_name ] ) REFERENCES reftable [ ( refcolumn [,
> ... ] [, PERIOD column_name ] ) ]
>
> ***(shouldn't the second occurrence be [, PERIOD refcolum] ?)
>
> The text is pointing out that since the refcolumn specification is optional you may very well not
> see a second PERIOD keyword in the clause.  Instead it will be inferred from the PK.
>
> Maybe:
>
> Finally, if the foreign key has a PERIOD column_name specification the corresponding refcolumn, if
> present, must also be marked PERIOD.  If the refcolumn clause is omitted, and thus the reftable's
> primary key constraint chosen, the primary key must have its final column marked WITHOUT OVERLAPS.

Yes, David is correct here on all points. I like his suggestion to clarify the language here also.
If you need a patch from me let me know, but I assume it's something a committer can just make happen?

Yours,

--
Paul ~{:-)
pj(at)illuminatedcomputing(dot)com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2024-05-07 17:10:33 Re: pg_sequence_last_value() for unlogged sequences on standbys
Previous Message Nathan Bossart 2024-05-07 16:06:05 Re: allow changing autovacuum_max_workers without restarting