I was trying to get a very nice FREE graphical db tool called DbVisualizer
authorBruce Momjian <bruce@momjian.us>
Wed, 16 May 2001 16:42:31 +0000 (16:42 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 16 May 2001 16:42:31 +0000 (16:42 +0000)
(http://www.ideit.com/products/dbvis/) to work with Postgresql and I found
out the following bug: if database has views then getTables() gets the null
pointer exception ('order by relname' makes the listing tree in
DbVisualizer a lot useful !!)

This patch should propably be applied to the the jdbc1's
DatabaseMetaData.java, too.

Panu Outinen

src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java

index cd6cf4808f8fa60f4982e10b8207408d037d7063..1bddb87cecca66b056a3a553946a19bbf1355af9 100644 (file)
@@ -1697,6 +1697,9 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
    case 'S':
        relKind = "SEQUENCE";
        break;
+   case 'v':
+       relKind = "VIEW";
+       break;
    default:
        relKind = null;
    }
@@ -1704,7 +1707,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
    tuple[0] = null;        // Catalog name
    tuple[1] = null;        // Schema name
    tuple[2] = r.getBytes(1);   // Table name   
-   tuple[3] = relKind.getBytes();  // Table type
+   tuple[3] = (relKind==null) ? null : relKind.getBytes(); // Table type
    tuple[4] = remarks;     // Remarks
    v.addElement(tuple);
       }
index 1d1cd11a4bf57735cc25d2442415764b87a9aeff..6babe49fafd857afd3ca87d3fea63102bb5f635b 100644 (file)
@@ -1697,6 +1697,9 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
    case 'S':
        relKind = "SEQUENCE";
        break;
+   case 'v':
+       relKind = "VIEW";
+       break;
    default:
        relKind = null;
    }
@@ -1704,7 +1707,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
    tuple[0] = null;        // Catalog name
    tuple[1] = null;        // Schema name
    tuple[2] = r.getBytes(1);   // Table name
-   tuple[3] = relKind.getBytes();  // Table type
+   tuple[3] = (relKind==null) ? null : relKind.getBytes(); // Table type
    tuple[4] = remarks;     // Remarks
    v.addElement(tuple);
       }