Index: introspection.py
===================================================================
--- introspection.py	(revision 5312)
+++ introspection.py	(working copy)
@@ -1,14 +1,24 @@
 from django.db.backends.postgresql_psycopg2.base import quote_name
 
-def get_table_list(cursor):
-    "Returns a list of table names in the current database."
-    cursor.execute("""
+def get_table_list(cursor, owned_only = True ):
+    """Returns a list of table names in the current database.
+    
+     If owned_only is set, only tables owned by current user are returned.
+     """
+    if owned_only:
+        owned_join = "LEFT JOIN pg_catalog.pg_roles r ON r.oid = c.relowner"
+        owned_where = "AND r.rolname = current_user"
+    else:
+        owned_join = owned_where = ""
+    cursor.execute ("""
         SELECT c.relname
         FROM pg_catalog.pg_class c
         LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
+        %s
         WHERE c.relkind IN ('r', 'v', '')
             AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
-            AND pg_catalog.pg_table_is_visible(c.oid)""")
+            AND pg_catalog.pg_table_is_visible(c.oid)
+            %s""" % ( owned_join, owned_where )  )
     return [row[0] for row in cursor.fetchall()]
 
 def get_table_description(cursor, table_name):
