Accept subsequent commits. This should have been just a warning anyway. I
authorMichael Meskes <meskes@postgresql.org>
Fri, 18 Jan 2002 15:51:00 +0000 (15:51 +0000)
committerMichael Meskes <meskes@postgresql.org>
Fri, 18 Jan 2002 15:51:00 +0000 (15:51 +0000)
cannot see a reason why it should be an error.

src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/lib/misc.c

index da687ae1aba1ad22875b524086df8ded0b0ac890..722257f1af8d99e0eafbe4fe60d4a4628d42c382 100644 (file)
@@ -1207,5 +1207,9 @@ Sat Jan 12 22:04:02 CET 2002
        - Fixed variable handling for struct members.
        - Removed check for array input. An attribut might store the
          complete array.
+
+Fri Jan 18 16:49:02 CET 2002
+
+       - Accept subsequent commits.
        - Set ecpg version to 2.9.0.
         - Set library version to 3.3.0.
index a3dd727cbd699f479988802e1fa03bbca797d673..4a5573b649b0dd6de99dabc71bd9cd47aa5e9d40 100644 (file)
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/misc.c,v 1.11 2001/12/23 12:17:41 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/misc.c,v 1.12 2002/01/18 15:51:00 meskes Exp $ */
 
 #include "postgres_fe.h"
 
@@ -90,12 +90,17 @@ ECPGtrans(int lineno, const char *connection_name, const char *transaction)
        /* if we have no connection we just simulate the command */
        if (con && con->connection)
        {
-               if ((res = PQexec(con->connection, transaction)) == NULL)
+               /* if we are not in autocommit mode, already have committed 
+                * the transaction and get another commit, just ignore it */
+               if (!con->committed || con->autocommit)
                {
-                       ECPGraise(lineno, ECPG_TRANS, NULL);
-                       return FALSE;
+                       if ((res = PQexec(con->connection, transaction)) == NULL)
+                       {
+                               ECPGraise(lineno, ECPG_TRANS, NULL);
+                               return FALSE;
+                       }
+                       PQclear(res);
                }
-               PQclear(res);
        }
 
        if (strcmp(transaction, "commit") == 0 || strcmp(transaction, "rollback") == 0)