Обсуждение: Bug and Bugfix for the jdbc-driver
In the datamodeller of JBuilder 4, only the systemtables are shown.
The Problem is in the funtion
getTableTypes() in the file
src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
This function should return a list of TableTypes. But it resturns a list of
6 Identical entries
(SYSTEM INDEX) instead.
I exchanged 2 lines of code to fix the problem. it works fine at my place.
here is the modified funtion:
public java.sql.ResultSet getTableTypes() throws SQLException
{
Field f[] = new Field[1];
Vector v = new Vector();
f[0] = new Field(connection,new String("TABLE_TYPE"),iVarcharOid,32);
for(int i=0;i<getTableTypes.length;i++) {
byte[][] tuple = new byte[1][0];
tuple[0] = getTableTypes[i][0].getBytes();
v.addElement(tuple);
}
return new ResultSet(connection,f,v,"OK",1);
}
The lines
for(int i=0;i<getTableTypes.length;i++) {
byte[][] tuple = new byte[1][0];
are exchanged.
This Fix doesn't solve all problems with JBuilder4.
Gretings
tilo
tilo@levante.de
Quoting Tilo Levante <tilo@levante.de>:
> In the datamodeller of JBuilder 4, only the systemtables are shown.
> The Problem is in the funtion
>
> getTableTypes() in the file
> src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
>
> This function should return a list of TableTypes. But it resturns a list
> of
> 6 Identical entries
> (SYSTEM INDEX) instead.
This was fixed about 6 months ago. What version of the driver are you using?
[snip]
> The lines
> for(int i=0;i<getTableTypes.length;i++) {
> byte[][] tuple = new byte[1][0];
> are exchanged.
This was the exact fix (actually it also occurs in another method as well).
> This Fix doesn't solve all problems with JBuilder4.
No, althought the current development driver is working with my copy of
JBuilder4.
Peter
--
Peter Mount peter@retep.org.uk
PostgreSQL JDBC Driver: http://www.retep.org.uk/postgres/
RetepPDF PDF library for Java: http://www.retep.org.uk/pdf/