summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorBruce Momjian1997-09-08 04:14:01 +0000
committerBruce Momjian1997-09-08 04:14:01 +0000
commit125079e6d7f96d67bfa751560525fc96a57a5f6d (patch)
tree6a624145f6b11bd6dfc5e27e016e704b5f490a88 /src/tools
parent23db70bf73ed913df0c8fda1e43ffe40b8980735 (diff)
Reorganize developers files.
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/BACKEND_DIRS47
-rwxr-xr-xsrc/tools/find_static43
-rwxr-xr-xsrc/tools/find_typedef27
-rw-r--r--src/tools/make_diff/README35
-rwxr-xr-xsrc/tools/make_diff/cporig8
-rwxr-xr-xsrc/tools/make_diff/difforig11
-rwxr-xr-xsrc/tools/make_diff/rmorig6
7 files changed, 177 insertions, 0 deletions
diff --git a/src/tools/BACKEND_DIRS b/src/tools/BACKEND_DIRS
new file mode 100644
index 0000000000..92131e128f
--- /dev/null
+++ b/src/tools/BACKEND_DIRS
@@ -0,0 +1,47 @@
+access various index access methods
+access/common common access routines
+access/gist easy-to-define access method system
+access/hash hash
+access/heap heap
+access/index index handling
+access/nbtree btree
+access/rtree rtree
+access/transam transaction manager (BEGIN/ABORT/COMMIT)
+bootstrap handles initdb requests to create initial template database
+catalog system catalog manipulation
+commands commands that do not require executor
+executor executes complex node plans from optimizer
+include include files
+lib support library
+libpq communication to client libpq library routines
+main passes control to postmaster or postgres
+nodes creation/manipulation of nodes
+optimizer creates path and plan
+optimizer/path creates path from parser output
+optimizer/plan optmizes path output
+optimizer/prep handle special plan cases
+optimizer/util optimizer support routines
+parser converts SQL query to query tree
+postmaster controls postgres server startup/termination
+regex regular expression library
+rewrite rules system
+storage manages various storage systems
+storage/buffer shared buffer pool manager
+storage/file file manager
+storage/ipc semaphores and shared memory
+storage/large_object large objects
+storage/lmgr lock manager
+storage/page page manager
+storage/smgr storage(disk) manager
+tcop traffic cop, dispatches request to proper module
+tioga array handling?
+utils support routines
+utils/adt built-in data type routines
+utils/cache system/relation/function cache routines
+utils/error error reporting routines
+utils/fmgr function manager
+utils/hash hash routines for internal algorithms
+utils/init initialization stuff
+utils/mmgr memory manager(process-local memory)
+utils/sort sort routines for internal algorithms
+utils/time transaction time qualification routines
diff --git a/src/tools/find_static b/src/tools/find_static
new file mode 100755
index 0000000000..bce75a2bf6
--- /dev/null
+++ b/src/tools/find_static
@@ -0,0 +1,43 @@
+#!/bin/sh
+trap "rm -f /tmp/$$" 0 1 2 3 15
+
+# This script finds functions that are either never called, or
+# should be static.
+# Some functions, like library functions and debug_print functions,
+# should remain unchanged.
+
+# Run on a compiled source tree, from the top of the source tree
+
+# My nm utility has 9 characters of address which I strip, then a 'type'
+# character, with T as a text function, and U as an undefined function
+# symbol, then the function name.
+
+find . -name '[a-z]*.o' -type f -print | while read FILE
+do
+ nm $FILE | cut -c10-100 |awk '{printf "%s\t%s\t%s\n", "'"$FILE"'",$1,$2}'
+done >/tmp/$$
+destroydb debug
+createdb debug
+echo "
+ create table debug (file text, scope char, func text);
+
+ copy debug from '/tmp/"$$"';
+
+ select *
+ into table debug2
+ from debug;
+
+ update debug2
+ set scope = '_'
+ from debug
+ where debug2.func = debug.func and
+ debug2.scope = 'T' and debug.scope = 'U';
+
+ delete from debug2
+ where scope = '_';
+
+ select *
+ from debug2
+ where scope = 'T';
+" |psql debug
+
diff --git a/src/tools/find_typedef b/src/tools/find_typedef
new file mode 100755
index 0000000000..3017da5b70
--- /dev/null
+++ b/src/tools/find_typedef
@@ -0,0 +1,27 @@
+#!/bin/sh
+# This script attempts to find all typedef's in the postgres binaries
+# by using 'nm' to report all typedef debugging symbols.
+#
+# For this program to work, you must have compiled all binaries with
+# debugging symbols.
+#
+# This is run on BSD/OS 3.0, so you may need to make changes for your
+# version of nm.
+#
+# Ignore the nm errors about a file not being a binary file.
+#
+# Remember, debugging symbols are your friends.
+#
+
+if [ "$#" -ne 1 -o ! -d "$1" ]
+then echo "Usage: $0 postgres_binary_directory" 1>&2
+ exit 1
+fi
+
+nm -a "$1"/* |
+grep LSYM |
+grep ':t' |
+sed 's/^.*LSYM \([^:]*\):.*$/\1/' |
+grep -v ' ' | # some typedefs have spaces, revove them
+sort |
+uniq
diff --git a/src/tools/make_diff/README b/src/tools/make_diff/README
new file mode 100644
index 0000000000..59e87c020e
--- /dev/null
+++ b/src/tools/make_diff/README
@@ -0,0 +1,35 @@
+Bruce Momjian <maillist@candle.pha.pa.us>
+
+Here are some of the scripts I use to make development easier.
+
+First, I use 'cporig' on every file I am about to change. This makes a
+copy with the extension .orig. If an .orig already exists, I am warned.
+
+I can get really fancy with this. I can do 'cporig *' and make a .orig
+for every file in the current directory. I can:
+
+ cporig `grep -l HeapTuple *`
+
+If I use mkid (from ftp.postgreSQL.org), I can do:
+
+ cporig `lid -kn 'fsyncOff'`
+
+and get a copy of every file containing that word. I can then do:
+
+ vi `find . -name '*.orig'`
+
+or even better (using mkid):
+
+ eid fsyncOff
+
+to edit all those files.
+
+When I am ready to generate a patch, I run 'difforig' command from the top of
+the source tree:
+
+I pipe the output of this to a file to hold my patch, and the file names
+it processes appear on my screen. It creates a nice patch for me of all
+the files I used with cporig.
+
+Finally, I remove my old copies with 'rmorig'.
+
diff --git a/src/tools/make_diff/cporig b/src/tools/make_diff/cporig
new file mode 100755
index 0000000000..0b188ac3e5
--- /dev/null
+++ b/src/tools/make_diff/cporig
@@ -0,0 +1,8 @@
+:
+for FILE
+do
+ if [ ! -f "$FILE.orig" ]
+ then cp $FILE $FILE.orig
+ else echo "$FILE.orig exists" 1>&2
+ fi
+done
diff --git a/src/tools/make_diff/difforig b/src/tools/make_diff/difforig
new file mode 100755
index 0000000000..a70b8bed4e
--- /dev/null
+++ b/src/tools/make_diff/difforig
@@ -0,0 +1,11 @@
+:
+if [ "$#" -eq 0 ]
+then APATH="."
+else APATH="$1"
+fi
+find $APATH -name '*.orig' -print | sort | while read FILE
+do
+ NEW="`dirname $FILE`/`basename $FILE .orig`"
+ echo "$NEW" 1>&2
+ diff -c $FILE $NEW
+done
diff --git a/src/tools/make_diff/rmorig b/src/tools/make_diff/rmorig
new file mode 100755
index 0000000000..f6d0d4eff6
--- /dev/null
+++ b/src/tools/make_diff/rmorig
@@ -0,0 +1,6 @@
+:
+if [ "$#" -eq 0 ]
+then APATH="."
+else APATH="$1"
+fi
+find $APATH -name '*.orig' -exec rm {} \;