aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1999-02-21 03:02:35 +0000
committerMarc G. Fournier <scrappy@hub.org>1999-02-21 03:02:35 +0000
commitae4a40dc263ebceda9d0433e421ec375bc2617ba (patch)
tree5295f2b23739449606da652545b7f1b49d2b9fec
parent23c30246d7777fdee2dfc346baff0ba0720a5e24 (diff)
downloadpostgresql-ae4a40dc263ebceda9d0433e421ec375bc2617ba.tar.gz
postgresql-ae4a40dc263ebceda9d0433e421ec375bc2617ba.zip
From: Michael Meskes <Michael_Meskes@topmail.de>
+ + Fri Feb 19 21:40:14 CET 1999 + + - Fixed bug in libecpg that caused it to start transactions only for + the first connection. + - Set library version to 2.7.1
-rw-r--r--src/interfaces/ecpg/ChangeLog6
-rw-r--r--src/interfaces/ecpg/lib/Makefile.in4
-rw-r--r--src/interfaces/ecpg/lib/ecpglib.c18
3 files changed, 18 insertions, 10 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 196f7c99e5e..eac1b96e800 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -457,3 +457,9 @@ Fri Feb 19 18:38:45 CET 1999
- Finished type aliasing for structures.
- Set ecpg version to 2.5.0
+
+Fri Feb 19 21:40:14 CET 1999
+
+ - Fixed bug in libecpg that caused it to start transactions only for
+ the first connection.
+ - Set library version to 2.7.1
diff --git a/src/interfaces/ecpg/lib/Makefile.in b/src/interfaces/ecpg/lib/Makefile.in
index 195ded19680..4872e8c0fd5 100644
--- a/src/interfaces/ecpg/lib/Makefile.in
+++ b/src/interfaces/ecpg/lib/Makefile.in
@@ -6,13 +6,13 @@
# Copyright (c) 1994, Regents of the University of California
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.41 1999/02/20 07:00:53 scrappy Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.42 1999/02/21 03:02:35 scrappy Exp $
#
#-------------------------------------------------------------------------
NAME= ecpg
SO_MAJOR_VERSION= 2
-SO_MINOR_VERSION= 7.0
+SO_MINOR_VERSION= 7.1
SRCDIR= @top_srcdir@
include $(SRCDIR)/Makefile.global
diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c
index 01fe37298bb..2a7745f2a67 100644
--- a/src/interfaces/ecpg/lib/ecpglib.c
+++ b/src/interfaces/ecpg/lib/ecpglib.c
@@ -53,10 +53,11 @@ struct sqlca sqlca =
static struct connection
{
- char *name;
- PGconn *connection;
+ char *name;
+ PGconn *connection;
+ int committed;
struct connection *next;
-} *all_connections = NULL, *actual_connection = NULL;
+} *all_connections = NULL, *actual_connection = NULL;
struct variable
{
@@ -90,7 +91,6 @@ struct prepared_statement
static int simple_debug = 0;
static FILE *debugstream = NULL;
-static int committed = true;
static void
register_error(long code, char *fmt,...)
@@ -564,7 +564,7 @@ ECPGexecute(struct statement * stmt)
/* Now the request is built. */
- if (committed && !no_auto_trans)
+ if (actual_connection->committed && !no_auto_trans)
{
if ((results = PQexec(actual_connection->connection, "begin transaction")) == NULL)
{
@@ -572,7 +572,7 @@ ECPGexecute(struct statement * stmt)
return false;
}
PQclear(results);
- committed = 0;
+ actual_connection->committed = false;
}
ECPGlog("ECPGexecute line %d: QUERY: %s\n", stmt->lineno, copiedquery);
@@ -987,7 +987,7 @@ ECPGtrans(int lineno, const char *transaction)
{
struct prepared_statement *this;
- committed = 1;
+ actual_connection->committed = true;
/* deallocate all prepared statements */
for (this = prep_stmts; this != NULL; this = this->next)
@@ -999,7 +999,7 @@ ECPGtrans(int lineno, const char *transaction)
}
}
- return TRUE;
+ return true;
}
bool
@@ -1059,6 +1059,8 @@ ECPGconnect(int lineno, const char *dbname, const char *user, const char *passwd
register_error(ECPG_CONNECT, "connect: could not open database %s.", dbname ? dbname : "NULL");
return false;
}
+
+ this->committed = true;
return true;
}