Siempre me he sentido mucho más cómodo creando un script sql que pueda revisar y probar antes de ejecutarlo que confiar en obtener el plpgsql correcto para que no destruya mi base de datos. Algo simple en bash que selecciona los nombres de las tablas del catálogo y luego crea las declaraciones de caída para mí. Entonces, para 8.4.x obtendría esta consulta básica:
SELECT 'drop table '||n.nspname ||'.'|| c.relname||';' as "Name"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','v','S','')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid);
A la que puede agregar una cláusula where. ( where c.relname ilike 'bubba%')
La salida se ve así:
Name
drop table public.a1;
drop table public.a2;
Entonces, guárdelo en un archivo .sql y ejecútelo con psql -f filename.sql