*** a/doc/src/sgml/ref/create_table.sgml
--- b/doc/src/sgml/ref/create_table.sgml
***************
*** 63,69 **** CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI
    PRIMARY KEY ( <replaceable class="PARAMETER">column_name</replaceable> [, ... ] ) <replaceable class="PARAMETER">index_parameters</replaceable> |
    EXCLUDE [ USING <replaceable class="parameter">index_method</replaceable> ] ( <replaceable class="parameter">exclude_element</replaceable> WITH <replaceable class="parameter">operator</replaceable> [, ... ] ) <replaceable class="parameter">index_parameters</replaceable> [ WHERE ( <replaceable class="parameter">predicate</replaceable> ) ] |
    FOREIGN KEY ( <replaceable class="PARAMETER">column_name</replaceable> [, ... ] ) REFERENCES <replaceable class="PARAMETER">reftable</replaceable> [ ( <replaceable class="PARAMETER">refcolumn</replaceable> [, ... ] ) ]
!     [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE <replaceable class="parameter">action</replaceable> ] [ ON UPDATE <replaceable class="parameter">action</replaceable> ] }
  [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
  
  <phrase>and <replaceable class="PARAMETER">like_option</replaceable> is:</phrase>
--- 63,71 ----
    PRIMARY KEY ( <replaceable class="PARAMETER">column_name</replaceable> [, ... ] ) <replaceable class="PARAMETER">index_parameters</replaceable> |
    EXCLUDE [ USING <replaceable class="parameter">index_method</replaceable> ] ( <replaceable class="parameter">exclude_element</replaceable> WITH <replaceable class="parameter">operator</replaceable> [, ... ] ) <replaceable class="parameter">index_parameters</replaceable> [ WHERE ( <replaceable class="parameter">predicate</replaceable> ) ] |
    FOREIGN KEY ( <replaceable class="PARAMETER">column_name</replaceable> [, ... ] ) REFERENCES <replaceable class="PARAMETER">reftable</replaceable> [ ( <replaceable class="PARAMETER">refcolumn</replaceable> [, ... ] ) ]
!     [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE <replaceable class="parameter">action</replaceable> ] [ ON UPDATE <replaceable class="parameter">action</replaceable> ] |
!   INCLUDE [ USING <replaceable class="parameter">index_method</replaceable> ] ( <replaceable class="parameter">exclude_element</replaceable> WITH <replaceable class="parameter">operator</replaceable> [, ... ] ) REFERENCES <replaceable class="PARAMETER">reftable</replaceable> [ ( <replaceable class="PARAMETER">refcolumn</replaceable> [, ... ] ) ]
!     [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] <replaceable class="parameter">index_parameters</replaceable> [ WHERE ( <replaceable class="parameter">predicate</replaceable> ) ] }
  [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
  
  <phrase>and <replaceable class="PARAMETER">like_option</replaceable> is:</phrase>
*** a/src/backend/parser/gram.y
--- b/src/backend/parser/gram.y
***************
*** 572,578 **** static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
  
  	HANDLER HAVING HEADER_P HOLD HOUR_P
  
! 	IDENTITY_P IF_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IMPORT_P IN_P
  	INCLUDING INCREMENT INDEX INDEXES INHERIT INHERITS INITIALLY INLINE_P
  	INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER
  	INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION
--- 572,578 ----
  
  	HANDLER HAVING HEADER_P HOLD HOUR_P
  
! 	IDENTITY_P IF_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IMPORT_P IN_P INCLUDE
  	INCLUDING INCREMENT INDEX INDEXES INHERIT INHERITS INITIALLY INLINE_P
  	INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER
  	INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION
***************
*** 3254,3259 **** ConstraintElem:
--- 3254,3281 ----
  					n->initially_valid = !n->skip_validation;
  					$$ = (Node *)n;
  				}
+ 			| INCLUDE access_method_clause '(' ExclusionConstraintList ')'
+ 				REFERENCES qualified_name opt_column_list
+ 				key_match opt_definition OptConsTableSpace ExclusionWhereClause
+ 				ConstraintAttributeSpec
+ 				{
+ 					Constraint *n = makeNode(Constraint);
+ 					n->contype = CONSTR_EXCLUSION;
+ 					n->location = @1;
+ 					n->access_method	= $2;
+ 					n->exclusions		= $4;
+ 					//n->referenced_table = $7;
+ 					//n->referenced_cols	= $8;
+ 					//n->matchtype		= $9;
+ 					n->options			= $10;
+ 					n->indexname		= NULL;
+ 					n->indexspace		= $11;
+ 					n->where_clause		= $12;
+ 					processCASbits($13, @13, "INCLUDE",
+ 								   &n->deferrable, &n->initdeferred, NULL,
+ 								   NULL, yyscanner);
+ 					$$ = (Node *)n;
+ 				}
  		;
  
  opt_no_inherit:	NO INHERIT							{  $$ = TRUE; }
***************
*** 13251,13256 **** unreserved_keyword:
--- 13273,13279 ----
  			| IMMUTABLE
  			| IMPLICIT_P
  			| IMPORT_P
+ 			| INCLUDE
  			| INCLUDING
  			| INCREMENT
  			| INDEX
*** a/src/include/parser/kwlist.h
--- b/src/include/parser/kwlist.h
***************
*** 186,191 **** PG_KEYWORD("immutable", IMMUTABLE, UNRESERVED_KEYWORD)
--- 186,192 ----
  PG_KEYWORD("implicit", IMPLICIT_P, UNRESERVED_KEYWORD)
  PG_KEYWORD("import", IMPORT_P, UNRESERVED_KEYWORD)
  PG_KEYWORD("in", IN_P, RESERVED_KEYWORD)
+ PG_KEYWORD("include", INCLUDE, UNRESERVED_KEYWORD)
  PG_KEYWORD("including", INCLUDING, UNRESERVED_KEYWORD)
  PG_KEYWORD("increment", INCREMENT, UNRESERVED_KEYWORD)
  PG_KEYWORD("index", INDEX, UNRESERVED_KEYWORD)
