Thread: 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/