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

Commit 22cc0e1

Browse files
committed
Remove NOBTREE defines, and make findoidlinks handle regproc.
1 parent 22b370e commit 22cc0e1

File tree

5 files changed

+60
-195
lines changed

5 files changed

+60
-195
lines changed

contrib/findoidjoins/README

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,83 @@ they join to. PostgreSQL version 6.3.2 crashes with aggregates on
77
views, so I have removed the view pg_user from the list of relations to
88
examine.
99

10+
It requires /pgsql/contrib/pginterface to be compiled first.
11+
1012
Run on am empty database, it returns the system join relationships:
1113

1214
---------------------------------------------------------------------------
1315

16+
Join pg_aggregate.aggbasetype => pg_proc.oid
17+
Join pg_aggregate.aggbasetype => pg_type.oid
18+
Join pg_aggregate.aggfinalfn => pg_proc.oid
1419
Join pg_aggregate.aggfinaltype => pg_proc.oid
1520
Join pg_aggregate.aggfinaltype => pg_type.oid
1621
Join pg_aggregate.aggowner => pg_proc.oid
17-
Join pg_aggregate.aggbasetype => pg_proc.oid
18-
Join pg_aggregate.aggbasetype => pg_type.oid
22+
Join pg_aggregate.aggtransfn1 => pg_proc.oid
23+
Join pg_aggregate.aggtransfn2 => pg_proc.oid
1924
Join pg_aggregate.aggtranstype1 => pg_proc.oid
2025
Join pg_aggregate.aggtranstype1 => pg_type.oid
2126
Join pg_aggregate.aggtranstype2 => pg_type.oid
27+
Join pg_am.ambeginscan => pg_proc.oid
28+
Join pg_am.ambuild => pg_proc.oid
29+
Join pg_am.amdelete => pg_proc.oid
30+
Join pg_am.amendscan => pg_proc.oid
31+
Join pg_am.amgettuple => pg_proc.oid
32+
Join pg_am.aminsert => pg_proc.oid
33+
Join pg_am.ammarkpos => pg_proc.oid
2234
Join pg_am.amowner => pg_proc.oid
35+
Join pg_am.amrescan => pg_proc.oid
36+
Join pg_am.amrestrpos => pg_proc.oid
37+
Join pg_amop.amopclaid => pg_opclass.oid
2338
Join pg_amop.amopid => pg_am.oid
39+
Join pg_amop.amopnpages => pg_proc.oid
2440
Join pg_amop.amopopr => pg_operator.oid
25-
Join pg_amop.amopclaid => pg_opclass.oid
26-
Join pg_amproc.amproc => pg_operator.oid
27-
Join pg_amproc.amproc => pg_proc.oid
41+
Join pg_amop.amopselect => pg_proc.oid
42+
Join pg_amproc.amid => pg_am.oid
2843
Join pg_amproc.amopclaid => pg_opclass.oid
2944
Join pg_amproc.amopclaid => pg_operator.oid
3045
Join pg_amproc.amopclaid => pg_proc.oid
31-
Join pg_amproc.amid => pg_am.oid
46+
Join pg_amproc.amproc => pg_operator.oid
47+
Join pg_amproc.amproc => pg_proc.oid
3248
Join pg_attribute.attrelid => pg_class.oid
3349
Join pg_attribute.atttypid => pg_type.oid
3450
Join pg_class.relam => pg_am.oid
35-
Join pg_class.reltype => pg_type.oid
3651
Join pg_class.relowner => pg_proc.oid
52+
Join pg_class.reltype => pg_type.oid
3753
Join pg_description.objoid => pg_proc.oid
3854
Join pg_description.objoid => pg_type.oid
3955
Join pg_index.indexrelid => pg_class.oid
40-
Join pg_index.indrelid => pg_class.oid
4156
Join pg_index.indproc => pg_proc.oid
57+
Join pg_index.indrelid => pg_class.oid
4258
Join pg_opclass.opcdeftype => pg_type.oid
59+
Join pg_operator.oprcode => pg_proc.oid
4360
Join pg_operator.oprcom => pg_operator.oid
44-
Join pg_operator.oprrsortop => pg_operator.oid
61+
Join pg_operator.oprjoin => pg_proc.oid
62+
Join pg_operator.oprleft => pg_type.oid
4563
Join pg_operator.oprlsortop => pg_operator.oid
4664
Join pg_operator.oprnegate => pg_operator.oid
65+
Join pg_operator.oprowner => pg_proc.oid
66+
Join pg_operator.oprrest => pg_proc.oid
4767
Join pg_operator.oprresult => pg_type.oid
4868
Join pg_operator.oprright => pg_type.oid
49-
Join pg_operator.oprleft => pg_type.oid
50-
Join pg_operator.oprowner => pg_proc.oid
51-
Join pg_parg.partype => pg_type.oid
69+
Join pg_operator.oprrsortop => pg_operator.oid
5270
Join pg_parg.parproid => pg_operator.oid
5371
Join pg_parg.parproid => pg_proc.oid
72+
Join pg_parg.partype => pg_type.oid
5473
Join pg_proc.prolang => pg_language.oid
55-
Join pg_proc.prorettype => pg_type.oid
5674
Join pg_proc.proowner => pg_proc.oid
75+
Join pg_proc.prorettype => pg_type.oid
5776
Join pg_rewrite.ev_class => pg_class.oid
5877
Join pg_statistic.starelid => pg_class.oid
59-
Join pg_type.typrelid => pg_class.oid
60-
Join pg_type.typowner => pg_proc.oid
6178
Join pg_type.typelem => pg_operator.oid
6279
Join pg_type.typelem => pg_proc.oid
6380
Join pg_type.typelem => pg_type.oid
81+
Join pg_type.typinput => pg_proc.oid
82+
Join pg_type.typoutput => pg_proc.oid
83+
Join pg_type.typowner => pg_proc.oid
84+
Join pg_type.typreceive => pg_proc.oid
85+
Join pg_type.typrelid => pg_class.oid
86+
Join pg_type.typsend => pg_proc.oid
6487

6588

6689
---------------------------------------------------------------------------

contrib/findoidjoins/findoidjoins.c

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55

66
#include <stdio.h>
7+
#include <string.h>
78
#include "halt.h"
89
#include <libpq-fe.h>
910
#include "pginterface.h"
@@ -17,6 +18,7 @@ main(int argc, char **argv)
1718
char relname[256];
1819
char relname2[256];
1920
char attname[256];
21+
char typname[256];
2022
int count;
2123

2224
if (argc != 2)
@@ -29,14 +31,15 @@ main(int argc, char **argv)
2931
doquery("BEGIN WORK");
3032
doquery("\
3133
DECLARE c_attributes BINARY CURSOR FOR \
32-
SELECT relname, a.attname \
34+
SELECT typname, relname, a.attname \
3335
FROM pg_class c, pg_attribute a, pg_type t \
3436
WHERE a.attnum > 0 AND \
3537
relkind = 'r' AND \
36-
typname = 'oid' AND \
38+
(typname = 'oid' OR \
39+
typname = 'regproc') AND \
3740
a.attrelid = c.oid AND \
3841
a.atttypid = t.oid \
39-
ORDER BY 1; \
42+
ORDER BY 2, 3; \
4043
");
4144
doquery("FETCH ALL IN c_attributes");
4245
attres = get_result();
@@ -53,18 +56,25 @@ main(int argc, char **argv)
5356
relres = get_result();
5457

5558
set_result(attres);
56-
while (fetch(relname, attname) != END_OF_TUPLES)
59+
while (fetch(typname, relname, attname) != END_OF_TUPLES)
5760
{
5861
set_result(relres);
5962
reset_fetch();
6063
while (fetch(relname2) != END_OF_TUPLES)
6164
{
6265
unset_result(relres);
63-
sprintf(query,"\
64-
DECLARE c_matches BINARY CURSOR FOR \
65-
SELECT count(*)
66-
FROM %s t1, %s t2 \
67-
WHERE t1.%s = t2.oid", relname, relname2, attname);
66+
if (strcmp(typname, "oid") == 0)
67+
sprintf(query,"\
68+
DECLARE c_matches BINARY CURSOR FOR \
69+
SELECT count(*)
70+
FROM %s t1, %s t2 \
71+
WHERE t1.%s = t2.oid", relname, relname2, attname);
72+
else
73+
sprintf(query,"\
74+
DECLARE c_matches BINARY CURSOR FOR \
75+
SELECT count(*)
76+
FROM %s t1, %s t2 \
77+
WHERE RegprocToOid(t1.%s) = t2.oid", relname, relname2, attname);
6878

6979
doquery(query);
7080
doquery("FETCH ALL IN c_matches");

src/include/catalog/pg_am.h

Lines changed: 1 addition & 10 deletions
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_am.h,v 1.5 1997/11/13 03:22:57 momjian Exp $
10+
* $Id: pg_am.h,v 1.6 1998/08/11 05:32:43 momjian Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -109,13 +109,4 @@ DESCR("");
109109
DATA(insert OID = 783 ( gist PGUID "o" 100 7 gistgettuple gistinsert gistdelete - - - - gistbeginscan gistrescan gistendscan gistmarkpos gistrestrpos - - gistbuild - - ));
110110
DESCR("");
111111

112-
BKI_BEGIN
113-
#ifdef NOBTREE
114-
BKI_END
115-
DATA(insert OID = 404 ( nobtree PGUID "o" 5 1 nobtgettuple nobtinsert nobtdelete - - - - nobtbeginscan nobtrescan nobtendscan nobtmarkpos nobtrestrpos - - nobtbuild - - ));
116-
DESCR("");
117-
BKI_BEGIN
118-
#endif /* NOBTREE */
119-
BKI_END
120-
121112
#endif /* PG_AM_H */

src/include/catalog/pg_amop.h

Lines changed: 1 addition & 138 deletions
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_amop.h,v 1.12 1998/04/26 04:08:52 momjian Exp $
10+
* $Id: pg_amop.h,v 1.13 1998/08/11 05:32:45 momjian Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -318,143 +318,6 @@ DATA(insert OID = 0 ( 403 1313 1330 3 btreesel btreenpage ));
318318
DATA(insert OID = 0 ( 403 1313 1335 4 btreesel btreenpage ));
319319
DATA(insert OID = 0 ( 403 1313 1334 5 btreesel btreenpage ));
320320

321-
BKI_BEGIN
322-
#ifdef NOBTREE
323-
BKI_END
324-
/*
325-
* nobtree int2_ops
326-
*/
327-
328-
DATA(insert OID = 0 ( 404 421 95 1 btreesel btreenpage ));
329-
DATA(insert OID = 0 ( 404 421 522 2 btreesel btreenpage ));
330-
DATA(insert OID = 0 ( 404 421 94 3 btreesel btreenpage ));
331-
DATA(insert OID = 0 ( 404 421 524 4 btreesel btreenpage ));
332-
DATA(insert OID = 0 ( 404 421 520 5 btreesel btreenpage ));
333-
334-
/*
335-
* nobtree float8_ops
336-
*/
337-
338-
DATA(insert OID = 0 ( 404 423 672 1 btreesel btreenpage ));
339-
DATA(insert OID = 0 ( 404 423 673 2 btreesel btreenpage ));
340-
DATA(insert OID = 0 ( 404 423 670 3 btreesel btreenpage ));
341-
DATA(insert OID = 0 ( 404 423 675 4 btreesel btreenpage ));
342-
DATA(insert OID = 0 ( 404 423 674 5 btreesel btreenpage ));
343-
344-
/*
345-
* nobtree int24_ops
346-
*/
347-
348-
DATA(insert OID = 0 ( 404 424 534 1 btreesel btreenpage ));
349-
DATA(insert OID = 0 ( 404 424 540 2 btreesel btreenpage ));
350-
DATA(insert OID = 0 ( 404 424 532 3 btreesel btreenpage ));
351-
DATA(insert OID = 0 ( 404 424 542 4 btreesel btreenpage ));
352-
DATA(insert OID = 0 ( 404 424 536 5 btreesel btreenpage ));
353-
354-
/*
355-
* nobtree int42_ops
356-
*/
357-
358-
DATA(insert OID = 0 ( 404 425 535 1 btreesel btreenpage ));
359-
DATA(insert OID = 0 ( 404 425 541 2 btreesel btreenpage ));
360-
DATA(insert OID = 0 ( 404 425 533 3 btreesel btreenpage ));
361-
DATA(insert OID = 0 ( 404 425 543 4 btreesel btreenpage ));
362-
DATA(insert OID = 0 ( 404 425 537 5 btreesel btreenpage ));
363-
364-
/*
365-
* nobtree int4_ops
366-
*/
367-
368-
DATA(insert OID = 0 ( 404 426 97 1 btreesel btreenpage ));
369-
DATA(insert OID = 0 ( 404 426 523 2 btreesel btreenpage ));
370-
DATA(insert OID = 0 ( 404 426 96 3 btreesel btreenpage ));
371-
DATA(insert OID = 0 ( 404 426 525 4 btreesel btreenpage ));
372-
DATA(insert OID = 0 ( 404 426 521 5 btreesel btreenpage ));
373-
374-
/*
375-
* nobtree oid_ops
376-
*/
377-
378-
DATA(insert OID = 0 ( 404 427 609 1 btreesel btreenpage ));
379-
DATA(insert OID = 0 ( 404 427 611 2 btreesel btreenpage ));
380-
DATA(insert OID = 0 ( 404 427 607 3 btreesel btreenpage ));
381-
DATA(insert OID = 0 ( 404 427 612 4 btreesel btreenpage ));
382-
DATA(insert OID = 0 ( 404 427 610 5 btreesel btreenpage ));
383-
384-
/*
385-
* nobtree float4_ops
386-
*/
387-
388-
DATA(insert OID = 0 ( 404 428 622 1 btreesel btreenpage ));
389-
DATA(insert OID = 0 ( 404 428 624 2 btreesel btreenpage ));
390-
DATA(insert OID = 0 ( 404 428 620 3 btreesel btreenpage ));
391-
DATA(insert OID = 0 ( 404 428 625 4 btreesel btreenpage ));
392-
DATA(insert OID = 0 ( 404 428 623 5 btreesel btreenpage ));
393-
394-
/*
395-
* nobtree char_ops
396-
*/
397-
398-
DATA(insert OID = 0 ( 404 429 631 1 btreesel btreenpage ));
399-
DATA(insert OID = 0 ( 404 429 632 2 btreesel btreenpage ));
400-
DATA(insert OID = 0 ( 404 429 92 3 btreesel btreenpage ));
401-
DATA(insert OID = 0 ( 404 429 634 4 btreesel btreenpage ));
402-
DATA(insert OID = 0 ( 404 429 633 5 btreesel btreenpage ));
403-
404-
/*
405-
* nobtree name_ops
406-
*/
407-
408-
DATA(insert OID = 0 ( 404 1181 660 1 btreesel btreenpage ));
409-
DATA(insert OID = 0 ( 404 1181 661 2 btreesel btreenpage ));
410-
DATA(insert OID = 0 ( 404 1181 93 3 btreesel btreenpage ));
411-
DATA(insert OID = 0 ( 404 1181 663 4 btreesel btreenpage ));
412-
DATA(insert OID = 0 ( 404 1181 662 5 btreesel btreenpage ));
413-
414-
/*
415-
* nobtree text_ops
416-
*/
417-
418-
DATA(insert OID = 0 ( 404 431 664 1 btreesel btreenpage ));
419-
DATA(insert OID = 0 ( 404 431 665 2 btreesel btreenpage ));
420-
DATA(insert OID = 0 ( 404 431 98 3 btreesel btreenpage ));
421-
DATA(insert OID = 0 ( 404 431 667 4 btreesel btreenpage ));
422-
DATA(insert OID = 0 ( 404 431 666 5 btreesel btreenpage ));
423-
424-
/*
425-
* nobtree abstime_ops
426-
*/
427-
428-
DATA(insert OID = 0 ( 404 432 562 1 btreesel btreenpage ));
429-
DATA(insert OID = 0 ( 404 432 564 2 btreesel btreenpage ));
430-
DATA(insert OID = 0 ( 404 432 560 3 btreesel btreenpage ));
431-
DATA(insert OID = 0 ( 404 432 565 4 btreesel btreenpage ));
432-
DATA(insert OID = 0 ( 404 432 563 5 btreesel btreenpage ));
433-
434-
/*
435-
* nobtree datetime_ops
436-
*/
437-
438-
DATA(insert OID = 0 ( 404 1312 1322 1 btreesel btreenpage ));
439-
DATA(insert OID = 0 ( 404 1312 1323 2 btreesel btreenpage ));
440-
DATA(insert OID = 0 ( 404 1312 1320 3 btreesel btreenpage ));
441-
DATA(insert OID = 0 ( 404 1312 1325 4 btreesel btreenpage ));
442-
DATA(insert OID = 0 ( 404 1312 1324 5 btreesel btreenpage ));
443-
444-
/*
445-
* nobtree timespan_ops
446-
*/
447-
448-
DATA(insert OID = 0 ( 404 1313 1332 1 btreesel btreenpage ));
449-
DATA(insert OID = 0 ( 404 1313 1333 2 btreesel btreenpage ));
450-
DATA(insert OID = 0 ( 404 1313 1330 3 btreesel btreenpage ));
451-
DATA(insert OID = 0 ( 404 1313 1335 4 btreesel btreenpage ));
452-
DATA(insert OID = 0 ( 404 1313 1334 5 btreesel btreenpage ));
453-
454-
BKI_BEGIN
455-
#endif /* NOBTREE */
456-
BKI_END
457-
458321
/*
459322
* hash table _ops
460323
*/

src/include/catalog/pg_amproc.h

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* Copyright (c) 1994, Regents of the University of California
1111
*
12-
* $Id: pg_amproc.h,v 1.7 1997/11/30 22:58:07 thomas Exp $
12+
* $Id: pg_amproc.h,v 1.8 1998/08/11 05:32:46 momjian Exp $
1313
*
1414
* NOTES
1515
* the genbki.sh script reads this file and generates .bki
@@ -96,28 +96,6 @@ DATA(insert OID = 0 (403 1115 1107 1));
9696
DATA(insert OID = 0 (403 1312 1314 1));
9797
DATA(insert OID = 0 (403 1313 1315 1));
9898

99-
BKI_BEGIN
100-
#ifdef NOBTREE
101-
BKI_END
102-
DATA(insert OID = 0 (404 421 350 1));
103-
DATA(insert OID = 0 (404 423 355 1));
104-
DATA(insert OID = 0 (404 424 353 1));
105-
DATA(insert OID = 0 (404 425 352 1));
106-
DATA(insert OID = 0 (404 426 351 1));
107-
DATA(insert OID = 0 (404 427 356 1));
108-
DATA(insert OID = 0 (404 428 354 1));
109-
DATA(insert OID = 0 (404 429 358 1));
110-
DATA(insert OID = 0 (404 406 689 1));
111-
DATA(insert OID = 0 (404 407 690 1));
112-
DATA(insert OID = 0 (404 408 691 1));
113-
DATA(insert OID = 0 (404 1181 359 1));
114-
DATA(insert OID = 0 (404 430 1274 1));
115-
DATA(insert OID = 0 (404 431 360 1));
116-
DATA(insert OID = 0 (404 432 357 1));
117-
BKI_BEGIN
118-
#endif /* NOBTREE */
119-
BKI_END
120-
12199
DATA(insert OID = 0 (405 421 449 1));
122100
DATA(insert OID = 0 (405 423 452 1));
123101
DATA(insert OID = 0 (405 426 450 1));

0 commit comments

Comments
 (0)