mirror of
https://github.com/postgres/postgres.git
synced 2025-09-09 13:09:39 +03:00
Add exclusion constraints, which generalize the concept of uniqueness to
support any indexable commutative operator, not just equality. Two rows violate the exclusion constraint if "row1.col OP row2.col" is TRUE for each of the columns in the constraint. Jeff Davis, reviewed by Robert Haas
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.212 2009/11/20 20:38:11 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.213 2009/12/07 05:22:23 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -40,6 +40,9 @@
|
||||
* ExpressionsState exec state for expressions, or NIL if none
|
||||
* Predicate partial-index predicate, or NIL if none
|
||||
* PredicateState exec state for predicate, or NIL if none
|
||||
* ExclusionOps Per-column exclusion operators, or NULL if none
|
||||
* ExclusionProcs Underlying function OIDs for ExclusionOps
|
||||
* ExclusionStrats Opclass strategy numbers for ExclusionOps
|
||||
* Unique is it a unique index?
|
||||
* ReadyForInserts is it valid for inserts?
|
||||
* Concurrent are we doing a concurrent index build?
|
||||
@@ -58,6 +61,9 @@ typedef struct IndexInfo
|
||||
List *ii_ExpressionsState; /* list of ExprState */
|
||||
List *ii_Predicate; /* list of Expr */
|
||||
List *ii_PredicateState; /* list of ExprState */
|
||||
Oid *ii_ExclusionOps; /* array with one entry per column */
|
||||
Oid *ii_ExclusionProcs; /* array with one entry per column */
|
||||
uint16 *ii_ExclusionStrats; /* array with one entry per column */
|
||||
bool ii_Unique;
|
||||
bool ii_ReadyForInserts;
|
||||
bool ii_Concurrent;
|
||||
|
Reference in New Issue
Block a user