(database-query
(format nil
"SELECT relname FROM pg_class WHERE (relkind = '~A')~A"
+ #+nil
+ (if (not (eq owner :all))
+ ;; The below query fails on versions of postgresql
+ ;; (such as 7.4) that lack the pg_roles table
+ "
+ SELECT c.relname
+ FROM pg_catalog.pg_class c
+ LEFT JOIN pg_catalog.pg_roles r ON r.oid = c.relowner
+ LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
+ WHERE c.relkind IN ('~A','')
+ AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
+ AND pg_catalog.pg_table_is_visible(c.oid)
+ ~A"
+ "SELECT relname FROM pg_class WHERE (relkind =
+'~A')~A")
type
(owner-clause owner))
database nil nil)))