]> granicus.if.org Git - postgresql/commitdiff
Add enable_plpgsql from Oliver.
authorBruce Momjian <bruce@momjian.us>
Sun, 13 Dec 1998 05:22:58 +0000 (05:22 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 13 Dec 1998 05:22:58 +0000 (05:22 +0000)
src/pl/plpgsql/enable_plpgsql [new file with mode: 0644]

diff --git a/src/pl/plpgsql/enable_plpgsql b/src/pl/plpgsql/enable_plpgsql
new file mode 100644 (file)
index 0000000..efd2cf1
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Enable the PL procedural language for PostgreSQL in one or more
+# existing databases. 
+#
+# This script should be run by the PostgreSQL superuser
+
+enable_database() {
+       if ! psql -d $1 -qtc "select count(*) from pg_language where lanname='plpgsql'" >$TMPFIL2 2>&1
+       then
+               echo "Cannot connect to $1"
+               exit 2
+       fi
+       if [ `cat $TMPFIL2` -eq 0 ]
+       then
+               if ! psql -d $1 <$sqlfile
+               then
+                       echo "Failed to add PL to $1"
+                       exit 2
+               fi
+               echo "PL added to $1"
+       else
+               echo "PL is already enabled in $1"
+       fi
+
+}
+
+# Execution starts here
+
+TMPFILE=`mktemp /tmp/enable_pgpl.XXXXXX`
+TMPFIL2=`mktemp /tmp/enable_pgpl.XXXXXX`
+trap "rm $TMPFILE $TMPFIL2" EXIT
+
+sqlfile=${PGLIB:=/usr/local/pgsql/lib}/mklang_pl.sql
+if [ ! -f $sqlfile ]
+then
+       echo "Cannot find mklang_pl.sql"
+       exit 2
+fi
+
+if [ -z "$1" ]
+then
+       echo "Syntax: $0 --all | database ..."
+       exit 1
+fi
+
+if [ $1 = "--all" ]
+then
+       if ! psql -t -c "select datname from pg_database order by datname" >$TMPFILE
+       then
+               echo Cannot select databases
+               exit 2
+       fi
+       for db in `cat $TMPFILE`
+       do
+               enable_database $db
+       done
+else
+       while [ -n "$1" ]
+       do
+               db=$1
+               enable_database $db
+               shift
+       done
+fi
+
+
+