diff options
author | Bruce Momjian <bruce@momjian.us> | 2000-09-12 04:51:43 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2000-09-12 04:51:43 +0000 |
commit | 4f5cdadf03ae97de4fbd9ef90e15a080291b6a13 (patch) | |
tree | cba558bba80674beca6aecf6fee5c0e43799b7b8 | |
parent | 264c0682077fe9ec5c9bd366f756451db397d4fb (diff) | |
download | postgresql-4f5cdadf03ae97de4fbd9ef90e15a080291b6a13.tar.gz postgresql-4f5cdadf03ae97de4fbd9ef90e15a080291b6a13.zip |
Applied to jdbc1 and jdbc2.
This is a patch which lets the DatabaseMetaData return the object type
when getTables(....) is called. It does not really fix any bug, but it
fills in some functionality that should be there anyway. The diff
included here is off of the CVS as of just now :)
----------------------------------------------------------------
Travis Bauer | CS Grad Student | IU |www.cs.indiana.edu/~trbauer
----------------------------------------------------------------
-rw-r--r-- | src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java | 21 | ||||
-rw-r--r-- | src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java | 21 |
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); } |