From 863c9d11f13cf8afff70242660d39bd70b5743c8 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 16 May 2001 16:42:31 +0000
Subject: [PATCH] I was trying to get a very nice FREE graphical db tool called
 DbVisualizer (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
---
 .../jdbc/org/postgresql/jdbc1/DatabaseMetaData.java          | 5 ++++-
 .../jdbc/org/postgresql/jdbc2/DatabaseMetaData.java          | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
index cd6cf4808f8..1bddb87cecc 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
@@ -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);
       }
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
index 1d1cd11a4bf..6babe49fafd 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
@@ -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);
       }
-- 
GitLab