1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-02 04:21:28 +03:00

Reorganize developers files.

This commit is contained in:
Bruce Momjian
1997-09-08 04:14:01 +00:00
parent 23db70bf73
commit 125079e6d7
12 changed files with 56 additions and 109 deletions

47
src/tools/BACKEND_DIRS Normal file
View File

@@ -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

43
src/tools/find_static Executable file
View File

@@ -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

27
src/tools/find_typedef Executable file
View File

@@ -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

View File

@@ -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'.

8
src/tools/make_diff/cporig Executable file
View File

@@ -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

11
src/tools/make_diff/difforig Executable file
View File

@@ -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

6
src/tools/make_diff/rmorig Executable file
View File

@@ -0,0 +1,6 @@
:
if [ "$#" -eq 0 ]
then APATH="."
else APATH="$1"
fi
find $APATH -name '*.orig' -exec rm {} \;