Author: cito
Date: Tue Jan 12 07:27:13 2016
New Revision: 719

Log:
Better checks for system catalogs

Modified:
   branches/4.x/pg.py
   trunk/pg.py

Modified: branches/4.x/pg.py
==============================================================================
--- branches/4.x/pg.py  Tue Jan 12 03:08:40 2016        (r718)
+++ branches/4.x/pg.py  Tue Jan 12 07:27:13 2016        (r719)
@@ -590,7 +590,8 @@
                     " pg_attribute.attname FROM pg_class"
                 " JOIN pg_namespace"
                     " ON pg_namespace.oid = pg_class.relnamespace"
-                    " AND pg_namespace.nspname NOT LIKE 'pg_%'"
+                    " AND pg_namespace.nspname"
+                    " NOT SIMILAR TO 'pg/_%|information/_schema' ESCAPE '/'"
                 " JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid"
                     " AND pg_attribute.attisdropped = 'f'"
                 " JOIN pg_index ON pg_index.indrelid = pg_class.oid"
@@ -625,8 +626,8 @@
             "SELECT pg_namespace.nspname, pg_class.relname"
             " FROM pg_class "
             " JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace "
-            " WHERE %s pg_namespace.nspname != 'information_schema'"
-                " AND pg_namespace.nspname !~ '^pg_' "
+            " WHERE %s pg_namespace.nspname"
+            " NOT SIMILAR TO 'pg/_%%|information/_schema' ESCAPE '/'"
             " ORDER BY 1, 2" % where).getresult()]
 
     def get_tables(self):

Modified: trunk/pg.py
==============================================================================
--- trunk/pg.py Tue Jan 12 03:08:40 2016        (r718)
+++ trunk/pg.py Tue Jan 12 07:27:13 2016        (r719)
@@ -591,7 +591,8 @@
                     " pg_attribute.attname FROM pg_class"
                 " JOIN pg_namespace"
                     " ON pg_namespace.oid = pg_class.relnamespace"
-                    " AND pg_namespace.nspname NOT LIKE 'pg_%'"
+                    " AND pg_namespace.nspname"
+                    " NOT SIMILAR TO 'pg/_%|information/_schema' ESCAPE '/'"
                 " JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid"
                     " AND NOT pg_attribute.attisdropped"
                 " JOIN pg_index ON pg_index.indrelid = pg_class.oid"
@@ -627,8 +628,8 @@
             "SELECT pg_namespace.nspname, pg_class.relname"
             " FROM pg_class "
             " JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace "
-            " WHERE %s pg_namespace.nspname != 'information_schema'"
-                " AND pg_namespace.nspname !~ '^pg_' "
+            " WHERE %s pg_namespace.nspname"
+            " NOT SIMILAR TO 'pg/_%%|information/_schema' ESCAPE '/'"
             " ORDER BY 1, 2" % where).getresult()]
 
     def get_tables(self):
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql

Reply via email to