Attached is a patch that I would like to submit for discussion.  
The goal of this patch is a solution to the issue that I found concerning 
table visibility.  The problem with the way psql currently lists tables in 
a database is that it limits it to only the tables currently in the search 
path.  If it isn't visible, then you will never see the table.  This can 
cause problems for a person that is trying to learn a database for the 
first time or something along those lines unless they are familiar with 
the pg_catalog.  I think a better solution to handling the issue of 
visibility is shown below.  It will list all of the tables of the database 
and show another column to give indication of the visibility of the table.  

eecs=> \d
                        List of relations
   Schema   |          Name          |   Type   | Visible | Owner 
------------+------------------------+----------+---------+-------
 term_029   | schedule               | table    | f       | dba
 term_029   | schedule_preceptor     | table    | f       | dba
 term_029   | schedule_preceptor_seq | sequence | f       | dba
 term_029   | schedule_seq           | sequence | f       | dba
 term_029   | schedule_student       | table    | f       | dba
 term_029   | schedule_student_seq   | sequence | f       | dba
 term_032   | schedule               | table    | t       | dba
 term_032   | schedule_preceptor     | table    | t       | dba
 term_032   | schedule_preceptor_seq | sequence | t       | dba
 term_032   | schedule_seq           | sequence | t       | dba
 term_032   | schedule_student       | table    | t       | dba
 term_032   | schedule_student_seq   | sequence | t       | dba

-- 
//========================================================\\
||  D. Hageman                    <[EMAIL PROTECTED]>  ||
\\========================================================//
diff -ruN pgsql-server/src/bin/psql/describe.c 
pgsql-server.dhageman/src/bin/psql/describe.c
--- pgsql-server/src/bin/psql/describe.c        2003-01-07 14:56:06.000000000 -0600
+++ pgsql-server.dhageman/src/bin/psql/describe.c       2003-01-23 14:37:39.000000000 
+-0600
@@ -1274,10 +1274,11 @@
                                          "SELECT n.nspname as \"%s\",\n"
                                          "  c.relname as \"%s\",\n"
                                          "  CASE c.relkind WHEN 'r' THEN '%s' WHEN 
'v' THEN '%s' WHEN 'i' THEN '%s' WHEN 'S' THEN '%s' WHEN 's' THEN '%s' END as 
\"%s\",\n"
+                                         " pg_catalog.pg_table_is_visible(c.oid) as 
+\"%s\",\n"
                                          "  u.usename as \"%s\"",
                                          _("Schema"), _("Name"),
                                          _("table"), _("view"), _("index"), 
_("sequence"),
-                                         _("special"), _("Type"), _("Owner"));
+                                         _("special"), _("Type"), _("Visible"), 
+_("Owner"));
 
        if (verbose)
                appendPQExpBuffer(&buf,
@@ -1326,7 +1327,7 @@
 
        processNamePattern(&buf, pattern, true, false,
                                           "n.nspname", "c.relname", NULL,
-                                          "pg_catalog.pg_table_is_visible(c.oid)");
+                                          NULL );
 
        appendPQExpBuffer(&buf, "ORDER BY 1,2;");
 
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to