pg_attribute.h 24.1 KB
Newer Older
1 2
/*-------------------------------------------------------------------------
 *
3
 * pg_attribute.h
4 5
 *	  definition of the system "attribute" relation (pg_attribute)
 *	  along with the relation's initial contents.
6 7 8 9
 *
 *
 * Copyright (c) 1994, Regents of the University of California
 *
10
 * $Id: pg_attribute.h,v 1.50 1999/09/29 16:06:16 wieck Exp $
11 12
 *
 * NOTES
13 14
 *	  the genbki.sh script reads this file and generates .bki
 *	  information from the DATA() statements.
15
 *
16 17 18 19
 *	  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
20 21 22 23 24
 *
 *-------------------------------------------------------------------------
 */
#ifndef PG_ATTRIBUTE_H
#define PG_ATTRIBUTE_H
25

26
/* ----------------
27 28 29
 *		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.
30 31 32 33
 * ----------------
 */

/* ----------------
34 35
 *		pg_attribute definition.  cpp turns this into
 *		typedef struct FormData_pg_attribute
36
 *
37 38
 *		If you change the following, make sure you change the structs for
 *		system attributes in heap.c and index.c also.
39 40
 * ----------------
 */
41 42
CATALOG(pg_attribute) BOOTSTRAP
{
43
	Oid			attrelid;		/* OID of relation containing this attribute */
44 45
	NameData	attname;
	Oid			atttypid;
46 47 48 49 50 51 52
	/*
	 * 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.
	 */
53

54
	float4		attdisbursion;
55
	/*
56 57 58 59 60 61 62 63 64
	 * attdisbursion is the disbursion statistic of the column (0.0 to 1.0),
	 * or zero if the statistic has not been calculated, or -1.0
	 * if VACUUM found that the column contains no duplicate entries
	 * (in which case the disbursion should be taken as 1.0/numberOfRows
	 * for the current table size).  The -1.0 hack is useful because the
	 * number of rows may be updated more often than attdisbursion is.
	 * We assume that the column will retain its no-duplicate-entry
	 * property.  (Perhaps this should be driven off the existence of a
	 * UNIQUE index for the column, instead of being a statistical guess?)
65
	 */
66

67
	int2		attlen;
68 69
	/*
	 * attlen is a copy of the typlen field from pg_type for this
70
	 * attribute.  See atttypid above.	See struct Form_pg_type for
71 72 73
	 * definition.
	 */

74
	int2		attnum;
75 76 77 78 79 80 81 82 83 84 85 86 87 88
	/*
	 * 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.
	 */

89
	int4		attnelems;		/* number of dimensions, if an array type */
90

91
	int4		attcacheoff;
92 93
	/*
	 * fastgetattr() uses attcacheoff to cache byte offsets of attributes
94
	 * in heap tuples.	The value actually stored in pg_attribute (-1)
95 96 97 98 99
	 * 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.
	 */

100
	int4		atttypmod;
101
	/*
102 103 104 105
	 * atttypmod records type-specific data supplied at table creation time
	 * (for example, the max length of a varchar field).  It is passed to
	 * type-specific input and output functions as the third argument.
	 * The value will generally be -1 for types that do not need typmod.
106 107 108
	 */

	bool		attbyval;
109 110
	/*
	 * attbyval is a copy of the typbyval field from pg_type for this
111
	 * attribute.  See atttypid above.	See struct Form_pg_type for
112 113
	 * definition.
	 */
114 115
	bool		attisset;
	char		attalign;
116 117
	/*
	 * attalign is a copy of the typalign field from pg_type for this
118
	 * attribute.  See atttypid above.	See struct Form_pg_type for
119 120 121
	 * definition.
	 */

122
	bool		attnotnull;
123
	/* This flag represents the "NOT NULL" constraint */
124
	bool		atthasdef;
125
	/* Has DEFAULT value or not */
126 127 128 129 130 131 132
} 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 \
133
	(offsetof(FormData_pg_attribute,atthasdef) + sizeof(char))
134 135

/* ----------------
136 137
 *		Form_pg_attribute corresponds to a pointer to a tuple with
 *		the format of pg_attribute relation.
138 139
 * ----------------
 */
140
typedef FormData_pg_attribute *Form_pg_attribute;
141 142

/* ----------------
143
 *		compiler constants for pg_attribute
144 145 146
 * ----------------
 */

147
#define Natts_pg_attribute				14
148 149 150 151 152 153 154
#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
155
#define Anum_pg_attribute_attcacheoff	8
156 157 158 159 160 161
#define Anum_pg_attribute_atttypmod		9
#define Anum_pg_attribute_attbyval		10
#define Anum_pg_attribute_attisset		11
#define Anum_pg_attribute_attalign		12
#define Anum_pg_attribute_attnotnull	13
#define Anum_pg_attribute_atthasdef		14
162 163 164


/* ----------------
165 166
 *		SCHEMA_ macros for declaring hardcoded tuple descriptors.
 *		these are used in utils/cache/relcache.c
167 168 169 170 171
 * ----------------
#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) \
172 173 174 175 176
	FormData_pg_attribute \
	SCHEMA_DESC(x) [ SCHEMA_NATTS(x) ] = \
	{ \
		CppConcat(Schema_,x) \
	}
177 178 179
 */

/* ----------------
180
 *		initial contents of pg_attribute
181 182 183 184
 * ----------------
 */

/* ----------------
185
 *		pg_type schema
186 187 188
 * ----------------
 */
#define Schema_pg_type \
189
{ 1247, {"typname"},	   19, 0, NAMEDATALEN,	1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \
190
{ 1247, {"typowner"},	   23, 0,	4,	2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
191
{ 1247, {"typlen"},		   21, 0,	2,	3, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
192
{ 1247, {"typprtlen"},	   21, 0,	2,	4, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
193 194 195 196 197 198 199
{ 1247, {"typbyval"},	   16, 0,	1,	5, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247, {"typtype"},	   18, 0,	1,	6, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247, {"typisdefined"},  16, 0,	1,	7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247, {"typdelim"},	   18, 0,	1,	8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247, {"typrelid"},	   26, 0,	4,	9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247, {"typelem"},	   26, 0,	4, 10, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247, {"typinput"},	   24, 0,	4, 11, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
200
{ 1247, {"typoutput"},	   24, 0,	4, 12, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
201 202 203 204
{ 1247, {"typreceive"},    24, 0,	4, 13, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247, {"typsend"},	   24, 0,	4, 14, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1247, {"typalign"},	   18, 0,	1, 15, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1247, {"typdefault"},    25, 0,  -1, 16, 0, -1, -1, '\0'	, '\0', 'i', '\0', '\0' }
B
Bruce Momjian 已提交
205

206
DATA(insert OID = 0 ( 1247 typname			19 0 NAMEDATALEN   1 0 -1 -1 f f i f f));
207
DATA(insert OID = 0 ( 1247 typowner			23 0  4   2 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
DATA(insert OID = 0 ( 1247 typlen			21 0  2   3 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1247 typprtlen		21 0  2   4 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1247 typbyval			16 0  1   5 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typtype			18 0  1   6 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typisdefined		16 0  1   7 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typdelim			18 0  1   8 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typrelid			26 0  4   9 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typelem			26 0  4  10 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typinput			24 0  4  11 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typoutput		24 0  4  12 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typreceive		24 0  4  13 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typsend			24 0  4  14 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1247 typalign			18 0  1  15 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1247 typdefault		25 0 -1  16 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1247 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1247 oid				26 0  4  -2 0 -1 -1 t f i f f));
224
DATA(insert OID = 0 ( 1247 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
225
DATA(insert OID = 0 ( 1247 cmin				29 0  4  -4 0 -1 -1 t f i f f));
226
DATA(insert OID = 0 ( 1247 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
227
DATA(insert OID = 0 ( 1247 cmax				29 0  4  -6 0 -1 -1 t f i f f));
228 229

/* ----------------
230
 *		pg_database
231 232
 * ----------------
 */
233
DATA(insert OID = 0 ( 1262 datname			19 0 NAMEDATALEN   1 0 -1 -1 f f i f f));
234 235
DATA(insert OID = 0 ( 1262 datdba			23 0  4   2 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1262 encoding			23 0  4   3 0 -1 -1 t f i f f));
236
DATA(insert OID = 0 ( 1262 datpath			25 0 -1   4 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
237 238
DATA(insert OID = 0 ( 1262 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1262 oid				26 0  4  -2 0 -1 -1 t f i f f));
239
DATA(insert OID = 0 ( 1262 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
240
DATA(insert OID = 0 ( 1262 cmin				29 0  4  -4 0 -1 -1 t f i f f));
241
DATA(insert OID = 0 ( 1262 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
242
DATA(insert OID = 0 ( 1262 cmax				29 0  4  -6 0 -1 -1 t f i f f));
243

244
/* ----------------
245
 *		pg_proc
246 247 248
 * ----------------
 */
#define Schema_pg_proc \
249
{ 1255, {"proname"},			19, 0, NAMEDATALEN,  1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \
250 251 252 253 254 255 256 257
{ 1255, {"proowner"},			23, 0,	4,	2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255, {"prolang"},			26, 0,	4,	3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255, {"proisinh"},			16, 0,	1,	4, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255, {"proistrusted"},		16, 0,	1,	5, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255, {"proiscachable"},		16, 0,	1,	6, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255, {"pronargs"},			21, 0,	2,	7, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
{ 1255, {"proretset"},			16, 0,	1,	8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1255, {"prorettype"},			26, 0,	4,	9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
258
{ 1255, {"proargtypes"},		30, 0, 32, 10, 0, -1, -1,	'\0', '\0', 'i', '\0', '\0' }, \
259 260 261 262 263 264
{ 1255, {"probyte_pct"},		23, 0,	4, 11, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255, {"properbyte_cpu"},		23, 0,	4, 12, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255, {"propercall_cpu"},		23, 0,	4, 13, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255, {"prooutin_ratio"},		23, 0,	4, 14, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1255, {"prosrc"},				25, 0, -1,	15, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \
{ 1255, {"probin"},				17, 0, -1,	16, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }
B
Bruce Momjian 已提交
265

266
DATA(insert OID = 0 ( 1255 proname			19 0 NAMEDATALEN   1 0 -1 -1 f f i f f));
267
DATA(insert OID = 0 ( 1255 proowner			23 0  4   2 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
DATA(insert OID = 0 ( 1255 prolang			26 0  4   3 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1255 proisinh			16 0  1   4 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1255 proistrusted		16 0  1   5 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1255 proiscachable	16 0  1   6 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1255 pronargs			21 0  2   7 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1255 proretset		16 0  1   8 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1255 prorettype		26 0  4   9 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1255 proargtypes		30 0 32  10 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1255 probyte_pct		23 0  4  11 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1255 properbyte_cpu	23 0  4  12 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1255 propercall_cpu	23 0  4  13 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1255 prooutin_ratio	23 0  4  14 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1255 prosrc			25 0 -1  15 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1255 probin			17 0 -1  16 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1255 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1255 oid				26 0  4  -2 0 -1 -1 t f i f f));
284
DATA(insert OID = 0 ( 1255 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
285
DATA(insert OID = 0 ( 1255 cmin				29 0  4  -4 0 -1 -1 t f i f f));
286
DATA(insert OID = 0 ( 1255 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
287
DATA(insert OID = 0 ( 1255 cmax				29 0  4  -6 0 -1 -1 t f i f f));
288

289
/* ----------------
290
 *		pg_shadow
291 292
 * ----------------
 */
293
DATA(insert OID = 0 ( 1260 usename			19	0 NAMEDATALEN	1 0 -1 -1 f f i f f));
294 295 296 297 298 299 300 301 302 303 304 305 306
DATA(insert OID = 0 ( 1260 usesysid			23	0	4	2 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1260 usecreatedb		16	0	1	3 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1260 usetrace			16	0	1	4 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1260 usesuper			16	0	1	5 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1260 usecatupd		16	0	1	6 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1260 passwd			25	0  -1	7 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1260 valuntil			702 0	4	8 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1260 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1260 oid				26 0  4  -2 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1260 xmin				28 0  4  -3 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1260 cmin				29 0  4  -4 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1260 xmax				28 0  4  -5 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1260 cmax				29 0  4  -6 0 -1 -1 t f i f f));
307 308

/* ----------------
309
 *		pg_group
310 311
 * ----------------
 */
312
DATA(insert OID = 0 ( 1261 groname			19 0 NAMEDATALEN  1 0 -1 -1 f f i f f));
313
DATA(insert OID = 0 ( 1261 grosysid			23 0  4   2 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
314 315 316
DATA(insert OID = 0 ( 1261 grolist		  1007 0 -1   3 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1261 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1261 oid				26 0  4  -2 0 -1 -1 t f i f f));
317
DATA(insert OID = 0 ( 1261 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
318
DATA(insert OID = 0 ( 1261 cmin				29 0  4  -4 0 -1 -1 t f i f f));
319
DATA(insert OID = 0 ( 1261 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
320
DATA(insert OID = 0 ( 1261 cmax				29 0  4  -6 0 -1 -1 t f i f f));
321

322
/* ----------------
323
 *		pg_attribute
324 325 326
 * ----------------
 */
#define Schema_pg_attribute \
327
{ 1249, {"attrelid"},	  26, 0,	4,	1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
328
{ 1249, {"attname"},	  19, 0, NAMEDATALEN,	2, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \
329 330 331 332 333 334
{ 1249, {"atttypid"},	  26, 0,	4,	3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1249, {"attdisbursion"}, 700, 0,	4,	4, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \
{ 1249, {"attlen"},		  21, 0,	2,	5, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
{ 1249, {"attnum"},		  21, 0,	2,	6, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
{ 1249, {"attnelems"},	  23, 0,	4,	7, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1249, {"attcacheoff"},  23, 0,	4,	8, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
335
{ 1249, {"atttypmod"},	  23, 0,	4,	9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
336 337 338
{ 1249, {"attbyval"},	  16, 0,	1, 10, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1249, {"attisset"},	  16, 0,	1, 11, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1249, {"attalign"},	  18, 0,	1, 12, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
339 340
{ 1249, {"attnotnull"},  16, 0, 1, 13, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1249, {"atthasdef"},	 16, 0, 1, 14, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }
B
Bruce Momjian 已提交
341 342

DATA(insert OID = 0 ( 1249 attrelid			26 0  4   1 0 -1 -1 t f i f f));
343
DATA(insert OID = 0 ( 1249 attname			19 0 NAMEDATALEN  2 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
344 345 346 347 348 349
DATA(insert OID = 0 ( 1249 atttypid			26 0  4   3 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1249 attdisbursion   700 0  4   4 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1249 attlen			21 0  2   5 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1249 attnum			21 0  2   6 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1249 attnelems		23 0  4   7 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1249 attcacheoff		23 0  4   8 0 -1 -1 t f i f f));
350
DATA(insert OID = 0 ( 1249 atttypmod		23 0  4   9 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
351 352 353 354 355 356 357
DATA(insert OID = 0 ( 1249 attbyval			16 0  1  10 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1249 attisset			16 0  1  11 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1249 attalign			18 0  1  12 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1249 attnotnull		16 0  1  13 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1249 atthasdef		16 0  1  14 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1249 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1249 oid				26 0  4  -2 0 -1 -1 t f i f f));
358
DATA(insert OID = 0 ( 1249 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
359
DATA(insert OID = 0 ( 1249 cmin				29 0  4  -4 0 -1 -1 t f i f f));
360
DATA(insert OID = 0 ( 1249 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
361
DATA(insert OID = 0 ( 1249 cmax				29 0  4  -6 0 -1 -1 t f i f f));
362

363
/* ----------------
364
 *		pg_class
365 366 367
 * ----------------
 */
#define Schema_pg_class \
368
{ 1259, {"relname"},	   19, 0, NAMEDATALEN,	1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \
369
{ 1259, {"reltype"},	   26, 0,	4,	2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
370
{ 1259, {"relowner"},	   23, 0,	4,	3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
371
{ 1259, {"relam"},		   26, 0,	4,	4, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
372 373 374 375 376 377
{ 1259, {"relpages"},	   23, 0,	4,	5, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259, {"reltuples"},	   23, 0,	4,	6, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
{ 1259, {"relhasindex"},   16, 0,	1,	7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259, {"relisshared"},   16, 0,	1,	8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259, {"relkind"},	   18, 0,	1,	9, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259, {"relnatts"},	   21, 0,	2, 10, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
378
{ 1259, {"relchecks"},	   21, 0,	2, 11, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
379
{ 1259, {"reltriggers"},   21, 0,	2, 12, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
B
Bruce Momjian 已提交
380 381 382
{ 1259, {"relukeys"},	   21, 0,	2, 13, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
{ 1259, {"relfkeys"},	   21, 0,	2, 14, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
{ 1259, {"relrefs"},	   21, 0,	2, 15, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
383 384 385
{ 1259, {"relhaspkey"},    16, 0,	1, 16, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259, {"relhasrules"},   16, 0,	1, 17, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
{ 1259, {"relacl"},		 1034, 0,  -1, 18, 0, -1, -1,	'\0', '\0', 'i', '\0', '\0' }
B
Bruce Momjian 已提交
386

387
DATA(insert OID = 0 ( 1259 relname			19 0 NAMEDATALEN   1 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
388
DATA(insert OID = 0 ( 1259 reltype			26 0  4   2 0 -1 -1 t f i f f));
389
DATA(insert OID = 0 ( 1259 relowner			23 0  4   3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
390 391 392 393 394 395 396 397 398
DATA(insert OID = 0 ( 1259 relam			26 0  4   4 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relpages			23 0  4   5 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1259 reltuples		23 0  4   6 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1259 relhasindex		16 0  1   7 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relisshared		16 0  1   8 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relkind			18 0  1   9 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relnatts			21 0  2  10 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relchecks		21 0  2  11 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1259 reltriggers		21 0  2  12 0 -1 -1 t f s f f));
399 400 401 402 403 404
DATA(insert OID = 0 ( 1259 relukeys			21 0  2  13 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relfkeys			21 0  2  14 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relrefs			21 0  2  15 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1259 relhaspkey		16 0  1  16 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relhasrules		16 0  1  17 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1259 relacl		  1034 0 -1  18 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
405 406
DATA(insert OID = 0 ( 1259 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1259 oid				26 0  4  -2 0 -1 -1 t f i f f));
407
DATA(insert OID = 0 ( 1259 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
408
DATA(insert OID = 0 ( 1259 cmin				29 0  4  -4 0 -1 -1 t f i f f));
409
DATA(insert OID = 0 ( 1259 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
410
DATA(insert OID = 0 ( 1259 cmax				29 0  4  -6 0 -1 -1 t f i f f));
411

412
/* ----------------
413
 *		pg_attrdef
414 415
 * ----------------
 */
B
Bruce Momjian 已提交
416 417 418 419 420 421
DATA(insert OID = 0 ( 1215 adrelid			26 0  4   1 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1215 adnum			21 0  2   2 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1215 adbin			25 0 -1   3 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1215 adsrc			25 0 -1   4 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1215 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1215 oid				26 0  4  -2 0 -1 -1 t f i f f));
422
DATA(insert OID = 0 ( 1215 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
423
DATA(insert OID = 0 ( 1215 cmin				29 0  4  -4 0 -1 -1 t f i f f));
424
DATA(insert OID = 0 ( 1215 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
425
DATA(insert OID = 0 ( 1215 cmax				29 0  4  -6 0 -1 -1 t f i f f));
426

427
/* ----------------
428
 *		pg_relcheck
429 430
 * ----------------
 */
B
Bruce Momjian 已提交
431
DATA(insert OID = 0 ( 1216 rcrelid			26 0  4   1 0 -1 -1 t f i f f));
432
DATA(insert OID = 0 ( 1216 rcname			19 0  NAMEDATALEN  2 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
433 434 435 436
DATA(insert OID = 0 ( 1216 rcbin			25 0 -1   3 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1216 rcsrc			25 0 -1   4 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1216 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1216 oid				26 0  4  -2 0 -1 -1 t f i f f));
437
DATA(insert OID = 0 ( 1216 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
438
DATA(insert OID = 0 ( 1216 cmin				29 0  4  -4 0 -1 -1 t f i f f));
439
DATA(insert OID = 0 ( 1216 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
440
DATA(insert OID = 0 ( 1216 cmax				29 0  4  -6 0 -1 -1 t f i f f));
441

V
Vadim B. Mikheev 已提交
442
/* ----------------
443
 *		pg_trigger
V
Vadim B. Mikheev 已提交
444 445
 * ----------------
 */
B
Bruce Momjian 已提交
446
DATA(insert OID = 0 ( 1219 tgrelid			26 0  4   1 0 -1 -1 t f i f f));
447
DATA(insert OID = 0 ( 1219 tgname			19 0  NAMEDATALEN  2 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
448 449
DATA(insert OID = 0 ( 1219 tgfoid			26 0  4   3 0 -1 -1 t f i f f));
DATA(insert OID = 0 ( 1219 tgtype			21 0  2   4 0 -1 -1 t f s f f));
450 451 452 453 454 455 456 457 458 459
DATA(insert OID = 0 ( 1219 tgenabled		16 0  1   5 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1219 tgisconstraint	16 0  1   6 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1219 tgconstrname		19 0  NAMEDATALEN  7 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1219 tgconstrrelid	26 0  4   8 0 -1 -1 t f i f f));

DATA(insert OID = 0 ( 1219 tgdeferrable		16 0  1   9 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1219 tginitdeferred	16 0  1   10 0 -1 -1 t f c f f));
DATA(insert OID = 0 ( 1219 tgnargs			21 0  2   11 0 -1 -1 t f s f f));
DATA(insert OID = 0 ( 1219 tgattr			22 0 16   12 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1219 tgargs			17 0 -1   13 0 -1 -1 f f i f f));
B
Bruce Momjian 已提交
460 461
DATA(insert OID = 0 ( 1219 ctid				27 0  6  -1 0 -1 -1 f f i f f));
DATA(insert OID = 0 ( 1219 oid				26 0  4  -2 0 -1 -1 t f i f f));
462
DATA(insert OID = 0 ( 1219 xmin				28 0  4  -3 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
463
DATA(insert OID = 0 ( 1219 cmin				29 0  4  -4 0 -1 -1 t f i f f));
464
DATA(insert OID = 0 ( 1219 xmax				28 0  4  -5 0 -1 -1 t f i f f));
B
Bruce Momjian 已提交
465
DATA(insert OID = 0 ( 1219 cmax				29 0  4  -6 0 -1 -1 t f i f f));
466

467
/* ----------------
468 469 470
 *		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.
471 472 473
 * ----------------
 */
#define Schema_pg_variable \
474
{ 1264, {"varfoo"},  26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }
475

B
Bruce Momjian 已提交
476
DATA(insert OID = 0 ( 1264 varfoo			26 0  4   1 0 -1 -1 t f i f f));
477

478
/* ----------------
479 480 481
 *		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.
482 483 484
 * ----------------
 */
#define Schema_pg_log \
485
{ 1269, {"logfoo"},  26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }
486

B
Bruce Momjian 已提交
487
DATA(insert OID = 0 ( 1269 logfoo			26 0  4   1 0 -1 -1 t f i f f));
488

489 490 491 492 493 494 495 496 497 498 499
/* ----------------
 *		pg_xactlock - 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_xactlock \
{ 376, {"xactlockfoo"},  26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }

DATA(insert OID = 0 ( 376 xactlockfoo		26 0  4   1 0 -1 -1 t f i f f));

500
#endif	 /* PG_ATTRIBUTE_H */