Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
22cc0e16
Commit
22cc0e16
authored
Aug 11, 1998
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove NOBTREE defines, and make findoidlinks handle regproc.
parent
22b370e6
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
60 additions
and
195 deletions
+60
-195
contrib/findoidjoins/README
contrib/findoidjoins/README
+38
-15
contrib/findoidjoins/findoidjoins.c
contrib/findoidjoins/findoidjoins.c
+19
-9
src/include/catalog/pg_am.h
src/include/catalog/pg_am.h
+1
-10
src/include/catalog/pg_amop.h
src/include/catalog/pg_amop.h
+1
-138
src/include/catalog/pg_amproc.h
src/include/catalog/pg_amproc.h
+1
-23
No files found.
contrib/findoidjoins/README
View file @
22cc0e16
...
...
@@ -7,60 +7,83 @@ they join to. PostgreSQL version 6.3.2 crashes with aggregates on
views, so I have removed the view pg_user from the list of relations to
examine.
It requires /pgsql/contrib/pginterface to be compiled first.
Run on am empty database, it returns the system join relationships:
---------------------------------------------------------------------------
Join pg_aggregate.aggbasetype => pg_proc.oid
Join pg_aggregate.aggbasetype => pg_type.oid
Join pg_aggregate.aggfinalfn => pg_proc.oid
Join pg_aggregate.aggfinaltype => pg_proc.oid
Join pg_aggregate.aggfinaltype => pg_type.oid
Join pg_aggregate.aggowner => pg_proc.oid
Join pg_aggregate.agg
basetype
=> pg_proc.oid
Join pg_aggregate.agg
basetype => pg_type
.oid
Join pg_aggregate.agg
transfn1
=> pg_proc.oid
Join pg_aggregate.agg
transfn2 => pg_proc
.oid
Join pg_aggregate.aggtranstype1 => pg_proc.oid
Join pg_aggregate.aggtranstype1 => pg_type.oid
Join pg_aggregate.aggtranstype2 => pg_type.oid
Join pg_am.ambeginscan => pg_proc.oid
Join pg_am.ambuild => pg_proc.oid
Join pg_am.amdelete => pg_proc.oid
Join pg_am.amendscan => pg_proc.oid
Join pg_am.amgettuple => pg_proc.oid
Join pg_am.aminsert => pg_proc.oid
Join pg_am.ammarkpos => pg_proc.oid
Join pg_am.amowner => pg_proc.oid
Join pg_am.amrescan => pg_proc.oid
Join pg_am.amrestrpos => pg_proc.oid
Join pg_amop.amopclaid => pg_opclass.oid
Join pg_amop.amopid => pg_am.oid
Join pg_amop.amopnpages => pg_proc.oid
Join pg_amop.amopopr => pg_operator.oid
Join pg_amop.amopclaid => pg_opclass.oid
Join pg_amproc.amproc => pg_operator.oid
Join pg_amproc.amproc => pg_proc.oid
Join pg_amop.amopselect => pg_proc.oid
Join pg_amproc.amid => pg_am.oid
Join pg_amproc.amopclaid => pg_opclass.oid
Join pg_amproc.amopclaid => pg_operator.oid
Join pg_amproc.amopclaid => pg_proc.oid
Join pg_amproc.amid => pg_am.oid
Join pg_amproc.amproc => pg_operator.oid
Join pg_amproc.amproc => pg_proc.oid
Join pg_attribute.attrelid => pg_class.oid
Join pg_attribute.atttypid => pg_type.oid
Join pg_class.relam => pg_am.oid
Join pg_class.reltype => pg_type.oid
Join pg_class.relowner => pg_proc.oid
Join pg_class.reltype => pg_type.oid
Join pg_description.objoid => pg_proc.oid
Join pg_description.objoid => pg_type.oid
Join pg_index.indexrelid => pg_class.oid
Join pg_index.indrelid => pg_class.oid
Join pg_index.indproc => pg_proc.oid
Join pg_index.indrelid => pg_class.oid
Join pg_opclass.opcdeftype => pg_type.oid
Join pg_operator.oprcode => pg_proc.oid
Join pg_operator.oprcom => pg_operator.oid
Join pg_operator.oprrsortop => pg_operator.oid
Join pg_operator.oprjoin => pg_proc.oid
Join pg_operator.oprleft => pg_type.oid
Join pg_operator.oprlsortop => pg_operator.oid
Join pg_operator.oprnegate => pg_operator.oid
Join pg_operator.oprowner => pg_proc.oid
Join pg_operator.oprrest => pg_proc.oid
Join pg_operator.oprresult => pg_type.oid
Join pg_operator.oprright => pg_type.oid
Join pg_operator.oprleft => pg_type.oid
Join pg_operator.oprowner => pg_proc.oid
Join pg_parg.partype => pg_type.oid
Join pg_operator.oprrsortop => pg_operator.oid
Join pg_parg.parproid => pg_operator.oid
Join pg_parg.parproid => pg_proc.oid
Join pg_parg.partype => pg_type.oid
Join pg_proc.prolang => pg_language.oid
Join pg_proc.prorettype => pg_type.oid
Join pg_proc.proowner => pg_proc.oid
Join pg_proc.prorettype => pg_type.oid
Join pg_rewrite.ev_class => pg_class.oid
Join pg_statistic.starelid => pg_class.oid
Join pg_type.typrelid => pg_class.oid
Join pg_type.typowner => pg_proc.oid
Join pg_type.typelem => pg_operator.oid
Join pg_type.typelem => pg_proc.oid
Join pg_type.typelem => pg_type.oid
Join pg_type.typinput => pg_proc.oid
Join pg_type.typoutput => pg_proc.oid
Join pg_type.typowner => pg_proc.oid
Join pg_type.typreceive => pg_proc.oid
Join pg_type.typrelid => pg_class.oid
Join pg_type.typsend => pg_proc.oid
---------------------------------------------------------------------------
...
...
contrib/findoidjoins/findoidjoins.c
View file @
22cc0e16
...
...
@@ -4,6 +4,7 @@
*/
#include <stdio.h>
#include <string.h>
#include "halt.h"
#include <libpq-fe.h>
#include "pginterface.h"
...
...
@@ -17,6 +18,7 @@ main(int argc, char **argv)
char
relname
[
256
];
char
relname2
[
256
];
char
attname
[
256
];
char
typname
[
256
];
int
count
;
if
(
argc
!=
2
)
...
...
@@ -29,14 +31,15 @@ main(int argc, char **argv)
doquery
(
"BEGIN WORK"
);
doquery
(
"\
DECLARE c_attributes BINARY CURSOR FOR \
SELECT relname, a.attname \
SELECT
typname,
relname, a.attname \
FROM pg_class c, pg_attribute a, pg_type t \
WHERE a.attnum > 0 AND \
relkind = 'r' AND \
typname = 'oid' AND \
(typname = 'oid' OR \
typname = 'regproc') AND \
a.attrelid = c.oid AND \
a.atttypid = t.oid \
ORDER BY
1
; \
ORDER BY
2, 3
; \
"
);
doquery
(
"FETCH ALL IN c_attributes"
);
attres
=
get_result
();
...
...
@@ -53,18 +56,25 @@ main(int argc, char **argv)
relres
=
get_result
();
set_result
(
attres
);
while
(
fetch
(
relname
,
attname
)
!=
END_OF_TUPLES
)
while
(
fetch
(
typname
,
relname
,
attname
)
!=
END_OF_TUPLES
)
{
set_result
(
relres
);
reset_fetch
();
while
(
fetch
(
relname2
)
!=
END_OF_TUPLES
)
{
unset_result
(
relres
);
if
(
strcmp
(
typname
,
"oid"
)
==
0
)
sprintf
(
query
,
"\
DECLARE c_matches BINARY CURSOR FOR \
SELECT count(*)
FROM %s t1, %s t2 \
WHERE t1.%s = t2.oid"
,
relname
,
relname2
,
attname
);
else
sprintf
(
query
,
"\
DECLARE c_matches BINARY CURSOR FOR \
SELECT count(*)
FROM %s t1, %s t2 \
WHERE RegprocToOid(t1.%s) = t2.oid"
,
relname
,
relname2
,
attname
);
doquery
(
query
);
doquery
(
"FETCH ALL IN c_matches"
);
...
...
src/include/catalog/pg_am.h
View file @
22cc0e16
...
...
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: pg_am.h,v 1.
5 1997/11/13 03:22:57
momjian Exp $
* $Id: pg_am.h,v 1.
6 1998/08/11 05:32:43
momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
...
...
@@ -109,13 +109,4 @@ DESCR("");
DATA
(
insert
OID
=
783
(
gist
PGUID
"o"
100
7
gistgettuple
gistinsert
gistdelete
-
-
-
-
gistbeginscan
gistrescan
gistendscan
gistmarkpos
gistrestrpos
-
-
gistbuild
-
-
));
DESCR
(
""
);
BKI_BEGIN
#ifdef NOBTREE
BKI_END
DATA
(
insert
OID
=
404
(
nobtree
PGUID
"o"
5
1
nobtgettuple
nobtinsert
nobtdelete
-
-
-
-
nobtbeginscan
nobtrescan
nobtendscan
nobtmarkpos
nobtrestrpos
-
-
nobtbuild
-
-
));
DESCR
(
""
);
BKI_BEGIN
#endif
/* NOBTREE */
BKI_END
#endif
/* PG_AM_H */
src/include/catalog/pg_amop.h
View file @
22cc0e16
...
...
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: pg_amop.h,v 1.1
2 1998/04/26 04:08:52
momjian Exp $
* $Id: pg_amop.h,v 1.1
3 1998/08/11 05:32:45
momjian Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
...
...
@@ -318,143 +318,6 @@ DATA(insert OID = 0 ( 403 1313 1330 3 btreesel btreenpage ));
DATA
(
insert
OID
=
0
(
403
1313
1335
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
403
1313
1334
5
btreesel
btreenpage
));
BKI_BEGIN
#ifdef NOBTREE
BKI_END
/*
* nobtree int2_ops
*/
DATA
(
insert
OID
=
0
(
404
421
95
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
421
522
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
421
94
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
421
524
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
421
520
5
btreesel
btreenpage
));
/*
* nobtree float8_ops
*/
DATA
(
insert
OID
=
0
(
404
423
672
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
423
673
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
423
670
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
423
675
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
423
674
5
btreesel
btreenpage
));
/*
* nobtree int24_ops
*/
DATA
(
insert
OID
=
0
(
404
424
534
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
424
540
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
424
532
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
424
542
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
424
536
5
btreesel
btreenpage
));
/*
* nobtree int42_ops
*/
DATA
(
insert
OID
=
0
(
404
425
535
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
425
541
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
425
533
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
425
543
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
425
537
5
btreesel
btreenpage
));
/*
* nobtree int4_ops
*/
DATA
(
insert
OID
=
0
(
404
426
97
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
426
523
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
426
96
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
426
525
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
426
521
5
btreesel
btreenpage
));
/*
* nobtree oid_ops
*/
DATA
(
insert
OID
=
0
(
404
427
609
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
427
611
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
427
607
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
427
612
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
427
610
5
btreesel
btreenpage
));
/*
* nobtree float4_ops
*/
DATA
(
insert
OID
=
0
(
404
428
622
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
428
624
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
428
620
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
428
625
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
428
623
5
btreesel
btreenpage
));
/*
* nobtree char_ops
*/
DATA
(
insert
OID
=
0
(
404
429
631
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
429
632
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
429
92
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
429
634
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
429
633
5
btreesel
btreenpage
));
/*
* nobtree name_ops
*/
DATA
(
insert
OID
=
0
(
404
1181
660
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1181
661
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1181
93
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1181
663
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1181
662
5
btreesel
btreenpage
));
/*
* nobtree text_ops
*/
DATA
(
insert
OID
=
0
(
404
431
664
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
431
665
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
431
98
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
431
667
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
431
666
5
btreesel
btreenpage
));
/*
* nobtree abstime_ops
*/
DATA
(
insert
OID
=
0
(
404
432
562
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
432
564
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
432
560
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
432
565
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
432
563
5
btreesel
btreenpage
));
/*
* nobtree datetime_ops
*/
DATA
(
insert
OID
=
0
(
404
1312
1322
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1312
1323
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1312
1320
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1312
1325
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1312
1324
5
btreesel
btreenpage
));
/*
* nobtree timespan_ops
*/
DATA
(
insert
OID
=
0
(
404
1313
1332
1
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1313
1333
2
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1313
1330
3
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1313
1335
4
btreesel
btreenpage
));
DATA
(
insert
OID
=
0
(
404
1313
1334
5
btreesel
btreenpage
));
BKI_BEGIN
#endif
/* NOBTREE */
BKI_END
/*
* hash table _ops
*/
...
...
src/include/catalog/pg_amproc.h
View file @
22cc0e16
...
...
@@ -9,7 +9,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: pg_amproc.h,v 1.
7 1997/11/30 22:58:07 thomas
Exp $
* $Id: pg_amproc.h,v 1.
8 1998/08/11 05:32:46 momjian
Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
...
...
@@ -96,28 +96,6 @@ DATA(insert OID = 0 (403 1115 1107 1));
DATA
(
insert
OID
=
0
(
403
1312
1314
1
));
DATA
(
insert
OID
=
0
(
403
1313
1315
1
));
BKI_BEGIN
#ifdef NOBTREE
BKI_END
DATA
(
insert
OID
=
0
(
404
421
350
1
));
DATA
(
insert
OID
=
0
(
404
423
355
1
));
DATA
(
insert
OID
=
0
(
404
424
353
1
));
DATA
(
insert
OID
=
0
(
404
425
352
1
));
DATA
(
insert
OID
=
0
(
404
426
351
1
));
DATA
(
insert
OID
=
0
(
404
427
356
1
));
DATA
(
insert
OID
=
0
(
404
428
354
1
));
DATA
(
insert
OID
=
0
(
404
429
358
1
));
DATA
(
insert
OID
=
0
(
404
406
689
1
));
DATA
(
insert
OID
=
0
(
404
407
690
1
));
DATA
(
insert
OID
=
0
(
404
408
691
1
));
DATA
(
insert
OID
=
0
(
404
1181
359
1
));
DATA
(
insert
OID
=
0
(
404
430
1274
1
));
DATA
(
insert
OID
=
0
(
404
431
360
1
));
DATA
(
insert
OID
=
0
(
404
432
357
1
));
BKI_BEGIN
#endif
/* NOBTREE */
BKI_END
DATA
(
insert
OID
=
0
(
405
421
449
1
));
DATA
(
insert
OID
=
0
(
405
423
452
1
));
DATA
(
insert
OID
=
0
(
405
426
450
1
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment