diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 44fab3b45409e40f3dc2d91d240052bc93b68022..7cf7c104e846eff988946f40ac8cca63de08a873 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -1996,15 +1996,24 @@ Tu Feb 7 18:48:14 CET 2006 Fri, 17 Mar 2006 16:38:19 +0100 - - Fixed bug 2330: Wrong error code in case of a duplicate key + - Fixed bug 2330: Wrong error code in case of a duplicate key. Mo Apr 24 11:40:05 CEST 2006 - Fixed memory leak bugs found by Martijn Oosterhout. -Mi Mai 31 10:10:36 CEST 2006 +We Mai 31 10:10:36 CEST 2006 - - Fixed PGTYPESdate_from_timestamp because some characters got lost there + - Fixed PGTYPESdate_from_timestamp because some characters got lost there. + +Tu Jun 6 12:09:56 CEST 2006 + + - Fixed two more memory leaks in ecpglib. + - Synced parser. + +Mo Jun 19 11:15:50 CEST 2006 + + - Do not use already free'ed errmsg, bug found by Joachim Wieland + <joachim.wieland@credativ.de> - Set ecpg library version to 5.2. - Set ecpg version to 4.2.1. - diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c index b5e023dcadc5fa73852a9590ad196d7d54e3c8bc..b3209db5cd2b9c834871d98368167fd1a95de0ab 100644 --- a/src/interfaces/ecpg/ecpglib/connect.c +++ b/src/interfaces/ecpg/ecpglib/connect.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.27 2005/11/30 12:49:49 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.28 2006/06/19 09:19:49 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -456,10 +456,6 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p const char *errmsg = PQerrorMessage(this->connection); char *db = realname ? realname : "<DEFAULT>"; - ecpg_finish(this); -#ifdef ENABLE_THREAD_SAFETY - pthread_mutex_unlock(&connections_mutex); -#endif ECPGlog("connect: could not open database %s on %s port %s %s%s%s%s in line %d\n\t%s\n", db, host ? host : "<DEFAULT>", @@ -468,6 +464,11 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p user ? "for user " : "", user ? user : "", lineno, errmsg); + ecpg_finish(this); +#ifdef ENABLE_THREAD_SAFETY + pthread_mutex_unlock(&connections_mutex); +#endif + ECPGraise(lineno, ECPG_CONNECT, ECPG_SQLSTATE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION, db); if (host) ECPGfree(host);