Index: backend/access/common/tupdesc.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/access/common/tupdesc.c,v
retrieving revision 1.85
diff -c -r1.85 tupdesc.c
*** backend/access/common/tupdesc.c	2002/08/05 02:30:49	1.85
--- backend/access/common/tupdesc.c	2002/08/24 22:34:29
***************
*** 341,347 ****
  				   Oid oidtypeid,
  				   int32 typmod,
  				   int attdim,
! 				   bool attisset)
  {
  	HeapTuple	tuple;
  	Form_pg_type typeForm;
--- 341,348 ----
  				   Oid oidtypeid,
  				   int32 typmod,
  				   int attdim,
! 				   bool attisset,
! 				   bool attisinherited)
  {
  	HeapTuple	tuple;
  	Form_pg_type typeForm;
***************
*** 389,394 ****
--- 390,396 ----
  	att->attnotnull = false;
  	att->atthasdef = false;
  	att->attisdropped = false;
+ 	att->attisinherited = attisinherited;
  
  	tuple = SearchSysCache(TYPEOID,
  						   ObjectIdGetDatum(oidtypeid),
***************
*** 484,489 ****
--- 486,492 ----
  	int			attdim;
  	int			ndef = 0;
  	bool		attisset;
+ 	bool		attisinherited;
  
  	/*
  	 * allocate a new tuple descriptor
***************
*** 509,518 ****
  		attisset = entry->typename->setof;
  		atttypmod = entry->typename->typmod;
  		attdim = length(entry->typename->arrayBounds);
  
  		TupleDescInitEntry(desc, attnum, attname,
  						   typenameTypeId(entry->typename),
! 						   atttypmod, attdim, attisset);
  
  		/* This is for constraints */
  		if (entry->is_not_null)
--- 512,522 ----
  		attisset = entry->typename->setof;
  		atttypmod = entry->typename->typmod;
  		attdim = length(entry->typename->arrayBounds);
+ 		attisinherited = entry->is_inherited;
  
  		TupleDescInitEntry(desc, attnum, attname,
  						   typenameTypeId(entry->typename),
! 						   atttypmod, attdim, attisset, attisinherited);
  
  		/* This is for constraints */
  		if (entry->is_not_null)
***************
*** 668,673 ****
--- 672,678 ----
  						   typeoid,
  						   -1,
  						   0,
+ 						   false,
  						   false);
  	}
  	else if (functyptype == 'p' && typeoid == RECORDOID)
Index: backend/commands/explain.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/explain.c,v
retrieving revision 1.84
diff -c -r1.84 explain.c
*** backend/commands/explain.c	2002/07/20 15:12:55	1.84
--- backend/commands/explain.c	2002/08/24 22:34:32
***************
*** 71,77 ****
  	/* need a tuple descriptor representing a single TEXT column */
  	tupdesc = CreateTemplateTupleDesc(1, WITHOUTOID);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1, "QUERY PLAN",
! 					   TEXTOID, -1, 0, false);
  
  	/* prepare for projection of tuples */
  	tstate = begin_tup_output_tupdesc(dest, tupdesc);
--- 71,77 ----
  	/* need a tuple descriptor representing a single TEXT column */
  	tupdesc = CreateTemplateTupleDesc(1, WITHOUTOID);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1, "QUERY PLAN",
! 					   TEXTOID, -1, 0, false, false);
  
  	/* prepare for projection of tuples */
  	tstate = begin_tup_output_tupdesc(dest, tupdesc);
Index: backend/commands/tablecmds.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/commands/tablecmds.c,v
retrieving revision 1.33
diff -c -r1.33 tablecmds.c
*** backend/commands/tablecmds.c	2002/08/24 15:00:46	1.33
--- backend/commands/tablecmds.c	2002/08/24 22:34:43
***************
*** 615,620 ****
--- 615,621 ----
  				typename->typmod = attribute->atttypmod;
  				def->typename = typename;
  				def->is_not_null = attribute->attnotnull;
+ 				def->is_inherited = true;
  				def->raw_default = NULL;
  				def->cooked_default = NULL;
  				def->constraints = NIL;
***************
*** 1614,1620 ****
--- 1615,1624 ----
  	{
  		List	   *child,
  				   *children;
+ 		ColumnDef  *colDefChild = copyObject(colDef);
  
+ 		colDefChild->is_inherited = true;
+ 
  		/* this routine is actually in the planner */
  		children = find_all_inheritors(myrelid);
  
***************
*** 1630,1637 ****
  			if (childrelid == myrelid)
  				continue;
  
! 			AlterTableAddColumn(childrelid, false, colDef);
  		}
  	}
  
  	/*
--- 1634,1643 ----
  			if (childrelid == myrelid)
  				continue;
  
! 			AlterTableAddColumn(childrelid, false, colDefChild);
  		}
+ 
+ 		pfree(colDefChild);
  	}
  
  	/*
***************
*** 1716,1721 ****
--- 1722,1728 ----
  	attribute->atthasdef = (colDef->raw_default != NULL ||
  							colDef->cooked_default != NULL);
  	attribute->attisdropped = false;
+ 	attribute->attisinherited = colDef->is_inherited;
  
  	ReleaseSysCache(typeTuple);
  
***************
*** 3378,3392 ****
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1,
  					   "chunk_id",
  					   OIDOID,
! 					   -1, 0, false);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 2,
  					   "chunk_seq",
  					   INT4OID,
! 					   -1, 0, false);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 3,
  					   "chunk_data",
  					   BYTEAOID,
! 					   -1, 0, false);
  
  	/*
  	 * Ensure that the toast table doesn't itself get toasted, or we'll be
--- 3385,3399 ----
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1,
  					   "chunk_id",
  					   OIDOID,
! 					   -1, 0, false, false);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 2,
  					   "chunk_seq",
  					   INT4OID,
! 					   -1, 0, false, false);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 3,
  					   "chunk_data",
  					   BYTEAOID,
! 					   -1, 0, false, false);
  
  	/*
  	 * Ensure that the toast table doesn't itself get toasted, or we'll be
Index: backend/executor/execTuples.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/executor/execTuples.c,v
retrieving revision 1.56
diff -c -r1.56 execTuples.c
*** backend/executor/execTuples.c	2002/07/20 05:49:27	1.56
--- backend/executor/execTuples.c	2002/08/24 22:34:45
***************
*** 597,602 ****
--- 597,603 ----
  							   restype,
  							   resdom->restypmod,
  							   0,
+ 							   false,
  							   false);
  
  #ifdef NOT_USED
***************
*** 632,637 ****
--- 633,639 ----
  							   restype,
  							   fjRes->restypmod,
  							   0,
+ 							   false,
  							   false);
  #ifdef NOT_USED
  			ExecSetTypeInfo(fjRes->resno - 1,
***************
*** 656,661 ****
--- 658,664 ----
  								   restype,
  								   fjRes->restypmod,
  								   0,
+ 								   false,
  								   false);
  
  #ifdef NOT_USED
Index: backend/executor/nodeFunctionscan.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/executor/nodeFunctionscan.c,v
retrieving revision 1.5
diff -c -r1.5 nodeFunctionscan.c
*** backend/executor/nodeFunctionscan.c	2002/08/05 02:30:50	1.5
--- backend/executor/nodeFunctionscan.c	2002/08/24 22:34:45
***************
*** 241,246 ****
--- 241,247 ----
  						   funcrettype,
  						   -1,
  						   0,
+ 						   false,
  						   false);
  		scanstate->returnsTuple = false;
  	}
Index: backend/utils/misc/guc.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/misc/guc.c,v
retrieving revision 1.83
diff -c -r1.83 guc.c
*** backend/utils/misc/guc.c	2002/08/18 03:03:25	1.83
--- backend/utils/misc/guc.c	2002/08/24 22:34:53
***************
*** 2278,2284 ****
  	/* need a tuple descriptor representing a single TEXT column */
  	tupdesc = CreateTemplateTupleDesc(1, WITHOUTOID);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1, (char *) varname,
! 					   TEXTOID, -1, 0, false);
  
  	/* prepare for projection of tuples */
  	tstate = begin_tup_output_tupdesc(dest, tupdesc);
--- 2278,2284 ----
  	/* need a tuple descriptor representing a single TEXT column */
  	tupdesc = CreateTemplateTupleDesc(1, WITHOUTOID);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1, (char *) varname,
! 					   TEXTOID, -1, 0, false, false);
  
  	/* prepare for projection of tuples */
  	tstate = begin_tup_output_tupdesc(dest, tupdesc);
***************
*** 2304,2312 ****
  	/* need a tuple descriptor representing two TEXT columns */
  	tupdesc = CreateTemplateTupleDesc(2, WITHOUTOID);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name",
! 					   TEXTOID, -1, 0, false);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 2, "setting",
! 					   TEXTOID, -1, 0, false);
  
  	/* prepare for projection of tuples */
  	tstate = begin_tup_output_tupdesc(dest, tupdesc);
--- 2304,2312 ----
  	/* need a tuple descriptor representing two TEXT columns */
  	tupdesc = CreateTemplateTupleDesc(2, WITHOUTOID);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name",
! 					   TEXTOID, -1, 0, false, false);
  	TupleDescInitEntry(tupdesc, (AttrNumber) 2, "setting",
! 					   TEXTOID, -1, 0, false, false);
  
  	/* prepare for projection of tuples */
  	tstate = begin_tup_output_tupdesc(dest, tupdesc);
***************
*** 2431,2439 ****
  		/* need a tuple descriptor representing two TEXT columns */
  		tupdesc = CreateTemplateTupleDesc(2, WITHOUTOID);
  		TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name",
! 						   TEXTOID, -1, 0, false);
  		TupleDescInitEntry(tupdesc, (AttrNumber) 2, "setting",
! 						   TEXTOID, -1, 0, false);
  
  		/* allocate a slot for a tuple with this tupdesc */
  		slot = TupleDescGetSlot(tupdesc);
--- 2431,2439 ----
  		/* need a tuple descriptor representing two TEXT columns */
  		tupdesc = CreateTemplateTupleDesc(2, WITHOUTOID);
  		TupleDescInitEntry(tupdesc, (AttrNumber) 1, "name",
! 						   TEXTOID, -1, 0, false, false);
  		TupleDescInitEntry(tupdesc, (AttrNumber) 2, "setting",
! 						   TEXTOID, -1, 0, false, false);
  
  		/* allocate a slot for a tuple with this tupdesc */
  		slot = TupleDescGetSlot(tupdesc);
Index: include/access/tupdesc.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/access/tupdesc.h,v
retrieving revision 1.37
diff -c -r1.37 tupdesc.h
*** include/access/tupdesc.h	2002/07/20 05:16:59	1.37
--- include/access/tupdesc.h	2002/08/24 22:34:54
***************
*** 94,100 ****
  				   Oid oidtypeid,
  				   int32 typmod,
  				   int attdim,
! 				   bool attisset);
  
  extern TupleDesc BuildDescForRelation(List *schema);
  
--- 94,101 ----
  				   Oid oidtypeid,
  				   int32 typmod,
  				   int attdim,
! 				   bool attisset,
! 				   bool attisinherited);
  
  extern TupleDesc BuildDescForRelation(List *schema);
  
Index: include/catalog/pg_attribute.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/catalog/pg_attribute.h,v
retrieving revision 1.97
diff -c -r1.97 pg_attribute.h
*** include/catalog/pg_attribute.h	2002/08/08 19:37:11	1.97
--- include/catalog/pg_attribute.h	2002/08/24 22:34:56
***************
*** 146,151 ****
--- 146,154 ----
  
  	/* Is dropped (ie, logically invisible) or not */
  	bool		attisdropped;
+ 
+ 	/* This attribute is inherited */
+ 	bool		attisinherited;
  } FormData_pg_attribute;
  
  /*
***************
*** 154,160 ****
   * because of alignment padding at the end of the struct.)
   */
  #define ATTRIBUTE_TUPLE_SIZE \
! 	(offsetof(FormData_pg_attribute,attisdropped) + sizeof(bool))
  
  /* ----------------
   *		Form_pg_attribute corresponds to a pointer to a tuple with
--- 157,163 ----
   * because of alignment padding at the end of the struct.)
   */
  #define ATTRIBUTE_TUPLE_SIZE \
! 	(offsetof(FormData_pg_attribute,attisinherited) + sizeof(bool))
  
  /* ----------------
   *		Form_pg_attribute corresponds to a pointer to a tuple with
***************
*** 168,174 ****
   * ----------------
   */
  
! #define Natts_pg_attribute				16
  #define Anum_pg_attribute_attrelid		1
  #define Anum_pg_attribute_attname		2
  #define Anum_pg_attribute_atttypid		3
--- 171,177 ----
   * ----------------
   */
  
! #define Natts_pg_attribute				17
  #define Anum_pg_attribute_attrelid		1
  #define Anum_pg_attribute_attname		2
  #define Anum_pg_attribute_atttypid		3
***************
*** 185,190 ****
--- 188,194 ----
  #define Anum_pg_attribute_attnotnull	14
  #define Anum_pg_attribute_atthasdef		15
  #define Anum_pg_attribute_attisdropped	16
+ #define Anum_pg_attribute_attisinherited	17
  
  
  
***************
*** 215,480 ****
   * ----------------
   */
  #define Schema_pg_type \
! { 1247, {"typname"},	   19, -1, NAMEDATALEN,	1, 0, -1, -1, false, 'p', false, 'i', true, false, false }, \
! { 1247, {"typnamespace"},  26, -1,	4,	2, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typowner"},	   23, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typlen"},		   21, 0,	2,	4, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1247, {"typbyval"},	   16, 0,	1,	5, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typtype"},	   18, -1,	1,	6, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typisdefined"},  16, -1,	1,	7, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typdelim"},	   18, 0,	1,	8, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typrelid"},	   26, 0,	4,	9, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typelem"},	   26, 0,	4, 10, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typinput"},	   24, 0,	4, 11, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typoutput"},	   24, 0,	4, 12, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typalign"},	   18, 0,	1, 13, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typstorage"},    18, 0,	1, 14, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typnotnull"},    16, 0,   1, 15, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1247, {"typbasetype"},   26, 0,	4, 16, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typtypmod"},     23, 0,	4, 17, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typndims"},      23, 0,	4, 18, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1247, {"typdefaultbin"}, 25, 0,  -1, 19, 0, -1, -1, false, 'x', false, 'i', false, false, false }, \
! { 1247, {"typdefault"},    25, 0,  -1, 20, 0, -1, -1, false, 'x', false, 'i', false, false, false }
! 
! 
! DATA(insert ( 1247 typname			19 -1 NAMEDATALEN   1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1247 typnamespace		26 -1 4   2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typowner			23 0  4   3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typlen			21 0  2   4 0 -1 -1 t p f s t f f));
! DATA(insert ( 1247 typbyval			16 0  1   5 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typtype			18 -1 1   6 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typisdefined		16 -1 1   7 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typdelim			18 0  1   8 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typrelid			26 0  4   9 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typelem			26 0  4  10 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typinput			24 0  4  11 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typoutput		24 0  4  12 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typalign			18 0  1  13 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typstorage		18 0  1  14 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typnotnull		16 0  1  15 0 -1 -1 t p f c t f f));
! DATA(insert ( 1247 typbasetype		26 0  4  16 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typtypmod		23 0  4  17 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typndims			23 0  4  18 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 typdefaultbin	25 0 -1  19 0 -1 -1 f x f i f f f));
! DATA(insert ( 1247 typdefault		25 0 -1  20 0 -1 -1 f x f i f f f));
! DATA(insert ( 1247 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1247 oid				26 0  4  -2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1247 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_database
   * ----------------
   */
! DATA(insert ( 1262 datname			19 0 NAMEDATALEN   1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1262 datdba			23 0  4   2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 encoding			23 0  4   3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 datistemplate	16 0  1   4 0 -1 -1 t p f c t f f));
! DATA(insert ( 1262 datallowconn		16 0  1   5 0 -1 -1 t p f c t f f));
! DATA(insert ( 1262 datlastsysoid	26 0  4   6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 datvacuumxid		28 0  4   7 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 datfrozenxid		28 0  4   8 0 -1 -1 t p f i t f f));
  /* do not mark datpath as toastable; GetRawDatabaseInfo won't cope */
! DATA(insert ( 1262 datpath			25 0 -1   9 0 -1 -1 f p f i t f f));
! DATA(insert ( 1262 datconfig	  1009 0 -1  10 0 -1 -1 f x f i f f f));
! DATA(insert ( 1262 datacl		  1034 0 -1  11 0 -1 -1 f x f i f f f));
! DATA(insert ( 1262 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1262 oid				26 0  4  -2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1262 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_proc
   * ----------------
   */
  #define Schema_pg_proc \
! { 1255, {"proname"},			19, -1, NAMEDATALEN,  1, 0, -1, -1, false, 'p', false, 'i', true, false, false }, \
! { 1255, {"pronamespace"},		26, -1,	4,	2, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1255, {"proowner"},			23, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1255, {"prolang"},			26, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1255, {"proisagg"},			16, -1,	1,	5, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1255, {"prosecdef"},			16, 0,	1,	6, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1255, {"proisstrict"},		16, 0,	1,	7, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1255, {"proretset"},			16, 0,	1,  8, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1255, {"provolatile"},		18, 0,	1,  9, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1255, {"pronargs"},			21, 0,	2, 10, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1255, {"prorettype"},			26, 0,	4, 11, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1255, {"proargtypes"},		30, 0, INDEX_MAX_KEYS*4, 12, 0, -1, -1, false, 'p', false, 'i', true, false, false }, \
! { 1255, {"prosrc"},				25, 0, -1, 13, 0, -1, -1, false, 'x', false, 'i', false, false, false }, \
! { 1255, {"probin"},				17, 0, -1, 14, 0, -1, -1, false, 'x', false, 'i', false, false, false }, \
! { 1255, {"proacl"},			  1034, 0, -1, 15, 0, -1, -1, false, 'x', false, 'i', false, false, false }
! 
! DATA(insert ( 1255 proname			19 -1 NAMEDATALEN   1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1255 pronamespace		26 -1 4   2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 proowner			23 0  4   3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 prolang			26 0  4   4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 proisagg			16 -1 1   5 0 -1 -1 t p f c t f f));
! DATA(insert ( 1255 prosecdef		16 0  1   6 0 -1 -1 t p f c t f f));
! DATA(insert ( 1255 proisstrict		16 0  1   7 0 -1 -1 t p f c t f f));
! DATA(insert ( 1255 proretset		16 0  1   8 0 -1 -1 t p f c t f f));
! DATA(insert ( 1255 provolatile		18 0  1   9 0 -1 -1 t p f c t f f));
! DATA(insert ( 1255 pronargs			21 0  2  10 0 -1 -1 t p f s t f f));
! DATA(insert ( 1255 prorettype		26 0  4  11 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 proargtypes		30 0 INDEX_MAX_KEYS*4 12 0 -1 -1 f p f i t f f));
! DATA(insert ( 1255 prosrc			25 0 -1  13 0 -1 -1 f x f i f f f));
! DATA(insert ( 1255 probin			17 0 -1  14 0 -1 -1 f x f i f f f));
! DATA(insert ( 1255 proacl		  1034 0 -1  15 0 -1 -1 f x f i f f f));
! DATA(insert ( 1255 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1255 oid				26 0  4  -2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1255 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_shadow
   * ----------------
   */
! DATA(insert ( 1260 usename			19	-1 NAMEDATALEN	1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1260 usesysid			23	-1	4	2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1260 usecreatedb		16	0	1	3 0 -1 -1 t p f c t f f));
! DATA(insert ( 1260 usesuper			16	0	1	4 0 -1 -1 t p f c t f f));
! DATA(insert ( 1260 usecatupd		16	0	1	5 0 -1 -1 t p f c t f f));
! DATA(insert ( 1260 passwd			25	0  -1	6 0 -1 -1 f x f i f f f));
! DATA(insert ( 1260 valuntil			702 0	4	7 0 -1 -1 t p f i f f f));
! DATA(insert ( 1260 useconfig	  1009  0  -1   8 0 -1 -1 f x f i f f f));
! DATA(insert ( 1260 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
  /* no OIDs in pg_shadow */
! DATA(insert ( 1260 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1260 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1260 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1260 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1260 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_group
   * ----------------
   */
! DATA(insert ( 1261 groname			19 -1 NAMEDATALEN  1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1261 grosysid			23 -1  4   2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1261 grolist		  1007 0 -1   3 0 -1 -1 f x f i f f f));
! DATA(insert ( 1261 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
  /* no OIDs in pg_group */
! DATA(insert ( 1261 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1261 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1261 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1261 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1261 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_attribute
   * ----------------
   */
  #define Schema_pg_attribute \
! { 1249, {"attrelid"},	  26, -1,	4,	1, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1249, {"attname"},	  19, -1, NAMEDATALEN,	2, 0, -1, -1, false, 'p', false, 'i', true, false, false }, \
! { 1249, {"atttypid"},	  26, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1249, {"attstattarget"}, 23, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1249, {"attlen"},		  21, 0,	2,	5, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1249, {"attnum"},		  21, 0,	2,	6, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1249, {"attndims"},	  23, 0,	4,	7, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1249, {"attcacheoff"},  23, 0,	4,	8, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1249, {"atttypmod"},	  23, 0,	4,	9, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1249, {"attbyval"},	  16, 0,	1, 10, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1249, {"attstorage"},   18, 0,	1, 11, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1249, {"attisset"},	  16, 0,	1, 12, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1249, {"attalign"},	  18, 0,	1, 13, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1249, {"attnotnull"},	  16, 0, 1, 14, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1249, {"atthasdef"},	  16, 0, 1, 15, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1249, {"attisdropped"}, 16, 0, 1, 16, 0, -1, -1, true, 'p', false, 'c', true, false, false }
! 
! DATA(insert ( 1249 attrelid			26 -1  4   1 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 attname			19 -1 NAMEDATALEN  2 0 -1 -1 f p f i t f f));
! DATA(insert ( 1249 atttypid			26 0  4   3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 attstattarget	23 0  4   4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 attlen			21 0  2   5 0 -1 -1 t p f s t f f));
! DATA(insert ( 1249 attnum			21 0  2   6 0 -1 -1 t p f s t f f));
! DATA(insert ( 1249 attndims			23 0  4   7 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 attcacheoff		23 0  4   8 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 atttypmod		23 0  4   9 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 attbyval			16 0  1  10 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 attstorage		18 0  1  11 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 attisset			16 0  1  12 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 attalign			18 0  1  13 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 attnotnull		16 0  1  14 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 atthasdef		16 0  1  15 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 attisdropped		16 0  1  16 0 -1 -1 t p f c t f f));
! DATA(insert ( 1249 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
  /* no OIDs in pg_attribute */
! DATA(insert ( 1249 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1249 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_class
   * ----------------
   */
  #define Schema_pg_class \
! { 1259, {"relname"},	   19, -1, NAMEDATALEN,	1, 0, -1, -1, false, 'p', false, 'i', true, false, false }, \
! { 1259, {"relnamespace"},  26, -1,	4,	2, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"reltype"},	   26, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"relowner"},	   23, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"relam"},		   26, 0,	4,	5, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"relfilenode"},   26, 0,	4,	6, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"relpages"},	   23, 0,	4,	7, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"reltuples"},	   700, 0,	4,	8, 0, -1, -1, false, 'p', false, 'i', true, false, false }, \
! { 1259, {"reltoastrelid"}, 26, 0,	4,	9, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"reltoastidxid"}, 26, 0,	4, 10, 0, -1, -1, true, 'p', false, 'i', true, false, false }, \
! { 1259, {"relhasindex"},   16, 0,	1, 11, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relisshared"},   16, 0,	1, 12, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relkind"},	   18, -1,	1, 13, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relnatts"},	   21, 0,	2, 14, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1259, {"relchecks"},	   21, 0,	2, 15, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1259, {"reltriggers"},   21, 0,	2, 16, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1259, {"relukeys"},	   21, 0,	2, 17, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1259, {"relfkeys"},	   21, 0,	2, 18, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1259, {"relrefs"},	   21, 0,	2, 19, 0, -1, -1, true, 'p', false, 's', true, false, false }, \
! { 1259, {"relhasoids"},    16, 0,	1, 20, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relhaspkey"},    16, 0,	1, 21, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relhasrules"},   16, 0,	1, 22, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relhassubclass"},16, 0,	1, 23, 0, -1, -1, true, 'p', false, 'c', true, false, false }, \
! { 1259, {"relacl"},		 1034, 0,  -1, 24, 0, -1, -1, false, 'x', false, 'i', false, false, false }
! 
! DATA(insert ( 1259 relname			19 -1 NAMEDATALEN   1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1259 relnamespace		26 -1 4   2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 reltype			26 0  4   3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 relowner			23 0  4   4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 relam			26 0  4   5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 relfilenode		26 0  4   6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 relpages			23 0  4   7 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 reltuples	   700 0  4   8 0 -1 -1 f p f i t f f));
! DATA(insert ( 1259 reltoastrelid	26 0  4   9 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 reltoastidxid	26 0  4  10 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 relhasindex		16 0  1  11 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relisshared		16 0  1  12 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relkind			18 -1 1  13 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relnatts			21 0  2  14 0 -1 -1 t p f s t f f));
! DATA(insert ( 1259 relchecks		21 0  2  15 0 -1 -1 t p f s t f f));
! DATA(insert ( 1259 reltriggers		21 0  2  16 0 -1 -1 t p f s t f f));
! DATA(insert ( 1259 relukeys			21 0  2  17 0 -1 -1 t p f s t f f));
! DATA(insert ( 1259 relfkeys			21 0  2  18 0 -1 -1 t p f s t f f));
! DATA(insert ( 1259 relrefs			21 0  2  19 0 -1 -1 t p f s t f f));
! DATA(insert ( 1259 relhasoids		16 0  1  20 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relhaspkey		16 0  1  21 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relhasrules		16 0  1  22 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relhassubclass	16 0  1  23 0 -1 -1 t p f c t f f));
! DATA(insert ( 1259 relacl		  1034 0 -1  24 0 -1 -1 f x f i f f f));
! DATA(insert ( 1259 ctid				27 0  6  -1 0 -1 -1 f p f i t f f));
! DATA(insert ( 1259 oid				26 0  4  -2 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 xmin				28 0  4  -3 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 cmin				29 0  4  -4 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 xmax				28 0  4  -5 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 cmax				29 0  4  -6 0 -1 -1 t p f i t f f));
! DATA(insert ( 1259 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f));
  
  /* ----------------
   *		pg_xactlock - this is not a real relation, but is a placeholder
--- 219,486 ----
   * ----------------
   */
  #define Schema_pg_type \
! { 1247, {"typname"},	   19, -1, NAMEDATALEN,	1, 0, -1, -1, false, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typnamespace"},  26, -1,	4,	2, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typowner"},	   23, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typlen"},		   21, 0,	2,	4, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1247, {"typbyval"},	   16, 0,	1,	5, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typtype"},	   18, -1,	1,	6, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typisdefined"},  16, -1,	1,	7, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typdelim"},	   18, 0,	1,	8, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typrelid"},	   26, 0,	4,	9, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typelem"},	   26, 0,	4, 10, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typinput"},	   24, 0,	4, 11, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typoutput"},	   24, 0,	4, 12, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typalign"},	   18, 0,	1, 13, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typstorage"},    18, 0,	1, 14, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typnotnull"},    16, 0,   1, 15, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1247, {"typbasetype"},   26, 0,	4, 16, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typtypmod"},     23, 0,	4, 17, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typndims"},      23, 0,	4, 18, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1247, {"typdefaultbin"}, 25, 0,  -1, 19, 0, -1, -1, false, 'x', false, 'i', false, false, false, false }, \
! { 1247, {"typdefault"},    25, 0,  -1, 20, 0, -1, -1, false, 'x', false, 'i', false, false, false, false }
! 
! 
! DATA(insert ( 1247 typname			19 -1 NAMEDATALEN   1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1247 typnamespace		26 -1 4   2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typowner			23 0  4   3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typlen			21 0  2   4 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1247 typbyval			16 0  1   5 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typtype			18 -1 1   6 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typisdefined		16 -1 1   7 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typdelim			18 0  1   8 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typrelid			26 0  4   9 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typelem			26 0  4  10 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typinput			24 0  4  11 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typoutput		24 0  4  12 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typalign			18 0  1  13 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typstorage		18 0  1  14 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typnotnull		16 0  1  15 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1247 typbasetype		26 0  4  16 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typtypmod		23 0  4  17 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typndims			23 0  4  18 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 typdefaultbin	25 0 -1  19 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1247 typdefault		25 0 -1  20 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1247 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1247 oid				26 0  4  -2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1247 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_database
   * ----------------
   */
! DATA(insert ( 1262 datname			19 0 NAMEDATALEN   1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1262 datdba			23 0  4   2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 encoding			23 0  4   3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 datistemplate	16 0  1   4 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1262 datallowconn		16 0  1   5 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1262 datlastsysoid	26 0  4   6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 datvacuumxid		28 0  4   7 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 datfrozenxid		28 0  4   8 0 -1 -1 t p f i t f f f));
  /* do not mark datpath as toastable; GetRawDatabaseInfo won't cope */
! DATA(insert ( 1262 datpath			25 0 -1   9 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1262 datconfig	  1009 0 -1  10 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1262 datacl		  1034 0 -1  11 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1262 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1262 oid				26 0  4  -2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1262 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_proc
   * ----------------
   */
  #define Schema_pg_proc \
! { 1255, {"proname"},			19, -1, NAMEDATALEN,  1, 0, -1, -1, false, 'p', false, 'i', true, false, false, false }, \
! { 1255, {"pronamespace"},		26, -1,	4,	2, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1255, {"proowner"},			23, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1255, {"prolang"},			26, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1255, {"proisagg"},			16, -1,	1,	5, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1255, {"prosecdef"},			16, 0,	1,	6, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1255, {"proisstrict"},		16, 0,	1,	7, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1255, {"proretset"},			16, 0,	1,  8, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1255, {"provolatile"},		18, 0,	1,  9, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1255, {"pronargs"},			21, 0,	2, 10, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1255, {"prorettype"},			26, 0,	4, 11, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1255, {"proargtypes"},		30, 0, INDEX_MAX_KEYS*4, 12, 0, -1, -1, false, 'p', false, 'i', true, false, false, false }, \
! { 1255, {"prosrc"},				25, 0, -1, 13, 0, -1, -1, false, 'x', false, 'i', false, false, false, false }, \
! { 1255, {"probin"},				17, 0, -1, 14, 0, -1, -1, false, 'x', false, 'i', false, false, false, false }, \
! { 1255, {"proacl"},			  1034, 0, -1, 15, 0, -1, -1, false, 'x', false, 'i', false, false, false, false }
! 
! DATA(insert ( 1255 proname			19 -1 NAMEDATALEN   1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1255 pronamespace		26 -1 4   2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 proowner			23 0  4   3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 prolang			26 0  4   4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 proisagg			16 -1 1   5 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1255 prosecdef		16 0  1   6 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1255 proisstrict		16 0  1   7 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1255 proretset		16 0  1   8 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1255 provolatile		18 0  1   9 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1255 pronargs			21 0  2  10 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1255 prorettype		26 0  4  11 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 proargtypes		30 0 INDEX_MAX_KEYS*4 12 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1255 prosrc			25 0 -1  13 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1255 probin			17 0 -1  14 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1255 proacl		  1034 0 -1  15 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1255 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1255 oid				26 0  4  -2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1255 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_shadow
   * ----------------
   */
! DATA(insert ( 1260 usename			19	-1 NAMEDATALEN	1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1260 usesysid			23	-1	4	2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1260 usecreatedb		16	0	1	3 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1260 usesuper			16	0	1	4 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1260 usecatupd		16	0	1	5 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1260 passwd			25	0  -1	6 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1260 valuntil			702 0	4	7 0 -1 -1 t p f i f f f f));
! DATA(insert ( 1260 useconfig	  1009  0  -1   8 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1260 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
  /* no OIDs in pg_shadow */
! DATA(insert ( 1260 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1260 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1260 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1260 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1260 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_group
   * ----------------
   */
! DATA(insert ( 1261 groname			19 -1 NAMEDATALEN  1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1261 grosysid			23 -1  4   2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1261 grolist		  1007 0 -1   3 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1261 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
  /* no OIDs in pg_group */
! DATA(insert ( 1261 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1261 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1261 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1261 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1261 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_attribute
   * ----------------
   */
  #define Schema_pg_attribute \
! { 1249, {"attrelid"},	  26, -1,	4,	1, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"attname"},	  19, -1, NAMEDATALEN,	2, 0, -1, -1, false, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"atttypid"},	  26, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"attstattarget"}, 23, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"attlen"},		  21, 0,	2,	5, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1249, {"attnum"},		  21, 0,	2,	6, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1249, {"attndims"},	  23, 0,	4,	7, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"attcacheoff"},  23, 0,	4,	8, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"atttypmod"},	  23, 0,	4,	9, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1249, {"attbyval"},	  16, 0,	1, 10, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"attstorage"},   18, 0,	1, 11, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"attisset"},	  16, 0,	1, 12, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"attalign"},	  18, 0,	1, 13, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"attnotnull"},	  16, 0, 1, 14, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"atthasdef"},	  16, 0, 1, 15, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"attisdropped"}, 16, 0, 1, 16, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1249, {"attisinherited"}, 16, 0, 1, 17, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }
! 
! DATA(insert ( 1249 attrelid			26 -1  4   1 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 attname			19 -1 NAMEDATALEN  2 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1249 atttypid			26 0  4   3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 attstattarget	23 0  4   4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 attlen			21 0  2   5 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1249 attnum			21 0  2   6 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1249 attndims			23 0  4   7 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 attcacheoff		23 0  4   8 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 atttypmod		23 0  4   9 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 attbyval			16 0  1  10 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 attstorage		18 0  1  11 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 attisset			16 0  1  12 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 attalign			18 0  1  13 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 attnotnull		16 0  1  14 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 atthasdef		16 0  1  15 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 attisdropped		16 0  1  16 0 -1 -1 t p f c t f f f));
! DATA(insert	( 1249 attisinherited	16 0  1  17 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1249 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
  /* no OIDs in pg_attribute */
! DATA(insert ( 1249 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1249 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_class
   * ----------------
   */
  #define Schema_pg_class \
! { 1259, {"relname"},	   19, -1, NAMEDATALEN,	1, 0, -1, -1, false, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"relnamespace"},  26, -1,	4,	2, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"reltype"},	   26, 0,	4,	3, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"relowner"},	   23, 0,	4,	4, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"relam"},		   26, 0,	4,	5, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"relfilenode"},   26, 0,	4,	6, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"relpages"},	   23, 0,	4,	7, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"reltuples"},	   700, 0,	4,	8, 0, -1, -1, false, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"reltoastrelid"}, 26, 0,	4,	9, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"reltoastidxid"}, 26, 0,	4, 10, 0, -1, -1, true, 'p', false, 'i', true, false, false, false }, \
! { 1259, {"relhasindex"},   16, 0,	1, 11, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relisshared"},   16, 0,	1, 12, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relkind"},	   18, -1,	1, 13, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relnatts"},	   21, 0,	2, 14, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1259, {"relchecks"},	   21, 0,	2, 15, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1259, {"reltriggers"},   21, 0,	2, 16, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1259, {"relukeys"},	   21, 0,	2, 17, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1259, {"relfkeys"},	   21, 0,	2, 18, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1259, {"relrefs"},	   21, 0,	2, 19, 0, -1, -1, true, 'p', false, 's', true, false, false, false }, \
! { 1259, {"relhasoids"},    16, 0,	1, 20, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relhaspkey"},    16, 0,	1, 21, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relhasrules"},   16, 0,	1, 22, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relhassubclass"},16, 0,	1, 23, 0, -1, -1, true, 'p', false, 'c', true, false, false, false }, \
! { 1259, {"relacl"},		 1034, 0,  -1, 24, 0, -1, -1, false, 'x', false, 'i', false, false, false, false }
! 
! DATA(insert ( 1259 relname			19 -1 NAMEDATALEN   1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1259 relnamespace		26 -1 4   2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 reltype			26 0  4   3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 relowner			23 0  4   4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 relam			26 0  4   5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 relfilenode		26 0  4   6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 relpages			23 0  4   7 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 reltuples	   700 0  4   8 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1259 reltoastrelid	26 0  4   9 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 reltoastidxid	26 0  4  10 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 relhasindex		16 0  1  11 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relisshared		16 0  1  12 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relkind			18 -1 1  13 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relnatts			21 0  2  14 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1259 relchecks		21 0  2  15 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1259 reltriggers		21 0  2  16 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1259 relukeys			21 0  2  17 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1259 relfkeys			21 0  2  18 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1259 relrefs			21 0  2  19 0 -1 -1 t p f s t f f f));
! DATA(insert ( 1259 relhasoids		16 0  1  20 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relhaspkey		16 0  1  21 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relhasrules		16 0  1  22 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relhassubclass	16 0  1  23 0 -1 -1 t p f c t f f f));
! DATA(insert ( 1259 relacl		  1034 0 -1  24 0 -1 -1 f x f i f f f f));
! DATA(insert ( 1259 ctid				27 0  6  -1 0 -1 -1 f p f i t f f f));
! DATA(insert ( 1259 oid				26 0  4  -2 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 xmin				28 0  4  -3 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 cmin				29 0  4  -4 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 xmax				28 0  4  -5 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 cmax				29 0  4  -6 0 -1 -1 t p f i t f f f));
! DATA(insert ( 1259 tableoid			26 0  4  -7 0 -1 -1 t p f i t f f f));
  
  /* ----------------
   *		pg_xactlock - this is not a real relation, but is a placeholder
***************
*** 484,489 ****
   *				  table; and this entry is just to link to that one.
   * ----------------
   */
! DATA(insert ( 376 xactlockfoo		26 0  4   1 0 -1 -1 t p f i t f f));
  
  #endif   /* PG_ATTRIBUTE_H */
--- 490,495 ----
   *				  table; and this entry is just to link to that one.
   * ----------------
   */
! DATA(insert ( 376 xactlockfoo		26 0  4   1 0 -1 -1 t p f i t f f f));
  
  #endif   /* PG_ATTRIBUTE_H */
Index: include/catalog/pg_class.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/catalog/pg_class.h,v
retrieving revision 1.71
diff -c -r1.71 pg_class.h
*** include/catalog/pg_class.h	2002/08/15 16:36:07	1.71
--- include/catalog/pg_class.h	2002/08/24 22:34:56
***************
*** 136,142 ****
  
  DATA(insert OID = 1247 (  pg_type		PGNSP 71 PGUID 0 1247 0 0 0 0 f f r 20 0 0 0 0 0 t f f f _null_ ));
  DESCR("");
! DATA(insert OID = 1249 (  pg_attribute	PGNSP 75 PGUID 0 1249 0 0 0 0 f f r 16 0 0 0 0 0 f f f f _null_ ));
  DESCR("");
  DATA(insert OID = 1255 (  pg_proc		PGNSP 81 PGUID 0 1255 0 0 0 0 f f r 15 0 0 0 0 0 t f f f _null_ ));
  DESCR("");
--- 136,142 ----
  
  DATA(insert OID = 1247 (  pg_type		PGNSP 71 PGUID 0 1247 0 0 0 0 f f r 20 0 0 0 0 0 t f f f _null_ ));
  DESCR("");
! DATA(insert OID = 1249 (  pg_attribute	PGNSP 75 PGUID 0 1249 0 0 0 0 f f r 17 0 0 0 0 0 f f f f _null_ ));
  DESCR("");
  DATA(insert OID = 1255 (  pg_proc		PGNSP 81 PGUID 0 1255 0 0 0 0 f f r 15 0 0 0 0 0 t f f f _null_ ));
  DESCR("");
Index: include/nodes/parsenodes.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/nodes/parsenodes.h,v
retrieving revision 1.201
diff -c -r1.201 parsenodes.h
*** include/nodes/parsenodes.h	2002/08/19 15:08:47	1.201
--- include/nodes/parsenodes.h	2002/08/24 22:35:00
***************
*** 280,285 ****
--- 280,286 ----
  	char	   *colname;		/* name of column */
  	TypeName   *typename;		/* type of column */
  	bool		is_not_null;	/* NOT NULL constraint specified? */
+ 	bool		is_inherited;	/* is inherited */
  	Node	   *raw_default;	/* default value (untransformed parse
  								 * tree) */
  	char	   *cooked_default; /* nodeToString representation */
