diff options
author | Dave Cramer <davec@fastcrypt.com> | 2002-02-22 02:40:09 +0000 |
---|---|---|
committer | Dave Cramer <davec@fastcrypt.com> | 2002-02-22 02:40:09 +0000 |
commit | deaad93462febc938230cff510f17780bf619862 (patch) | |
tree | 0dcc0470cf7a953a67e6d5fe2e3ee9c0fe1c7089 /src | |
parent | 0786c61c14708da5bd447b8ea6c20fb8ca78f48f (diff) | |
download | postgresql-deaad93462febc938230cff510f17780bf619862.tar.gz postgresql-deaad93462febc938230cff510f17780bf619862.zip |
Patch from Cormac Twomey
fixes getIndexInfo throwing NullPointerException
fixes getIndexInfo improper results when multiple key indexs are used
Diffstat (limited to 'src')
-rw-r--r-- | src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java index f9907e92df8..8bc6015f9d4 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java @@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException; /* * This class provides information about the database as a whole. * - * $Id: DatabaseMetaData.java,v 1.41 2002/01/18 17:21:51 davec Exp $ + * $Id: DatabaseMetaData.java,v 1.42 2002/02/22 02:40:09 davec Exp $ * * <p>Many of the methods here return lists of information in ResultSets. You * can use the normal ResultSet methods such as getString and getInt to @@ -2791,13 +2791,14 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData { columnOrdinals[o++] = Integer.parseInt(stok.nextToken()); } + java.sql.ResultSet columnNameRS = connection.ExecSQL("select a.attname FROM pg_attribute a WHERE a.attrelid = " + r.getInt(9)); for (int i = 0; i < columnOrdinals.length; i++) { byte [] [] tuple = new byte [13] []; tuple[0] = "".getBytes(); tuple[1] = "".getBytes(); tuple[2] = r.getBytes(1); - tuple[3] = r.getBoolean(2) ? "f".getBytes() : "t".getBytes(); + tuple[3] = r.getBoolean(2) ? "false".getBytes() : "true".getBytes(); tuple[4] = null; tuple[5] = r.getBytes(3); tuple[6] = r.getBoolean(4) ? @@ -2806,9 +2807,14 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData Integer.toString(tableIndexHashed).getBytes() : Integer.toString(tableIndexOther).getBytes(); tuple[7] = Integer.toString(i + 1).getBytes(); - java.sql.ResultSet columnNameRS = connection.ExecSQL("select a.attname FROM pg_attribute a WHERE (a.attnum = " + columnOrdinals[i] + ") AND (a.attrelid = " + r.getInt(9) + ")"); - columnNameRS.next(); - tuple[8] = columnNameRS.getBytes(1); + if (columnNameRS.next()) + { + tuple[8] = columnNameRS.getBytes(1); + } + else + { + tuple[8] = "".getBytes(); + } tuple[9] = null; // sort sequence ??? tuple[10] = r.getBytes(7); // inexact tuple[11] = r.getBytes(8); |