This is pg_edit.sh in view mode; [Download] [Up]
#! /bin/sh # # this script is useful for editing the contains of a relation # in your favorite editor. NOTE: THIS SHOULD NOT BE THE GENERAL # TOOL FOR DATABASE UPDATES SINCE YOU CAN DESTROY THE INTEGRITY # OF YOUR DATABASE. # # pg_edit.sh,v 1.1 1993/02/18 23:29:29 aoki Exp # # pg_edit.sh,v # Revision 1.1 1993/02/18 23:29:29 aoki # Initial revision # # Revision 1.1 1992/08/13 11:43:01 schoenw # Initial revision # # sep=":::" if [ $# -ne 2 ] ; then echo "usage: reledit relation database" exit 42 fi db=$2 rel=$1 tmp=/tmp/$rel.$$ # check the database err=`spog -n -c "retrieve (pg_version.all)" $db | grep FATAL` if [ "X$err" != "X" ] ; then echo "No such database $db." echo $err exit 42 fi # check the relation err=`spog -n -c "retrieve ($rel.all) where 1=0" $db | grep failed` if [ "X$err" != "X" ] ; then echo "No such relation $rel." echo $err exit 42 fi # get the attributes of this relation (remove system attributes) attnames=`( echo "format attribute attname \"%s\"" echo "format attribute typname \"::%s\"" echo "retrieve (a.attname, t.typname) from a in pg_attribute, t in pg_type, r in pg_class where a.attrelid = r.oid and a.atttypid = t.oid and r.relname = \"$rel\"" ) | spog -n -f - $db ` attnames=`echo $attnames| awk '{ for (i=1;i<=NF-12;i++) print $i }'` if [ $? -ne 0 ] ; then echo "cant open $db" exit 42 fi ( echo "format global \"$sep%s\"" ##echo "format type oid \"%s\"" echo "retrieve ($rel.oid,$rel.all)" ) | spog -n -f - $db > $tmp cp $tmp $tmp.new vi $tmp.new echo $attnames > $tmp.newlines diff $tmp $tmp.new | grep "^>" >> $tmp.newlines rm -f $tmp $tmp.new gawk ' \ NF==1 { split($0,attnames,/ /)}; \ NF>1 { gsub(/> /,""); \ printf("replace %s(", rel); \ for (i in attnames) { \ split(attnames[i],aa,/::/) \ name = aa[1]; type = aa[2]; \ if (i > 1 ) printf (","); \ printf ("%s=\"%s\"::%s",name, $(i+2), type); \ } \ printf (") where %s.oid = %s::oid\n", rel, $2); \ }' FS=$sep rel=$rel $tmp.newlines | spog -n -f - $db rm -f $tmp.newlines
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.