#!/bin/sh

echo "** Patching user databases..."
psql template1 -A -t -c "SELECT datname FROM pg_database WHERE datallowconn ORDER BY datname" | while read D ; do
   echo "* Patching $D"
   psql $D -c "UPDATE pg_proc SET proacl='{=}' WHERE pronamespace=11 AND pronargs=5 AND proargtypes[2]='cstring'::regtype;"
   psql $D -c "UPDATE pg_proc SET proargtypes[0]='internal'::regtype WHERE oid IN ('dex_init(text)'::regprocedure,'snb_en_init(text)'::regprocedure,'snb_ru_init(text)'::regprocedure,'spell_init(text)'::regprocedure,'syn_init(text)'::regprocedure)"
done

echo "** Patching template0..."
psql template1 -c "UPDATE pg_database SET datallowconn=true WHERE datname='template0'"
psql template0 -c "UPDATE pg_proc SET proacl='{=}' WHERE pronamespace=11 AND pronargs=5 AND proargtypes[2]='cstring'::regtype"
psql template0 -c "VACUUM FREEZE"
psql template1 -c "UPDATE pg_database SET datallowconn=false WHERE datname='template0'"
