Commit 3d146180 authored by Tom Lane's avatar Tom Lane

Dump contents of pg_group along with pg_shadow.

parent 570a58f4
...@@ -2,10 +2,12 @@ ...@@ -2,10 +2,12 @@
# #
# pg_dumpall [pg_dump parameters] # pg_dumpall [pg_dump parameters]
# dumps all databases to standard output # dumps all databases to standard output
# It also dumps the pg_shadow table # It also dumps the pg_shadow and pg_group tables, which belong to the
# whole installation rather than any one individual database.
#
# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall,v 1.25 2000/05/05 03:04:00 tgl Exp $
# #
# to adapt to System V vs. BSD 'echo' # to adapt to System V vs. BSD 'echo'
#set -x
if echo '\\' | grep '\\\\' >/dev/null 2>&1 if echo '\\' | grep '\\\\' >/dev/null 2>&1
then then
BS='\' # BSD BS='\' # BSD
...@@ -36,6 +38,8 @@ echo "delete from pg_shadow where usesysid <> tmp_pg_shadow.datdba;" ...@@ -36,6 +38,8 @@ echo "delete from pg_shadow where usesysid <> tmp_pg_shadow.datdba;"
echo "drop table tmp_pg_shadow;" echo "drop table tmp_pg_shadow;"
# #
# load all the non-postgres users # load all the non-postgres users
# XXX this breaks badly if the layout of pg_shadow ever changes.
# It'd be better to convert the data into CREATE USER commands.
# #
echo "copy pg_shadow from stdin;" echo "copy pg_shadow from stdin;"
psql -q template1 <<END psql -q template1 <<END
...@@ -47,6 +51,19 @@ copy tmp_pg_shadow to stdout; ...@@ -47,6 +51,19 @@ copy tmp_pg_shadow to stdout;
drop table tmp_pg_shadow; drop table tmp_pg_shadow;
END END
echo "${BS}." echo "${BS}."
#
# copy the pg_group table too
# XXX this breaks badly if the layout of pg_group ever changes.
# It'd be better to convert the data into CREATE GROUP commands.
#
echo "copy pg_group from stdin;"
psql -q template1 <<END
copy pg_group to stdout;
END
echo "${BS}."
#
# For each database, run pg_dump to dump the contents of that database.
#
psql -A -q -t -c "select * from pg_database" template1 | grep '|' | tr '|' ' ' | \ psql -A -q -t -c "select * from pg_database" template1 | grep '|' | tr '|' ' ' | \
grep -v '^template1 ' | \ grep -v '^template1 ' | \
while read DATABASE DBUSERID ENCODING DATAPATH while read DATABASE DBUSERID ENCODING DATAPATH
...@@ -73,3 +90,5 @@ do ...@@ -73,3 +90,5 @@ do
exit 1 exit 1
fi fi
done done
exit 0
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment