@@ -4795,14 +4795,16 @@ def begin(self, isolation_level=None):
47954795
47964796 def get_tables (self , schema = None ):
47974797 query = ('SELECT tablename FROM pg_catalog.pg_tables '
4798- 'WHERE schemaname = %s ORDER BY tablename' )
4799- cursor = self .execute_sql (query , (schema or 'public' ,))
4798+ 'WHERE schemaname = COALESCE(%s, current_schema()) '
4799+ 'ORDER BY tablename' )
4800+ cursor = self .execute_sql (query , (schema ,))
48004801 return [table for table , in cursor .fetchall ()]
48014802
48024803 def get_views (self , schema = None ):
48034804 query = ('SELECT viewname, definition FROM pg_catalog.pg_views '
4804- 'WHERE schemaname = %s ORDER BY viewname' )
4805- cursor = self .execute_sql (query , (schema or 'public' ,))
4805+ 'WHERE schemaname = COALESCE(%s, current_schema()) '
4806+ 'ORDER BY viewname' )
4807+ cursor = self .execute_sql (query , (schema ,))
48064808 return [ViewMetadata (view_name , sql .strip (' \t ;' ))
48074809 for (view_name , sql ) in cursor .fetchall ()]
48084810
@@ -4822,9 +4824,10 @@ def get_indexes(self, table, schema=None):
48224824 idxs.tablename = t.relname
48234825 AND idxs.indexname = i.relname
48244826 AND idxs.schemaname = n.nspname)
4825- WHERE t.relname = %s AND t.relkind = %s AND n.nspname = %s
4827+ WHERE t.relname = %s AND t.relkind = %s
4828+ AND n.nspname = COALESCE(%s, current_schema())
48264829 ORDER BY idx.indisunique DESC, i.relname;"""
4827- cursor = self .execute_sql (query , (table , 'r' , schema or 'public' ))
4830+ cursor = self .execute_sql (query , (table , 'r' , schema ))
48284831 return [IndexMetadata (name , sql .rstrip (' ;' ),
48294832 [unqesc (c ) for c in cols ], unique , table )
48304833 for name , sql , unique , cols in cursor .fetchall ()]
@@ -4842,10 +4845,11 @@ def get_columns(self, table, schema=None):
48424845 ON (t.relname = c.table_name AND t.relnamespace = n.oid)
48434846 INNER JOIN pg_catalog.pg_attribute AS a
48444847 ON (a.attrelid = t.oid AND a.attname = c.column_name)
4845- WHERE c.table_name = %s AND c.table_schema = %s
4848+ WHERE c.table_name = %s
4849+ AND c.table_schema = COALESCE(%s, current_schema())
48464850 AND NOT a.attisdropped
48474851 ORDER BY c.ordinal_position"""
4848- cursor = self .execute_sql (query , (table , schema or 'public' ))
4852+ cursor = self .execute_sql (query , (table , schema ))
48494853 pks = set (self .get_primary_keys (table , schema ))
48504854 def is_ident (ident , df ):
48514855 return ident == 'YES' or (df or '' ).startswith (
@@ -4865,9 +4869,9 @@ def get_primary_keys(self, table, schema=None):
48654869 WHERE
48664870 tc.constraint_type = %s AND
48674871 tc.table_name = %s AND
4868- tc.table_schema = %s """
4872+ tc.table_schema = COALESCE(%s, current_schema()) """
48694873 ctype = 'PRIMARY KEY'
4870- cursor = self .execute_sql (query , (ctype , table , schema or 'public' ))
4874+ cursor = self .execute_sql (query , (ctype , table , schema ))
48714875 return [pk for pk , in cursor .fetchall ()]
48724876
48734877 def get_foreign_keys (self , table , schema = None ):
@@ -4890,8 +4894,8 @@ def get_foreign_keys(self, table, schema=None):
48904894 WHERE
48914895 tc.constraint_type = 'FOREIGN KEY' AND
48924896 tc.table_name = %s AND
4893- tc.table_schema = %s """
4894- cursor = self .execute_sql (sql , (table , schema or 'public' ))
4897+ tc.table_schema = COALESCE(%s, current_schema()) """
4898+ cursor = self .execute_sql (sql , (table , schema ))
48954899 return [ForeignKeyMetadata (row [0 ], row [1 ], row [2 ], table , row [3 ],
48964900 row [4 ], row [5 ])
48974901 for row in cursor .fetchall ()]
0 commit comments