|
1 |
| -#!/bin/sh |
2 |
| -# |
3 |
| -# duplicate_oids |
4 |
| -# |
5 |
| -# src/include/catalog/duplicate_oids |
6 |
| -# |
7 |
| -# finds manually-assigned oids that are duplicated in the system tables. |
8 |
| -# |
9 |
| -# run this script in src/include/catalog. |
10 |
| -# |
| 1 | +#!/usr/bin/perl |
11 | 2 |
|
12 |
| -# note: we exclude BKI_BOOTSTRAP relations since they are expected to have |
13 |
| -# matching DATA lines in pg_class.h and pg_type.h |
| 3 | +use strict; |
| 4 | +use warnings; |
14 | 5 |
|
15 |
| -cat pg_*.h toasting.h indexing.h| \ |
16 |
| -egrep -v -e'^CATALOG\(.*BKI_BOOTSTRAP'| \ |
17 |
| -sed -n-e's/^DATA(insert *OID *= *\([0-9][0-9]*\).*$/\1/p' \ |
18 |
| --e's/^CATALOG([^,]*, *\([0-9][0-9]*\).*BKI_ROWTYPE_OID(\([0-9][0-9]*\)).*$/\1,\2/p' \ |
19 |
| --e's/^CATALOG([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ |
20 |
| --e's/^DECLARE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ |
21 |
| --e's/^DECLARE_UNIQUE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \ |
22 |
| --e's/^DECLARE_TOAST([^,]*, *\([0-9][0-9]*\), *\([0-9][0-9]*\).*$/\1,\2/p'| \ |
23 |
| -tr',''\n'| \ |
24 |
| -sort -n| \ |
25 |
| -uniq -d| \ |
26 |
| -grep'.' |
| 6 | +BEGIN |
| 7 | +{ |
| 8 | +@ARGV = (glob("pg_*.h"),qw(indexing.h toasting.h)); |
| 9 | +} |
27 | 10 |
|
28 |
| -# nonzero exit code if lines were produced |
29 |
| -[$?-eq 1 ] |
30 |
| -exit |
| 11 | +my%oidcounts; |
| 12 | + |
| 13 | +while(<>) |
| 14 | +{ |
| 15 | +nextif/^CATALOG\(.*BKI_BOOTSTRAP/; |
| 16 | +nextunless |
| 17 | +/^DATA\(insert *OID *= *(\d+)/ || |
| 18 | +/^CATALOG\([^,]*, *(\d+).*BKI_ROWTYPE_OID\((\d+)\)/ || |
| 19 | +/^CATALOG\([^,]*, *(\d+)/ || |
| 20 | +/^DECLARE_INDEX\([^,]*, *(\d+)/ || |
| 21 | +/^DECLARE_UNIQUE_INDEX\([^,]*, *(\d+)/ || |
| 22 | +/^DECLARE_TOAST\([^,]*, *(\d+), *(\d+)/; |
| 23 | +$oidcounts{$1}++; |
| 24 | +$oidcounts{$2}++if$2; |
| 25 | +} |
| 26 | + |
| 27 | +my$found = 0; |
| 28 | + |
| 29 | +foreachmy$oid (sort {$a<=>$b}keys%oidcounts) |
| 30 | +{ |
| 31 | +nextunless$oidcounts{$oid} > 1; |
| 32 | +$found = 1; |
| 33 | +print"$oid\n"; |
| 34 | +} |
| 35 | + |
| 36 | +exit$found; |