mirror of
https://github.com/postgres/postgres.git
synced 2025-11-28 11:44:57 +03:00
Backport patch to work around a server bug. Server incorrectly handles the
following: select 1; commit; set autocommit true; If this is submitted in one call to the server (the select 1 doesn't start a new transaction like it should), however if the select 1 is sent as a separate call then it works correctly. Modified Files: Tag: REL7_3_STABLE jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java
This commit is contained in:
@@ -14,7 +14,7 @@ import org.postgresql.largeobject.LargeObjectManager;
|
|||||||
import org.postgresql.util.*;
|
import org.postgresql.util.*;
|
||||||
|
|
||||||
|
|
||||||
/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Connection.java,v 1.12.2.1 2002/11/14 05:54:39 barry Exp $
|
/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Connection.java,v 1.12.2.2 2003/03/19 04:09:09 barry Exp $
|
||||||
* This class defines methods of the jdbc1 specification. This class is
|
* This class defines methods of the jdbc1 specification. This class is
|
||||||
* extended by org.postgresql.jdbc2.AbstractJdbc2Connection which adds the jdbc2
|
* extended by org.postgresql.jdbc2.AbstractJdbc2Connection which adds the jdbc2
|
||||||
* methods. The real Connection class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Connection
|
* methods. The real Connection class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Connection
|
||||||
@@ -939,7 +939,11 @@ public abstract class AbstractJdbc1Connection implements org.postgresql.PGConnec
|
|||||||
//We do the select to ensure a transaction is in process
|
//We do the select to ensure a transaction is in process
|
||||||
//before we do the commit to avoid warning messages
|
//before we do the commit to avoid warning messages
|
||||||
//from issuing a commit without a transaction in process
|
//from issuing a commit without a transaction in process
|
||||||
ExecSQL("select 1; commit; set autocommit = on;");
|
//NOTE this is done in two network roundtrips to work around
|
||||||
|
//a server bug in 7.3 where the select wouldn't actually start
|
||||||
|
//a new transaction if in the same command as the commit
|
||||||
|
ExecSQL("select 1;");
|
||||||
|
ExecSQL("commit; set autocommit = on;");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user