r11016: * sql/generic-postgresql.lisp: Revert patch from Joel Reymont since
[clsql.git] / sql / generic-postgresql.lisp
index aac16ddc85acad1727bca12b56ce0028ce44c056..4958eaa72b74eb9effd8e3bd693850efdacccf3b 100644 (file)
          (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)))