enable_plpgsql
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. # Enable the PL procedural language for PostgreSQL in one or more
  3. # existing databases. 
  4. #
  5. # This script should be run by the PostgreSQL superuser
  6. enable_database() {
  7. if ! psql -d $1 -qtc "select count(*) from pg_language where lanname='plpgsql'" >$TMPFIL2 2>&1
  8. then
  9. echo "Cannot connect to $1"
  10. exit 2
  11. fi
  12. if [ `cat $TMPFIL2` -eq 0 ]
  13. then
  14. if ! psql -d $1 <$sqlfile
  15. then
  16. echo "Failed to add PL to $1"
  17. exit 2
  18. fi
  19. echo "PL added to $1"
  20. else
  21. echo "PL is already enabled in $1"
  22. fi
  23. }
  24. # Execution starts here
  25. TMPFILE=`mktemp /tmp/enable_pgpl.XXXXXX`
  26. TMPFIL2=`mktemp /tmp/enable_pgpl.XXXXXX`
  27. trap "rm $TMPFILE $TMPFIL2" EXIT
  28. sqlfile=${PGLIB:=/usr/local/pgsql/lib}/mklang_pl.sql
  29. if [ ! -f $sqlfile ]
  30. then
  31. echo "Cannot find mklang_pl.sql"
  32. exit 2
  33. fi
  34. if [ -z "$1" ]
  35. then
  36. echo "Syntax: $0 --all | database ..."
  37. exit 1
  38. fi
  39. if [ $1 = "--all" ]
  40. then
  41. if ! psql -t -c "select datname from pg_database order by datname" >$TMPFILE
  42. then
  43. echo Cannot select databases
  44. exit 2
  45. fi
  46. for db in `cat $TMPFILE`
  47. do
  48. enable_database $db
  49. done
  50. else
  51. while [ -n "$1" ]
  52. do
  53. db=$1
  54. enable_database $db
  55. shift
  56. done
  57. fi