Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 36ef34d

Browse files
committed
Added attributes for primary/unique/foreign keys...
1 parent d9d8169 commit 36ef34d

File tree

4 files changed

+54
-32
lines changed

4 files changed

+54
-32
lines changed

src/backend/catalog/index.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.62 1998/09/09 03:42:52 vadim Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.63 1998/09/10 15:32:16 vadim Exp $
1111
*
1212
*
1313
* INTERFACE ROUTINES
@@ -762,6 +762,7 @@ UpdateIndexRelation(Oid indexoid,
762762
predLen = VARSIZE(predText);
763763
itupLen = predLen + sizeof(FormData_pg_index);
764764
indexForm = (Form_pg_index) palloc(itupLen);
765+
memset (indexForm, 0, sizeof(FormData_pg_index));
765766

766767
memmove((char *) &indexForm->indpred, (char *) predText, predLen);
767768

src/include/catalog/pg_attribute.h

+19-11
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_attribute.h,v 1.43 1998/09/01 04:34:51 momjian Exp $
10+
* $Id: pg_attribute.h,v 1.44 1998/09/10 15:32:30 vadim Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -361,16 +361,20 @@ DATA(insert OID = 0 ( 1249 cmax 29 0 4 -6 0 -1 -1 t f i f f));
361361
{ 1259, {"reltype"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
362362
{ 1259, {"relowner"}, 23, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
363363
{ 1259, {"relam"}, 26, 0, 4, 4, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
364-
{ 1259, {"relpages"}, 23, 0, 4, 5, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
365-
{ 1259, {"reltuples"}, 23, 0, 4, 6, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
366-
{ 1259, {"relhasindex"}, 16, 0, 1, 7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
367-
{ 1259, {"relisshared"}, 16, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
368-
{ 1259, {"relkind"}, 18, 0, 1, 9, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
369-
{ 1259, {"relnatts"}, 21, 0, 2, 10, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
364+
{ 1259, {"relpages"}, 23, 0, 4, 5, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
365+
{ 1259, {"reltuples"}, 23, 0, 4, 6, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \
366+
{ 1259, {"relhasindex"}, 16, 0, 1, 7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
367+
{ 1259, {"relisshared"}, 16, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
368+
{ 1259, {"relkind"}, 18, 0, 1, 9, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
369+
{ 1259, {"relnatts"}, 21, 0, 2, 10, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
370370
{ 1259, {"relchecks"}, 21, 0, 2, 11, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
371371
{ 1259, {"reltriggers"}, 21, 0, 2, 12, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
372-
{ 1259, {"relhasrules"}, 16, 0, 1, 13, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
373-
{ 1259, {"relacl"}, 1034, 0, -1, 14, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }
372+
{ 1259, {"relukeys"}, 21, 0, 2, 13, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
373+
{ 1259, {"relfkeys"}, 21, 0, 2, 14, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
374+
{ 1259, {"relrefs"}, 21, 0, 2, 15, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \
375+
{ 1259, {"relhaspkey"}, 16, 0, 1, 16, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
376+
{ 1259, {"relhasrules"}, 16, 0, 1, 17, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \
377+
{ 1259, {"relacl"}, 1034, 0, -1, 18, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }
374378

375379
DATA(insert OID = 0 ( 1259 relname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f));
376380
DATA(insert OID = 0 ( 1259 reltype 26 0 4 2 0 -1 -1 t f i f f));
@@ -384,8 +388,12 @@ DATA(insert OID = 0 ( 1259 relkind 18 0 1 9 0 -1 -1 t f c f f));
384388
DATA(insert OID = 0 ( 1259 relnatts 21 0 2 10 0 -1 -1 t f s f f));
385389
DATA(insert OID = 0 ( 1259 relchecks 21 0 2 11 0 -1 -1 t f s f f));
386390
DATA(insert OID = 0 ( 1259 reltriggers 21 0 2 12 0 -1 -1 t f s f f));
387-
DATA(insert OID = 0 ( 1259 relhasrules 16 0 1 13 0 -1 -1 t f c f f));
388-
DATA(insert OID = 0 ( 1259 relacl 1034 0 -1 14 0 -1 -1 f f i f f));
391+
DATA(insert OID = 0 ( 1259 relukeys 21 0 2 13 0 -1 -1 t f s f f));
392+
DATA(insert OID = 0 ( 1259 relfkeys 21 0 2 14 0 -1 -1 t f s f f));
393+
DATA(insert OID = 0 ( 1259 relrefs 21 0 2 15 0 -1 -1 t f s f f));
394+
DATA(insert OID = 0 ( 1259 relhaspkey 16 0 1 16 0 -1 -1 t f c f f));
395+
DATA(insert OID = 0 ( 1259 relhasrules 16 0 1 17 0 -1 -1 t f c f f));
396+
DATA(insert OID = 0 ( 1259 relacl 1034 0 -1 18 0 -1 -1 f f i f f));
389397
DATA(insert OID = 0 ( 1259 ctid 27 0 6 -1 0 -1 -1 f f i f f));
390398
DATA(insert OID = 0 ( 1259 oid 26 0 4 -2 0 -1 -1 t f i f f));
391399
DATA(insert OID = 0 ( 1259 xmin 28 0 4 -3 0 -1 -1 t f i f f));

src/include/catalog/pg_class.h

+25-17
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_class.h,v 1.24 1998/09/01 04:34:53 momjian Exp $
10+
* $Id: pg_class.h,v 1.25 1998/09/10 15:32:31 vadim Exp $
1111
*
1212
* NOTES
1313
* ``pg_relation'' is being replaced by ``pg_class''. currently
@@ -71,6 +71,10 @@ CATALOG(pg_class) BOOTSTRAP
7171
int2 relchecks; /* # of CHECK constraints, not stored in
7272
* db? */
7373
int2 reltriggers; /* # of TRIGGERs */
74+
int2 relukeys; /* # of Unique keys */
75+
int2 relfkeys; /* # of FOREIGN KEYs */
76+
int2 relrefs; /* # of references to this relation */
77+
bool relhaspkey; /* has PRIMARY KEY */
7478
bool relhasrules;
7579
aclitem relacl[1]; /* this is here for the catalog */
7680
} FormData_pg_class;
@@ -96,8 +100,8 @@ typedef FormData_pg_class *Form_pg_class;
96100
* relacl field.
97101
* ----------------
98102
*/
99-
#define Natts_pg_class_fixed 13
100-
#define Natts_pg_class 14
103+
#define Natts_pg_class_fixed 17
104+
#define Natts_pg_class 18
101105
#define Anum_pg_class_relname 1
102106
#define Anum_pg_class_reltype 2
103107
#define Anum_pg_class_relowner 3
@@ -110,37 +114,41 @@ typedef FormData_pg_class *Form_pg_class;
110114
#define Anum_pg_class_relnatts 10
111115
#define Anum_pg_class_relchecks 11
112116
#define Anum_pg_class_reltriggers 12
113-
#define Anum_pg_class_relhasrules 13
114-
#define Anum_pg_class_relacl 14
117+
#define Anum_pg_class_relukeys 13
118+
#define Anum_pg_class_relfkeys 14
119+
#define Anum_pg_class_relrefs 15
120+
#define Anum_pg_class_relhaspkey 16
121+
#define Anum_pg_class_relhasrules 17
122+
#define Anum_pg_class_relacl 18
115123

116124
/* ----------------
117125
* initial contents of pg_class
118126
* ----------------
119127
*/
120128

121-
DATA(insert OID = 1247 ( pg_type 71 PGUID 0 0 0 f f r 16 0 0 f _null_ ));
129+
DATA(insert OID = 1247 ( pg_type 71 PGUID 0 0 0 f f r 16 0 0 0 0 0 f f _null_ ));
122130
DESCR("");
123-
DATA(insert OID = 1249 ( pg_attribute 75 PGUID 0 0 0 f f r 14 0 0 f _null_ ));
131+
DATA(insert OID = 1249 ( pg_attribute 75 PGUID 0 0 0 f f r 14 0 0 0 0 0 f f _null_ ));
124132
DESCR("");
125-
DATA(insert OID = 1255 ( pg_proc 81 PGUID 0 0 0 f f r 16 0 0 f _null_ ));
133+
DATA(insert OID = 1255 ( pg_proc 81 PGUID 0 0 0 f f r 16 0 0 0 0 0 f f _null_ ));
126134
DESCR("");
127-
DATA(insert OID = 1259 ( pg_class 83 PGUID 0 0 0 f f r 14 0 0 f _null_ ));
135+
DATA(insert OID = 1259 ( pg_class 83 PGUID 0 0 0 f f r 18 0 0 0 0 0 f f _null_ ));
128136
DESCR("");
129-
DATA(insert OID = 1260 ( pg_shadow 86 PGUID 0 0 0 f t r 8 0 0 f _null_ ));
137+
DATA(insert OID = 1260 ( pg_shadow 86 PGUID 0 0 0 f t r 8 0 0 0 0 0 f f _null_ ));
130138
DESCR("");
131-
DATA(insert OID = 1261 ( pg_group 87 PGUID 0 0 0 f t s 3 0 0 f _null_ ));
139+
DATA(insert OID = 1261 ( pg_group 87 PGUID 0 0 0 f t s 3 0 0 0 0 0 f f _null_ ));
132140
DESCR("");
133-
DATA(insert OID = 1262 ( pg_database 88 PGUID 0 0 0 f t r 4 0 0 f _null_ ));
141+
DATA(insert OID = 1262 ( pg_database 88 PGUID 0 0 0 f t r 4 0 0 0 0 0 f f _null_ ));
134142
DESCR("");
135-
DATA(insert OID = 1264 ( pg_variable 90 PGUID 0 0 0 f t s 2 0 0 f _null_ ));
143+
DATA(insert OID = 1264 ( pg_variable 90 PGUID 0 0 0 f t s 2 0 0 0 0 0 f f _null_ ));
136144
DESCR("");
137-
DATA(insert OID = 1269 ( pg_log 99 PGUID 0 0 0 f t s 1 0 0 f _null_ ));
145+
DATA(insert OID = 1269 ( pg_log 99 PGUID 0 0 0 f t s 1 0 0 0 0 0 f f _null_ ));
138146
DESCR("");
139-
DATA(insert OID = 1215 ( pg_attrdef 109 PGUID 0 0 0 t t r 4 0 0 f _null_ ));
147+
DATA(insert OID = 1215 ( pg_attrdef 109 PGUID 0 0 0 t t r 4 0 0 0 0 0 f f _null_ ));
140148
DESCR("");
141-
DATA(insert OID = 1216 ( pg_relcheck 110 PGUID 0 0 0 t t r 4 0 0 f _null_ ));
149+
DATA(insert OID = 1216 ( pg_relcheck 110 PGUID 0 0 0 t t r 4 0 0 0 0 0 f f _null_ ));
142150
DESCR("");
143-
DATA(insert OID = 1219 ( pg_trigger 111 PGUID 0 0 0 t t r 7 0 0 f _null_ ));
151+
DATA(insert OID = 1219 ( pg_trigger 111 PGUID 0 0 0 t t r 7 0 0 0 0 0 f f _null_ ));
144152
DESCR("");
145153

146154
#define RelOid_pg_type 1247

src/include/catalog/pg_index.h

+8-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_index.h,v 1.9 1998/09/06 04:49:51 momjian Exp $
10+
* $Id: pg_index.h,v 1.10 1998/09/10 15:32:32 vadim Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -52,6 +52,9 @@ CATALOG(pg_index)
5252
* compression)? */
5353
bool indhaskeytype; /* does key type != attribute type? */
5454
bool indisunique; /* is this a unique index? */
55+
bool indisprimary; /* is this index for primary key */
56+
Oid indreference; /* oid of index of referenced relation
57+
* (ie - this index for foreign key */
5558
text indpred; /* query plan for partial index predicate */
5659
} FormData_pg_index;
5760

@@ -69,7 +72,7 @@ typedef FormData_pg_index *Form_pg_index;
6972
* compiler constants for pg_index
7073
* ----------------
7174
*/
72-
#define Natts_pg_index 10
75+
#define Natts_pg_index 12
7376
#define Anum_pg_index_indexrelid 1
7477
#define Anum_pg_index_indrelid 2
7578
#define Anum_pg_index_indproc 3
@@ -79,6 +82,8 @@ typedef FormData_pg_index *Form_pg_index;
7982
#define Anum_pg_index_indislossy 7
8083
#define Anum_pg_index_indhaskeytype 8
8184
#define Anum_pg_index_indisunique 9
82-
#define Anum_pg_index_indpred 10
85+
#define Anum_pg_index_indisprimary 10
86+
#define Anum_pg_index_indreference 11
87+
#define Anum_pg_index_indpred 12
8388

8489
#endif /* PG_INDEX_H */

0 commit comments

Comments
 (0)