From: | Teun Hoogendoorn <th(at)atsc(dot)nl> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #6293: JDBC driver performance |
Date: | 2011-11-17 11:12:51 |
Message-ID: | OF94C90797.62CD1E8D-ONC125794B.003D5C91-C125794B.003D9983@atsc.nl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi Kris,
This is exactly what I'm doing. I understand your solution, but that's
not really an option for me (I have to change a lot of code).
Maybe the driver can cache the ResultSetMetaData for the ResultSet?
BTW. I looked into the driver code to look for a solution for my problem.
I came
across the following lines of code (in
AbstractJdbc2ResultSetMetaData.java):
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql.toString());
while (rs.next()) {
int table = rs.getInt(1);
int column = rs.getInt(2);
String columnName = rs.getString(3);
String tableName = rs.getString(4);
String schemaName = rs.getString(5);
int nullable = rs.getBoolean(6) ?
ResultSetMetaData.columnNoNulls : ResultSetMetaData.columnNullable;
boolean autoIncrement = rs.getBoolean(7);
for (int i=0; i<fields.length; i++) {
if (fields[i].getTableOid() == table &&
fields[i].getPositionInTable() == column) {
fields[i].setColumnName(columnName);
fields[i].setTableName(tableName);
fields[i].setSchemaName(schemaName);
fields[i].setNullable(nullable);
fields[i].setAutoIncrement(autoIncrement);
}
}
}
Shouldn't this ResultSet/Statement be closed?
Thanks,
Teun Hoogendoorn
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2011-11-17 15:11:11 | Re: ST_Distance Issue |
Previous Message | Archana Sachin Ghag | 2011-11-17 09:29:10 | ST_Distance Issue |