A couple of development scripts by Dan to detect unused and duplicate
authorMarc G. Fournier <scrappy@hub.org>
Sat, 15 Mar 1997 06:03:08 +0000 (06:03 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Sat, 15 Mar 1997 06:03:08 +0000 (06:03 +0000)
oids

src/include/catalog/duplicate_oids [new file with mode: 0755]
src/include/catalog/unused_oids [new file with mode: 0755]

diff --git a/src/include/catalog/duplicate_oids b/src/include/catalog/duplicate_oids
new file mode 100755 (executable)
index 0000000..caf43a8
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# duplicate_oids
+#
+# finds oids that are duplicated in the system tables.
+#
+
+egrep '^DATA' pg_*.h | \
+   sed -e 's/^.*OID[^=]*=[^0-9]*//' -e 's/[^0-9].*$//' | \
+   sort -n >/tmp/alloids.$$
+uniq /tmp/alloids.$$ >/tmp/uniqoids.$$
+diff -u /tmp/alloids.$$ /tmp/uniqoids.$$ | \
+   grep -v '/tmp/' | \
+   grep '^-' | \
+   sed -e 's/^-//' | \
+   grep -v '^0$' | \
+   uniq
+rm /tmp/alloids.$$
+rm /tmp/uniqoids.$$
+
diff --git a/src/include/catalog/unused_oids b/src/include/catalog/unused_oids
new file mode 100755 (executable)
index 0000000..a30191d
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+# unused_oids
+#
+# $Header: /cvsroot/pgsql/src/include/catalog/unused_oids,v 1.1 1997/03/15 06:03:08 scrappy Exp $
+#
+#  finds blocks of oids that have not already been claimed by 
+#  post_hackers for internal purposes.  primarily useful for
+#  finding valid oids for new internal function oids.  the numbers
+#  printed are inclusive ranges of valid (unused) oids.
+#
+#  before using a large empty block, make sure you aren't about
+#  to take over what was intended as expansion space for something
+#  else.  also, before using a number, do a "grepsrc" to make sure 
+#  that someone isn't using a literal numeric constant somewhere..
+#
+#  non-berkeley post_hackers should probably not try to use oids 
+#  less than the highest one that comes with the distributed source.
+#
+#  run this script in src/backend/catalog.
+#
+egrep '^DATA' pg_*.h | \
+   sed -e 's/^.*OID[^=]*=[^0-9]*//' -e 's/[^0-9].*$//' | \
+   sort -n | \
+   uniq | \
+   awk '
+BEGIN {
+   last = 0;
+}
+/^[0-9]/ {
+   if ($1 > last + 1) {
+       if ($1 > last + 2) {
+           print last + 1, "-", $1 - 1;
+       } else {
+           print last + 1;
+       }
+   }
+   last = $1;
+}
+END {
+   print last + 1, "-";
+}'