From 8363e137aa61e57a494e98b8ff33723fcf29435d Mon Sep 17 00:00:00 2001
From: Peter Mount <peter@retep.org.uk>
Date: Wed, 15 Sep 1999 21:12:34 +0000
Subject: [PATCH] Jens Glaser found that getPrimaryKeys() had a table called
 test hardwired into it.

---
 .../postgresql/jdbc1/DatabaseMetaData.java    | 29 ++++++++++---------
 .../postgresql/jdbc2/DatabaseMetaData.java    | 29 ++++++++++---------
 2 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java b/src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java
index 84130f2cb46..eae5ac6b514 100644
--- a/src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/postgresql/jdbc1/DatabaseMetaData.java
@@ -2152,20 +2152,21 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
   public java.sql.ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException
   {
     return connection.createStatement().executeQuery("SELECT " +
-						     " '' as TABLE_CAT," +
-						     " '' AS TABLE_SCHEM," +
-						     " bc.relname AS TABLE_NAME," +
-						     " a.attname AS COLUMN_NAME," +
-						     " a.attnum as KEY_SEQ," +
-						     " ic.relname as PK_NAME" +
-						     " from pg_class bc, pg_class ic, pg_index i, pg_attribute a, pg_type t" +
-						     " where bc.relkind = 'r'"+
-						     " and upper(bc.relname) = upper('test')" +
-						     " and i.indrelid = bc.oid" +
-						     " and i.indexrelid = ic.oid  and a.attrelid = ic.oid"+
-						     " and i.indisprimary='t'"+
-						     " order by table_name, pk_name,key_seq;"
-						     );
+                                                     "'' as TABLE_CAT," +
+                                                     "'' AS TABLE_SCHEM," +
+                                                     "bc.relname AS TABLE_NAME," +
+                                                     "a.attname AS COLUMN_NAME," +
+                                                     "a.attnum as KEY_SEQ,"+
+                                                     "ic.relname as PK_NAME " +
+                                                     " FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a" +
+                                                     " WHERE bc.relkind = 'r' " + //    -- not indices
+                                                     "  and upper(bc.relname) = upper('"+table+"')" +
+                                                     "  and i.indrelid = bc.oid" +
+                                                     "  and i.indexrelid = ic.oid" +
+                                                     "  and ic.oid = a.attrelid" +
+                                                     "  and i.indisprimary='t' " +
+                                                     " ORDER BY table_name, pk_name, key_seq"
+                                                     );
   }
   
   /**
diff --git a/src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java b/src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java
index b6550654efd..9a16640d59a 100644
--- a/src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/postgresql/jdbc2/DatabaseMetaData.java
@@ -2152,20 +2152,21 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
   public java.sql.ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException
   {
     return connection.createStatement().executeQuery("SELECT " +
-						     " '' as TABLE_CAT," +
-						     " '' AS TABLE_SCHEM," +
-						     " bc.relname AS TABLE_NAME," +
-						     " a.attname AS COLUMN_NAME," +
-						     " a.attnum as KEY_SEQ," +
-						     " ic.relname as PK_NAME" +
-						     " from pg_class bc, pg_class ic, pg_index i, pg_attribute a, pg_type t" +
-						     " where bc.relkind = 'r'"+
-						     " and upper(bc.relname) = upper('test')" +
-						     " and i.indrelid = bc.oid" +
-						     " and i.indexrelid = ic.oid  and a.attrelid = ic.oid"+
-						     " and i.indisprimary='t'"+
-						     " order by table_name, pk_name,key_seq;"
-						     );
+                                                     "'' as TABLE_CAT," +
+                                                     "'' AS TABLE_SCHEM," +
+                                                     "bc.relname AS TABLE_NAME," +
+                                                     "a.attname AS COLUMN_NAME," +
+                                                     "a.attnum as KEY_SEQ,"+
+                                                     "ic.relname as PK_NAME " +
+                                                     " FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a" +
+                                                     " WHERE bc.relkind = 'r' " + //    -- not indices
+                                                     "  and upper(bc.relname) = upper('"+table+"')" +
+                                                     "  and i.indrelid = bc.oid" +
+                                                     "  and i.indexrelid = ic.oid" +
+                                                     "  and ic.oid = a.attrelid" +
+                                                     "  and i.indisprimary='t' " +
+                                                     " ORDER BY table_name, pk_name, key_seq"
+                                                     );
   }
   
   /**
-- 
GitLab