mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Add temporal PRIMARY KEY and UNIQUE constraints
Add WITHOUT OVERLAPS clause to PRIMARY KEY and UNIQUE constraints. These are backed by GiST indexes instead of B-tree indexes, since they are essentially exclusion constraints with = for the scalar parts of the key and && for the temporal part. Author: Paul A. Jungwirth <pj@illuminatedcomputing.com> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: jian he <jian.universality@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/CA+renyUApHgSZF9-nd-a0+OPGharLQLO=mDHcY4_qQ0+noCUVg@mail.gmail.com
This commit is contained in:
@ -10340,6 +10340,7 @@ addFkRecurseReferenced(List **wqueue, Constraint *fkconstraint, Relation rel,
|
||||
conislocal, /* islocal */
|
||||
coninhcount, /* inhcount */
|
||||
connoinherit, /* conNoInherit */
|
||||
false, /* conWithoutOverlaps */
|
||||
false); /* is_internal */
|
||||
|
||||
ObjectAddressSet(address, ConstraintRelationId, constrOid);
|
||||
@ -10638,6 +10639,7 @@ addFkRecurseReferencing(List **wqueue, Constraint *fkconstraint, Relation rel,
|
||||
false,
|
||||
1,
|
||||
false,
|
||||
false, /* conWithoutOverlaps */
|
||||
false);
|
||||
|
||||
/*
|
||||
@ -11143,6 +11145,7 @@ CloneFkReferencing(List **wqueue, Relation parentRel, Relation partRel)
|
||||
false, /* islocal */
|
||||
1, /* inhcount */
|
||||
false, /* conNoInherit */
|
||||
false, /* conWithoutOverlaps */
|
||||
true);
|
||||
|
||||
/* Set up partition dependencies for the new constraint */
|
||||
@ -14556,7 +14559,8 @@ TryReuseIndex(Oid oldId, IndexStmt *stmt)
|
||||
if (CheckIndexCompatible(oldId,
|
||||
stmt->accessMethod,
|
||||
stmt->indexParams,
|
||||
stmt->excludeOpNames))
|
||||
stmt->excludeOpNames,
|
||||
stmt->iswithoutoverlaps))
|
||||
{
|
||||
Relation irel = index_open(oldId, NoLock);
|
||||
|
||||
|
Reference in New Issue
Block a user