From 26a23e33db0f6b7a49f95fd4b422ec06fb776880 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
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 00000000000..efd2cf1973d
--- /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
+
+
+
-- 
GitLab