export PGPASSWORD=ur2good

if [ -z "$1" ]; then
    echo "usage: $0 DATABASE" >&2;
    exit 1
fi

database=$1;

psql -t -d $database -c "SELECT 'DROP SEQUENCE ' || n.nspname || '.' ||
c.relname || ' CASCADE;' FROM pg_catalog.pg_class AS c LEFT JOIN
pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE relkind =
'S' AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND
pg_catalog.pg_table_is_visible(c.oid)" > /tmp/droptables

psql -t -d $database -c "SELECT 'DROP TABLE ' || n.nspname || '.' ||
c.relname || ' CASCADE;' FROM pg_catalog.pg_class AS c LEFT JOIN
pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE relkind =
'r' AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND
pg_catalog.pg_table_is_visible(c.oid)" >> /tmp/droptables

psql -t -d $database -c "SELECT 'DROP FUNCTION ' || ns.nspname || '.' ||
proname || '(' || oidvectortypes(proargtypes) || ');' FROM pg_proc INNER JOIN
pg_namespace ns ON (pg_proc.pronamespace = ns.oid) WHERE ns.nspname = 'public'
order by proname;" >> /tmp/droptables

psql -d $database -f /tmp/droptables

rm /tmp/droptables
