diff options
Diffstat (limited to 'src/include/nodes/parsenodes.h')
-rw-r--r-- | src/include/nodes/parsenodes.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 3d2ae991b73..483f22591ea 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1142,6 +1142,7 @@ typedef enum AlterTableType AT_AddConstraintRecurse, /* internal to commands/tablecmds.c */ AT_ProcessedConstraint, /* pre-processed add constraint (local in * parser/parse_utilcmd.c) */ + AT_AddIndexConstraint, /* add constraint using existing index */ AT_DropConstraint, /* drop constraint */ AT_DropConstraintRecurse, /* internal to commands/tablecmds.c */ AT_AlterColumnType, /* alter column type */ @@ -1477,6 +1478,7 @@ typedef struct Constraint /* Fields used for index constraints (UNIQUE, PRIMARY KEY, EXCLUSION): */ List *options; /* options from WITH clause */ + char *indexname; /* existing index to use; otherwise NULL */ char *indexspace; /* index tablespace; NULL for default */ /* These could be, but currently are not, used for UNIQUE/PKEY: */ char *access_method; /* index access method; NULL for default */ @@ -1953,6 +1955,12 @@ typedef struct FetchStmt /* ---------------------- * Create Index Statement + * + * This represents creation of an index and/or an associated constraint. + * If indexOid isn't InvalidOid, we are not creating an index, just a + * UNIQUE/PKEY constraint using an existing index. isconstraint must always + * be true in this case, and the fields describing the index properties are + * empty. * ---------------------- */ typedef struct IndexStmt @@ -1966,6 +1974,7 @@ typedef struct IndexStmt List *options; /* options from WITH clause */ Node *whereClause; /* qualification (partial-index predicate) */ List *excludeOpNames; /* exclusion operator names, or NIL if none */ + Oid indexOid; /* OID of an existing index, if any */ bool unique; /* is index unique? */ bool primary; /* is index on primary key? */ bool isconstraint; /* is it from a CONSTRAINT clause? */ |