The results of a show command are output as a query result in 7.3, not
as a notice. This patch changes the return handling of "SHOW
TRANSACTION ISOLATION LEVEL"
Kris Jurka
Index: src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java,v
retrieving revision 1.8
diff -c -r1.8 AbstractJdbc1Connection.java
*** src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java 2002/09/06 21:23:05 1.8
--- src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java 2002/09/09 21:09:11
***************
*** 982,1002 ****
*/
public int getTransactionIsolation() throws SQLException
{
! clearWarnings();
! ExecSQL("show transaction isolation level");
!
! SQLWarning warning = getWarnings();
! if (warning != null)
! {
! String message = warning.getMessage();
clearWarnings();
! if (message.indexOf("READ COMMITTED") != -1)
return java.sql.Connection.TRANSACTION_READ_COMMITTED;
! else if (message.indexOf("READ UNCOMMITTED") != -1)
return java.sql.Connection.TRANSACTION_READ_UNCOMMITTED;
! else if (message.indexOf("REPEATABLE READ") != -1)
return java.sql.Connection.TRANSACTION_REPEATABLE_READ;
! else if (message.indexOf("SERIALIZABLE") != -1)
return java.sql.Connection.TRANSACTION_SERIALIZABLE;
}
return java.sql.Connection.TRANSACTION_READ_COMMITTED;
--- 982,1013 ----
*/
public int getTransactionIsolation() throws SQLException
{
! String sql = "show transaction isolation level";
! String level = null;
! if (haveMinimumServerVersion("7.3")) {
! ResultSet rs = ExecSQL(sql);
! if (rs.next()) {
! level = rs.getString(1);
! }
! rs.close();
! } else {
clearWarnings();
! ExecSQL(sql);
! SQLWarning warning = getWarnings();
! if (warning != null)
! {
! level = warning.getMessage();
! }
! clearWarnings();
! }
! if (level != null) {
! if (level.indexOf("READ COMMITTED") != -1)
return java.sql.Connection.TRANSACTION_READ_COMMITTED;
! else if (level.indexOf("READ UNCOMMITTED") != -1)
return java.sql.Connection.TRANSACTION_READ_UNCOMMITTED;
! else if (level.indexOf("REPEATABLE READ") != -1)
return java.sql.Connection.TRANSACTION_REPEATABLE_READ;
! else if (level.indexOf("SERIALIZABLE") != -1)
return java.sql.Connection.TRANSACTION_SERIALIZABLE;
}
return java.sql.Connection.TRANSACTION_READ_COMMITTED;