/*-------------------------------------------------------------------------
 *
 * pg_attribute.h--
 *	  definition of the system "attribute" relation (pg_attribute)
 *	  along with the relation's initial contents.
 *
 *
 * Copyright (c) 1994, Regents of the University of California
 *
 * $Id: pg_attribute.h,v 1.16 1997/09/08 02:35:02 momjian Exp $
 *
 * NOTES
 *	  the genbki.sh script reads this file and generates .bki
 *	  information from the DATA() statements.
 *
 *	  utils/cache/relcache.c requires some hard-coded tuple descriptors
 *	  for some of the system catalogs so if the schema for any of
 *	  these changes, be sure and change the appropriate Schema_xxx
 *	  macros!  -cim 2/5/91
 *
 *-------------------------------------------------------------------------
 */
#ifndef PG_ATTRIBUTE_H
#define PG_ATTRIBUTE_H

/* ----------------
 *		postgres.h contains the system type definintions and the
 *		CATALOG(), BOOTSTRAP and DATA() sugar words so this file
 *		can be read by both genbki.sh and the C compiler.
 * ----------------
 */

/* ----------------
 *		pg_attribute definition.  cpp turns this into
 *		typedef struct FormData_pg_attribute
 *
 *		If you change the following, make sure you change the structs for
 *		system attributes in heap.c and index.c also.
 * ----------------
 */
CATALOG(pg_attribute) BOOTSTRAP
{
	Oid			attrelid;
	NameData	attname;
	Oid			atttypid;

	/*
	 * atttypid is the OID of the instance in Catalog Class pg_type that
	 * defines the data type of this attribute (e.g. int4).  Information
	 * in that instance is redundant with the attlen, attbyval, and
	 * attalign attributes of this instance, so they had better match or
	 * Postgres will fail.
	 */
	float4		attdisbursion;
	int2		attlen;

	/*
	 * attlen is a copy of the typlen field from pg_type for this
	 * attribute.  See atttypid above.	See struct TypeTupleFormData for
	 * definition.
	 */
	int2		attnum;

	/*
	 * attnum is the "attribute number" for the attribute:	A value that
	 * uniquely identifies this attribute within its class. For user
	 * attributes, Attribute numbers are greater than 0 and not greater
	 * than the number of attributes in the class. I.e. if the Class
	 * pg_class says that Class XYZ has 10 attributes, then the user
	 * attribute numbers in Class pg_attribute must be 1-10.
	 *
	 * System attributes have attribute numbers less than 0 that are unique
	 * within the class, but not constrained to any particular range.
	 *
	 * Note that (attnum - 1) is often used as the index to an array.
	 */
	int4		attnelems;
	int4		attcacheoff;

	/*
	 * fastgetattr() uses attcacheoff to cache byte offsets of attributes
	 * in heap tuples.	The data actually stored in pg_attribute (-1)
	 * indicates no cached value.  But when we copy these tuples into a
	 * tuple descriptor, we may then update attcacheoff in the copies.
	 * This speeds up the attribute walking process.
	 */
	bool		attbyval;

	/*
	 * attbyval is a copy of the typbyval field from pg_type for this
	 * attribute.  See atttypid above.	See struct TypeTupleFormData for
	 * definition.
	 */
	bool		attisset;
	char		attalign;

	/*
	 * attalign is a copy of the typalign field from pg_type for this
	 * attribute.  See atttypid above.	See struct TypeTupleFormData for
	 * definition.
	 */
	bool		attnotnull;

	/* This flag represents the "NOT NULL" constraint */
	bool		atthasdef;

	/* Has DEFAULT value or not */
} FormData_pg_attribute;

/*
 * someone should figure out how to do this properly. (The problem is
 * the size of the C struct is not the same as the size of the tuple.)
 */
#define ATTRIBUTE_TUPLE_SIZE \
	(offsetof(FormData_pg_attribute,atthasdef) + sizeof(char))

/* ----------------
 *		Form_pg_attribute corresponds to a pointer to a tuple with
 *		the format of pg_attribute relation.
 * ----------------
 */
typedef FormData_pg_attribute *AttributeTupleForm;

/* ----------------
 *		compiler constants for pg_attribute
 * ----------------
 */

#define Natts_pg_attribute				13
#define Anum_pg_attribute_attrelid		1
#define Anum_pg_attribute_attname		2
#define Anum_pg_attribute_atttypid		3

#define Anum_pg_attribute_attdisbursion 4

#define Anum_pg_attribute_attlen		5
#define Anum_pg_attribute_attnum		6



#define Anum_pg_attribute_attnelems		7
#define Anum_pg_attribute_attcacheoff	8
#define Anum_pg_attribute_attbyval		9
#define Anum_pg_attribute_attisset		10
#define Anum_pg_attribute_attalign		11
#define Anum_pg_attribute_attnotnull	12
#define Anum_pg_attribute_atthasdef		13


/* ----------------
 *		SCHEMA_ macros for declaring hardcoded tuple descriptors.
 *		these are used in utils/cache/relcache.c
 * ----------------
#define SCHEMA_NAME(x) CppConcat(Name_,x)
#define SCHEMA_DESC(x) CppConcat(Desc_,x)
#define SCHEMA_NATTS(x) CppConcat(Natts_,x)
#define SCHEMA_DEF(x) \
	FormData_pg_attribute \
	SCHEMA_DESC(x) [ SCHEMA_NATTS(x) ] = \
	{ \
		CppConcat(Schema_,x) \
	}
 */

/* ----------------
 *		initial contents of pg_attribute
 * ----------------
 */

/* ----------------
 *		pg_type schema
 * ----------------
 */
#define Schema_pg_type \
{ 1247l, {"typname"},	   19l, 0l, NAMEDATALEN,  1, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typowner"},	   26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typlen"},	   21l, 0l,  2,  3, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1247l, {"typprtlen"},    21l, 0l,  2,  4, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1247l, {"typbyval"},	   16l, 0l,  1,  5, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247l, {"typtype"},	   18l, 0l,  1,  6, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247l, {"typisdefined"}, 16l, 0l,  1,  7, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247l, {"typdelim"},	   18l, 0l,  1,  8, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247l, {"typrelid"},	   26l, 0l,  4,  9, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typelem"},	   26l, 0l,  4, 10, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typinput"},	   24l, 0l,  4, 11, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typoutput"},    24l, 0l,  4, 12, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typreceive"},   24l, 0l,  4, 13, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typsend"},	   24l, 0l,  4, 14, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247l, {"typalign"},	   18l, 0l,  1, 15, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247l, {"typdefault"},   25l, 0l, -1, 16, 0l, -1l, '\0'  , '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 ( 1247 typname			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 typowner			26 0  4   2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typlen			21 0  2   3 0 -1 t f s f f));
DATA(insert OID = 0 ( 1247 typprtlen		21 0  2   4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1247 typbyval			16 0  1   5 0 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typtype			18 0  1   6 0 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typisdefined		16 0  1   7 0 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typdelim			18 0  1   8 0 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typrelid			26 0  4   9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typelem			26 0  4  10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typinput			24 0  4  11 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typoutput		24 0  4  12 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typreceive		24 0  4  13 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typsend			24 0  4  14 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typalign			18 0  1  15 0 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typdefault		25 0 -1  16 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1247 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1247 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1247 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1247 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_database
 * ----------------
 */
DATA(insert OID = 0 ( 1262 datname			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 datdba			23 0  4   2 0 -1 t f s f f));
DATA(insert OID = 0 ( 1262 datpath			25 0 -1   3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1262 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1262 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1262 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1262 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1262 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1262 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_demon
 * ----------------
 */
DATA(insert OID = 0 ( 1251 demserid			26 0  4   1 0 -1 t f i f f));
DATA(insert OID = 0 ( 1251 demname			19 0 NAMEDATALEN  2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1251 demowner			26 0  4   3 0 -1 t f i f f));
DATA(insert OID = 0 ( 1251 demcode			24 0  4   4 0 -1 t f i f f));
DATA(insert OID = 0 ( 1251 ctid				27 0  6  -1 0 -1 f f i f f));

DATA(insert OID = 0 ( 1251 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1251 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1251 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1251 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1251 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1251 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1251 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1251 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1251 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1251 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_proc
 * ----------------
 */
#define Schema_pg_proc \
{ 1255l, {"proname"},		19l, 0l, NAMEDATALEN,  1, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"proowner"},		26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"prolang"},		26l, 0l,  4,  3, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"proisinh"},		16l, 0l,  1,  4, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255l, {"proistrusted"},	16l, 0l,  1,  5, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255l, {"proiscachable"}, 16l, 0l,  1,  6, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255l, {"pronargs"},		21l, 0l,  2,  7, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1255l, {"proretset"},		16l, 0l,  1,  8, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255l, {"prorettype"},	26l, 0l,  4,  9, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"proargtypes"},	30l, 0l, 32, 10, 0l, -1l,	'\0', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"probyte_pct"},	23l, 0l,  4, 11, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"properbyte_cpu"},   23l, 0l,  4, 12, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"propercall_cpu"},   23l, 0l,  4, 13, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"prooutin_ratio"},   23l, 0l,  4, 14, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"prosrc"},		25l, 0l, -1,  15,	0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
{ 1255l, {"probin"},		17l, 0l, -1,  16,	0l, -1l, '\0', '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 ( 1255 proname			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 proowner			26 0  4   2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 prolang			26 0  4   3 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 proisinh			16 0  1   4 0 -1 t f c f f));
DATA(insert OID = 0 ( 1255 proistrusted		16 0  1   5 0 -1 t f c f f));
DATA(insert OID = 0 ( 1255 proiscachable	16 0  1   6 0 -1 t f c f f));
DATA(insert OID = 0 ( 1255 pronargs			21 0  2   7 0 -1 t f s f f));
DATA(insert OID = 0 ( 1255 proretset		16 0  1   8 0 -1 t f c f f));
DATA(insert OID = 0 ( 1255 prorettype		26 0  4   9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 proargtypes		30 0 32  10 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 probyte_pct		23 0  4  11 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 properbyte_cpu	23 0  4  12 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 propercall_cpu	23 0  4  13 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 prooutin_ratio	23 0  4  14 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 prosrc			25 0 -1  15 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 probin			17 0 -1  16 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1255 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1255 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1255 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1255 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_server
 * ----------------
 */
DATA(insert OID = 0 ( 1257 sername			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1257 serpid			21 0  2   2 0 -1 t f s f f));
DATA(insert OID = 0 ( 1257 serport			21 0  2   3 0 -1 t f s f f));
DATA(insert OID = 0 ( 1257 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1257 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1257 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1257 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1257 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1257 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1257 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1257 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1257 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1257 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1257 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_user
 * ----------------
 */
DATA(insert OID = 0 ( 1260 usename			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1260 usesysid			23 0  4   2 0 -1 t f s f f));
DATA(insert OID = 0 ( 1260 usecreatedb		16 0  1   3 0 -1 t f c f f));
DATA(insert OID = 0 ( 1260 usetrace			16 0  1   4 0 -1 t f c f f));
DATA(insert OID = 0 ( 1260 usesuper			16 0  1   5 0 -1 t f c f f));
DATA(insert OID = 0 ( 1260 usecatupd		16 0  1   6 0 -1 t f c f f));
DATA(insert OID = 0 ( 1260 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1260 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1260 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1260 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1260 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1260 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1260 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1260 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1260 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1260 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1260 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_group
 * ----------------
 */
DATA(insert OID = 0 ( 1261 groname			19 0 NAMEDATALEN  1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 grosysid			23 0  4   2 0 -1 t f s f f));
DATA(insert OID = 0 ( 1261 grolist		  1007 0 -1   3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1261 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1261 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1261 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1261 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1261 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1261 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_attribute
 * ----------------
 */
#define Schema_pg_attribute \
{ 1249l, {"attrelid"},	  26l, 0l,	4,	1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1249l, {"attname"},	  19l, 0l, NAMEDATALEN,  2, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
{ 1249l, {"atttypid"},	  26l, 0l,	4,	3, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1249l, {"attdisbursion"},   700l, 0l,  4,  4, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
{ 1249l, {"attlen"},	  21l, 0l,	2,	5, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1249l, {"attnum"},	  21l, 0l,	2,	6, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1249l, {"attnelems"},   23l, 0l,	4,	7, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1249l, {"attcacheoff"}, 23l, 0l,	4,	8, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1249l, {"attbyval"},	  16l, 0l,	1,	9, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1249l, {"attisset"},	  16l, 0l,	1, 10, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1249l, {"attalign"},	  18l, 0l,	1, 11, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 12491, {"attnotnull"},  16l, 0l,	1, 12, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 12491, {"atthasdef"},   16l, 0l,	1, 13, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }

DATA(insert OID = 0 ( 1249 attrelid			26 0  4   1 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 attname			19 0 NAMEDATALEN  2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 atttypid			26 0  4   3 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 attdisbursion   700 0  4   4 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 attlen			21 0  2   5 0 -1 t f s f f));
DATA(insert OID = 0 ( 1249 attnum			21 0  2   6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1249 attnelems		23 0  4   7 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 attcacheoff		23 0  4   8 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 attbyval			16 0  1   9 0 -1 t f c f f));
DATA(insert OID = 0 ( 1249 attisset			16 0  1  10 0 -1 t f c f f));
DATA(insert OID = 0 ( 1249 attalign			18 0  1  11 0 -1 t f c f f));
DATA(insert OID = 0 ( 1249 attnotnull		16 0  1  12 0 -1 t f c f f));
DATA(insert OID = 0 ( 1249 atthasdef		16 0  1  13 0 -1 t f c f f));
DATA(insert OID = 0 ( 1249 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1249 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1249 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1249 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1249 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_class
 * ----------------
 */
#define Schema_pg_class \
{ 1259l, {"relname"},	   19l, 0l, NAMEDATALEN,  1, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"reltype"},	   26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"relowner"},	   26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"relam"},		   26l, 0l,  4,  3, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"relpages"},	   23,	0l,  4,  4, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"reltuples"},    23,	0l,  4,  5, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"relexpires"},   702, 0l,  4,  6, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"relpreserved"}, 703, 0l,  4,  7, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259l, {"relhasindex"},  16,	0l,  1,  8, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259l, {"relisshared"},  16,	0l,  1,  9, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259l, {"relkind"},	   18,	0l,  1, 10, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259l, {"relarch"},	   18,	0l,  1, 11, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259l, {"relnatts"},	   21,	0l,  2, 12, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1259l, {"relsmgr"},	   210l, 0l, 2, 13, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1259l, {"relchecks"},    21l, 0l,  2, 14, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1259l, {"reltriggers"},  21l, 0l,  2, 15, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
{ 1259l, {"relhasrules"},  16,	0l,  1, 16, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259l, {"relacl"},	 1034l, 0l, -1, 17, 0l, -1l,   '\0', '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 ( 1259 relname			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 reltype			26 0  4   2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relowner			26 0  4   2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relam			26 0  4   3 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relpages			23 0  4   4 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 reltuples		23 0  4   5 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relexpires	   702 0  4   6 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relpreserved    702 0  4   7 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relhasindex		16 0  1   8 0 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relisshared		16 0  1   9 0 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relkind			18 0  1  10 0 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relarch			18 0  1  11 0 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relnatts			21 0  2  12 0 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relsmgr		   210 0  2  13 0 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relchecks		21 0  2  14 0 -1 t f s f f));
DATA(insert OID = 0 ( 1259 reltriggers		21 0  2  15 0 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relhasrules		16 0  1  16 0 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relacl		  1034 0 -1  17 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1259 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1259 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1259 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1259 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_magic
 * ----------------
 */
DATA(insert OID = 0 ( 1253 magname			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 magvalue			19 0 NAMEDATALEN   2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1253 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1253 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1253 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1253 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1253 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1253 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_defaults
 * ----------------
 */
DATA(insert OID = 0 ( 1263 defname			19 0 NAMEDATALEN   1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 defvalue			19 0 NAMEDATALEN   2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1263 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1263 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1263 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1263 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1263 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1263 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_attrdef
 * ----------------
 */
DATA(insert OID = 0 ( 1215 adrelid			26 0  4   1 0 -1 t f i f f));
DATA(insert OID = 0 ( 1215 adnum			21 0  2   2 0 -1 t f s f f));
DATA(insert OID = 0 ( 1215 adbin			25 0 -1   3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 adsrc			25 0 -1   4 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1215 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1215 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1215 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1215 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1215 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1215 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_relcheck
 * ----------------
 */
DATA(insert OID = 0 ( 1216 rcrelid			26 0  4   1 0 -1 t f i f f));
DATA(insert OID = 0 ( 1216 rcname			19 0  NAMEDATALEN  2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 rcbin			25 0 -1   3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 rcsrc			25 0 -1   4 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1216 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1216 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1216 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1216 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1216 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1216 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_trigger
 * ----------------
 */
DATA(insert OID = 0 ( 1219 tgrelid			26 0  4   1 0 -1 t f i f f));
DATA(insert OID = 0 ( 1219 tgname			19 0  NAMEDATALEN  2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 tgfoid			26 0  4   3 0 -1 t f i f f));
DATA(insert OID = 0 ( 1219 tgtype			21 0  2   4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1219 tgnargs			21 0  2   5 0 -1 t f s f f));
DATA(insert OID = 0 ( 1219 tgattr			22 0 16   6 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 tgargs			17 0 -1   7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 ctid				27 0  6  -1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 oid				26 0  4  -2 0 -1 t f i f f));
DATA(insert OID = 0 ( 1219 xmin				28 0  4  -3 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 cmin				29 0  2  -4 0 -1 t f s f f));
DATA(insert OID = 0 ( 1219 xmax				28 0  4  -5 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 cmax				29 0  2  -6 0 -1 t f s f f));
DATA(insert OID = 0 ( 1219 chain			27 0  6  -7 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 anchor			27 0  6  -8 0 -1 f f i f f));
DATA(insert OID = 0 ( 1219 tmin			   702 0  4  -9 0 -1 t f i f f));
DATA(insert OID = 0 ( 1219 tmax			   702 0  4 -10 0 -1 t f i f f));
DATA(insert OID = 0 ( 1219 vtype			18 0  1 -11 0 -1 t f c f f));

/* ----------------
 *		pg_hosts - this relation is used to store host based authentication
 *				   info
 *
 * ----------------
 */
DATA(insert OID = 0 ( 1273 dbName			19 0  NAMEDATALEN	1 0 -1 f f i f f));
DATA(insert OID = 0 ( 1273 address			25 0  -1   2 0 -1 f f i f f));
DATA(insert OID = 0 ( 1273 mask				25 0  -1   3 0 -1 f f i f f));

/* ----------------
 *		pg_variable - this relation is modified by special purpose access
 *				  method code.	The following is garbage but is needed
 *				  so that the reldesc code works properly.
 * ----------------
 */
#define Schema_pg_variable \
{ 1264l, {"varfoo"},  26l, 0l, 4, 1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 ( 1264 varfoo			26 0  4   1 0 -1 t f i f f));

/* ----------------
 *		pg_log - this relation is modified by special purpose access
 *				  method code.	The following is garbage but is needed
 *				  so that the reldesc code works properly.
 * ----------------
 */
#define Schema_pg_log \
{ 1269l, {"logfoo"},  26l, 0l, 4, 1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 ( 1269 logfoo			26 0  4   1 0 -1 t f i f f));

/* ----------------
 *		pg_time - this relation is modified by special purpose access
 *				  method code.	The following is garbage but is needed
 *				  so that the reldesc code works properly.
 * ----------------
 */
#define Schema_pg_time \
{ 1271l, {"timefoo"},  26l, 0l, 4, 1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 (  1271 timefoo			26 0  4   1 0 -1 t f i f f));

#endif							/* PG_ATTRIBUTE_H */
