In this commit: commit 34768ee3616 Author: Peter Eisentraut <pe...@eisentraut.org> Date: Sun Mar 24 07:37:13 2024 +0100 Add temporal FOREIGN KEY contraints Add PERIOD clause to foreign key constraint definitions. This is supported for range and multirange types. Temporal foreign keys check for range containment instead of equality. This feature matches the behavior of the SQL standard temporal foreign keys, but it works on PostgreSQL's native ranges instead of SQL's "periods", which don't exist in PostgreSQL (yet). Reference actions ON {UPDATE,DELETE} {CASCADE,SET NULL,SET DEFAULT} are not supported yet. Author: Paul A. Jungwirth <p...@illuminatedcomputing.com> Reviewed-by: Peter Eisentraut <pe...@eisentraut.org> Reviewed-by: jian he <jian.universal...@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/CA+renyUApHgSZF9-nd-a0+OPGharLQLO=mdhcy4_qq0+noc...@mail.gmail.com
this text was added to create_table.sgml: In addition, the referenced table must have a primary key or unique constraint declared with <literal>WITHOUT --> OVERLAPS</literal>. Finally, if one side of the foreign key --> uses <literal>PERIOD</literal>, the other side must too. If the <replaceable class="parameter">refcolumn</replaceable> list is omitted, the <literal>WITHOUT OVERLAPS</literal> part of the primary key is treated as if marked with <literal>PERIOD</literal>. 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? -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.