mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
CREATE INDEX ... INCLUDING (column[, ...])
Now indexes (but only B-tree for now) can contain "extra" column(s) which doesn't participate in index structure, they are just stored in leaf tuples. It allows to use index only scan by using single index instead of two or more indexes. Author: Anastasia Lubennikova with minor editorializing by me Reviewers: David Rowley, Peter Geoghegan, Jeff Janes
This commit is contained in:
@@ -1835,7 +1835,8 @@ typedef struct Constraint
|
||||
char *cooked_expr; /* expr, as nodeToString representation */
|
||||
|
||||
/* Fields used for unique constraints (UNIQUE and PRIMARY KEY): */
|
||||
List *keys; /* String nodes naming referenced column(s) */
|
||||
List *keys; /* String nodes naming referenced key column(s) */
|
||||
List *including; /* String nodes naming referenced nonkey column(s) */
|
||||
|
||||
/* Fields used for EXCLUSION constraints: */
|
||||
List *exclusions; /* list of (IndexElem, operator name) pairs */
|
||||
@@ -2439,6 +2440,8 @@ typedef struct IndexStmt
|
||||
char *accessMethod; /* name of access method (eg. btree) */
|
||||
char *tableSpace; /* tablespace, or NULL for default */
|
||||
List *indexParams; /* columns to index: a list of IndexElem */
|
||||
List *indexIncludingParams; /* additional columns to index:
|
||||
* a list of IndexElem */
|
||||
List *options; /* WITH clause options: a list of DefElem */
|
||||
Node *whereClause; /* qualification (partial-index predicate) */
|
||||
List *excludeOpNames; /* exclusion operator names, or NIL if none */
|
||||
|
||||
Reference in New Issue
Block a user