JDBC Driver - Connection.getTransactionIsolationLevel - Mailing list pgsql-patches

From Kris Jurka
Subject JDBC Driver - Connection.getTransactionIsolationLevel
Date
Msg-id 3D7D0EA4.5030204@ejurka.com
Whole thread Raw
List pgsql-patches
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;

pgsql-patches by date:

Previous
From: Kris Jurka
Date:
Subject: JDBC Driver Database Meta Data - FK_NAME
Next
From: Kris Jurka
Date:
Subject: JDBC - Handle unknown encoding properly in AbstractJdbc2ResultSet