From 26a23e33db0f6b7a49f95fd4b422ec06fb776880 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sun, 13 Dec 1998 05:22:58 +0000 Subject: [PATCH] Add enable_plpgsql from Oliver. --- src/pl/plpgsql/enable_plpgsql | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/pl/plpgsql/enable_plpgsql diff --git a/src/pl/plpgsql/enable_plpgsql b/src/pl/plpgsql/enable_plpgsql new file mode 100644 index 0000000000..efd2cf1973 --- /dev/null +++ b/src/pl/plpgsql/enable_plpgsql @@ -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 + + +