#
# pg_dumpall [pg_dump parameters]
# 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'
-#set -x
if echo '\\' | grep '\\\\' >/dev/null 2>&1
then
BS='\' # BSD
echo "drop table tmp_pg_shadow;"
#
# 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;"
psql -q template1 <<END
drop table tmp_pg_shadow;
END
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 '|' ' ' | \
grep -v '^template1 ' | \
while read DATABASE DBUSERID ENCODING DATAPATH
exit 1
fi
done
+
+exit 0