Thread: JDBC: One more autocommit use to work around

JDBC: One more autocommit use to work around

From
Fernando Nasser
Date:
Last night's patch to remove uses of autocommit missed this spot.

Note that here one cannot use the same strategy of ignoring the
existence of autocommit for 7.3 as it was done on the other cases as
someone may have configured their backend to start in SQL standard mode
(i.e., autocommit off).

--
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9
Index: org/postgresql/jdbc1/AbstractJdbc1Connection.java
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java,v
retrieving revision 1.19
diff -c -p -r1.19 AbstractJdbc1Connection.java
*** org/postgresql/jdbc1/AbstractJdbc1Connection.java    29 May 2003 03:21:32 -0000    1.19
--- org/postgresql/jdbc1/AbstractJdbc1Connection.java    29 May 2003 13:54:02 -0000
*************** public abstract class AbstractJdbc1Conne
*** 778,784 ****
          //We also set the client encoding so that the driver only needs
          //to deal with utf8.  We can only do this in 7.3 because multibyte
          //support is now always included
!         if (haveMinimumServerVersion("7.3"))
          {
              BaseResultSet acRset =
                  execSQL("set client_encoding = 'UNICODE'; show autocommit");
--- 778,784 ----
          //We also set the client encoding so that the driver only needs
          //to deal with utf8.  We can only do this in 7.3 because multibyte
          //support is now always included
!         if (haveMinimumServerVersion("7.3") && !haveMinimumServerVersion("7.4"))
          {
              BaseResultSet acRset =
                  execSQL("set client_encoding = 'UNICODE'; show autocommit");
*************** public abstract class AbstractJdbc1Conne
*** 798,803 ****
--- 798,813 ----
              {
                  execSQL("set autocommit = on; commit;");
              }
+         }
+         // On 7.4 there is no more backend autocommit, but we still need
+         // to set the client encoding.
+         else if (haveMinimumServerVersion("7.4"))
+         {
+             BaseResultSet acRset =
+                 execSQL("set client_encoding = 'UNICODE'");
+
+             //set encoding to be unicode
+             encoding = Encoding.getEncoding("UNICODE", null);
          }

          // Initialise object handling

Re: JDBC: One more autocommit use to work around

From
Barry Lind
Date:
Fernando,

Thanks for the catch.  A fix will be checked in shortly.

thanks,
--Barry


Fernando Nasser wrote:
> Last night's patch to remove uses of autocommit missed this spot.
>
> Note that here one cannot use the same strategy of ignoring the
> existence of autocommit for 7.3 as it was done on the other cases as
> someone may have configured their backend to start in SQL standard mode
> (i.e., autocommit off).
>
>
> ------------------------------------------------------------------------
>
> Index: org/postgresql/jdbc1/AbstractJdbc1Connection.java
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java,v
> retrieving revision 1.19
> diff -c -p -r1.19 AbstractJdbc1Connection.java
> *** org/postgresql/jdbc1/AbstractJdbc1Connection.java    29 May 2003 03:21:32 -0000    1.19
> --- org/postgresql/jdbc1/AbstractJdbc1Connection.java    29 May 2003 13:54:02 -0000
> *************** public abstract class AbstractJdbc1Conne
> *** 778,784 ****
>           //We also set the client encoding so that the driver only needs
>           //to deal with utf8.  We can only do this in 7.3 because multibyte
>           //support is now always included
> !         if (haveMinimumServerVersion("7.3"))
>           {
>               BaseResultSet acRset =
>                   execSQL("set client_encoding = 'UNICODE'; show autocommit");
> --- 778,784 ----
>           //We also set the client encoding so that the driver only needs
>           //to deal with utf8.  We can only do this in 7.3 because multibyte
>           //support is now always included
> !         if (haveMinimumServerVersion("7.3") && !haveMinimumServerVersion("7.4"))
>           {
>               BaseResultSet acRset =
>                   execSQL("set client_encoding = 'UNICODE'; show autocommit");
> *************** public abstract class AbstractJdbc1Conne
> *** 798,803 ****
> --- 798,813 ----
>               {
>                   execSQL("set autocommit = on; commit;");
>               }
> +         }
> +         // On 7.4 there is no more backend autocommit, but we still need
> +         // to set the client encoding.
> +         else if (haveMinimumServerVersion("7.4"))
> +         {
> +             BaseResultSet acRset =
> +                 execSQL("set client_encoding = 'UNICODE'");
> +
> +             //set encoding to be unicode
> +             encoding = Encoding.getEncoding("UNICODE", null);
>           }
>
>           // Initialise object handling