]> granicus.if.org Git - postgresql/commitdiff
fix for a bug in DatabaseMetaData.getIndexInfo(). This fixes a bug reported by tom_f...
authorBarry Lind <barry@xythos.com>
Wed, 24 Oct 2001 04:31:50 +0000 (04:31 +0000)
committerBarry Lind <barry@xythos.com>
Wed, 24 Oct 2001 04:31:50 +0000 (04:31 +0000)
src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java

index a9d34bcc442b1df6b940b299d5202f4f95254000..3b24aebc0a055dad0be7dde8e9687effde2adf5f 100644 (file)
@@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException;
 /**
  * This class provides information about the database as a whole.
  *
- * $Id: DatabaseMetaData.java,v 1.33 2001/09/29 03:08:01 momjian Exp $
+ * $Id: DatabaseMetaData.java,v 1.34 2001/10/24 04:31:48 barry 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
@@ -2713,7 +2713,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                                "a.amname, " +
                                "x.indkey, " +
                                "c.reltuples, " +
-                               "c.relpages " +
+                               "c.relpages, " +
+                                "x.indexrelid " +
                                "FROM pg_index x, pg_class c, pg_class i, pg_am a " +
                                "WHERE ((c.relname = '" + tableName.toLowerCase() + "') " +
                                " AND (c.oid = x.indrelid) " +
@@ -2747,7 +2748,7 @@ 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, pg_class c WHERE (a.attnum = " + columnOrdinals[i] + ") AND (a.attrelid = " + r.getInt(8) + ")");
+            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);
             tuple[9] = null;  // sort sequence ???
index e6f558fb55fb925c4b0e65f149b1e6d241f66875..6cb522466cf14de78f6dccfd1e38f1109b07c0f7 100644 (file)
@@ -13,7 +13,7 @@ import org.postgresql.util.PSQLException;
 /**
  * This class provides information about the database as a whole.
  *
- * $Id: DatabaseMetaData.java,v 1.37 2001/09/29 03:08:01 momjian Exp $
+ * $Id: DatabaseMetaData.java,v 1.38 2001/10/24 04:31:50 barry 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
@@ -2716,7 +2716,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
                                "a.amname, " +
                                "x.indkey, " +
                                "c.reltuples, " +
-                               "c.relpages " +
+                               "c.relpages, " +
+                                "x.indexrelid " +
                                "FROM pg_index x, pg_class c, pg_class i, pg_am a " +
                                "WHERE ((c.relname = '" + tableName.toLowerCase() + "') " +
                                " AND (c.oid = x.indrelid) " +
@@ -2750,7 +2751,7 @@ 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, pg_class c WHERE (a.attnum = " + columnOrdinals[i] + ") AND (a.attrelid = " + r.getInt(8) + ")");
+            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);
             tuple[9] = null;  // sort sequence ???