aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java21
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java21
2 files changed, 36 insertions, 6 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
index 1ad080e8d0a..e482809954d 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
@@ -1651,7 +1651,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
f[4] = new Field(connection, new String("REMARKS"), iVarcharOid, 32);
// Now form the query
- StringBuffer sql = new StringBuffer("select relname,oid from pg_class where (");
+ StringBuffer sql = new StringBuffer("select relname,oid,relkind from pg_class where (");
boolean notFirst=false;
for(int i=0;i<types.length;i++) {
for(int j=0;j<getTableTypes.length;j++)
@@ -1687,10 +1687,25 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
remarks = defaultRemarks;
dr.close();
+ String relKind;
+ switch (r.getBytes(3)[0]) {
+ case 'r':
+ relKind = "TABLE";
+ break;
+ case 'i':
+ relKind = "INDEX";
+ break;
+ case 'S':
+ relKind = "SEQUENCE";
+ break;
+ default:
+ relKind = null;
+ }
+
tuple[0] = null; // Catalog name
tuple[1] = null; // Schema name
- tuple[2] = r.getBytes(1); // Table name
- tuple[3] = null; // Table type
+ tuple[2] = r.getBytes(1); // Table name
+ tuple[3] = 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 fa58ef69c06..9c7025136db 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
@@ -1651,7 +1651,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
f[4] = new Field(connection, new String("REMARKS"), iVarcharOid, 32);
// Now form the query
- StringBuffer sql = new StringBuffer("select relname,oid from pg_class where (");
+ StringBuffer sql = new StringBuffer("select relname,oid,relkind from pg_class where (");
boolean notFirst=false;
for(int i=0;i<types.length;i++) {
for(int j=0;j<getTableTypes.length;j++)
@@ -1687,10 +1687,25 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
remarks = defaultRemarks;
dr.close();
+ String relKind;
+ switch (r.getBytes(3)[0]) {
+ case 'r':
+ relKind = "TABLE";
+ break;
+ case 'i':
+ relKind = "INDEX";
+ break;
+ case 'S':
+ relKind = "SEQUENCE";
+ break;
+ default:
+ relKind = null;
+ }
+
tuple[0] = null; // Catalog name
tuple[1] = null; // Schema name
- tuple[2] = r.getBytes(1); // Table name
- tuple[3] = null; // Table type
+ tuple[2] = r.getBytes(1); // Table name
+ tuple[3] = relKind.getBytes(); // Table type
tuple[4] = remarks; // Remarks
v.addElement(tuple);
}