diff options
Diffstat (limited to 'src/bin/scripts/droplang')
-rw-r--r-- | src/bin/scripts/droplang | 47 |
1 files changed, 35 insertions, 12 deletions
diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang index e06051d5d0a..04b9f7344a4 100644 --- a/src/bin/scripts/droplang +++ b/src/bin/scripts/droplang @@ -1,15 +1,13 @@ -#!/bin/sh +#! /bin/sh #------------------------------------------------------------------------- # -# createlang-- -# Remove a procedural language from a database +# droplang -- +# Remove a procedural language from a database # # Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California # -# -# IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.13 2001/02/18 18:34:01 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.14 2001/05/09 22:08:19 petere Exp $ # #------------------------------------------------------------------------- @@ -21,6 +19,7 @@ dbname= langname= echo= list= +showsql= # Check for echo -n vs echo \c @@ -87,6 +86,9 @@ do --dbname=*) dbname=`echo "$1" | sed 's/^--dbname=//'` ;; + --echo|-e) + showsql=yes + ;; -*) echo "$CMDNAME: invalid option: $1" 1>&2 @@ -128,7 +130,11 @@ fi if [ "$list" ]; then - ${PATHNAME}psql $PSQLOPT -d "$dbname" -P 'title=Procedural languages' -c "SELECT lanname as \"Name\", lanpltrusted as \"Trusted?\", lancompiler as \"Compiler\" FROM pg_language WHERE lanispl = 't'" + sqlcmd="SELECT lanname as \"Name\", lanpltrusted as \"Trusted?\", lancompiler as \"Compiler\" FROM pg_language WHERE lanispl = 't'" + if [ "$showsql" = yes ]; then + echo "$sqlcmd" + fi + ${PATHNAME}psql $PSQLOPT -d "$dbname" -P 'title=Procedural languages' -c "$sqlcmd" exit $? fi @@ -138,7 +144,7 @@ fi # ---------- if [ -z "$dbname" ]; then echo "$CMDNAME: missing required argument database name" 1>&2 - echo "Try '$CMDNAME -?' for help." 1>&2 + echo "Try '$CMDNAME --help' for help." 1>&2 exit 1 fi @@ -185,7 +191,11 @@ PSQL="${PATHNAME}psql -A -t -q $PSQLOPT -d $dbname -c" # ---------- # Make sure the language is installed # ---------- -res=`$PSQL "SELECT oid FROM pg_language WHERE lanname = '$langname'"` +sqlcmd="SELECT oid FROM pg_language WHERE lanname = '$langname';" +if [ "$showsql" = yes ]; then + echo "$sqlcmd" +fi +res=`$PSQL "$sqlcmd"` if [ $? -ne 0 ]; then echo "$CMDNAME: external error" 1>&2 exit 1 @@ -199,7 +209,11 @@ fi # ---------- # Check that there are no functions left defined in that language # ---------- -res=`$PSQL "SELECT COUNT(proname) FROM pg_proc P, pg_language L WHERE P.prolang = L.oid AND L.lanname = '$langname'"` +sqlcmd="SELECT COUNT(proname) FROM pg_proc P, pg_language L WHERE P.prolang = L.oid AND L.lanname = '$langname';" +if [ "$showsql" = yes ]; then + echo "$sqlcmd" +fi +res=`$PSQL "$sqlcmd"` if [ $? -ne 0 ]; then echo "$CMDNAME: external error" 1>&2 exit 1 @@ -213,12 +227,21 @@ fi # ---------- # Drop the language and the call handler function # ---------- -$PSQL "DROP PROCEDURAL LANGUAGE '$langname'" +sqlcmd="DROP PROCEDURAL LANGUAGE '$langname';" +if [ "$showsql" = yes ]; then + echo "$sqlcmd" +fi +$PSQL "$sqlcmd" if [ $? -ne 0 ]; then echo "$CMDNAME: language removal failed" 1>&2 exit 1 fi -$PSQL "DROP FUNCTION $handler()" + +sqlcmd="DROP FUNCTION $handler();" +if [ "$showsql" = yes ]; then + echo "$sqlcmd" +fi +$PSQL "$sqlcmd" if [ $? -ne 0 ]; then echo "$CMDNAME: language removal failed" 1>&2 exit 1 |