From 9e76b4c7c5969b44ac5fb034db8bb12481492e8f Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Fri, 28 Jul 2006 10:10:42 +0000 Subject: [PATCH] And one more: Connection identifier has to be unique --- src/interfaces/ecpg/ChangeLog | 1 + src/interfaces/ecpg/ecpglib/connect.c | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index 3514d3a199..0bfe3ef928 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -2050,5 +2050,6 @@ Fr Jul 28 11:00:51 CEST 2006 - Added more SoC changes by Joachim Wieland : - SHOW statement puts result into a variable - COPY TO STDOUT works + - Connection identifier has to be unique - 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 3cba42d25f..dcc70a5754 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.30 2006/06/21 11:38:07 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.31 2006/07/28 10:10:42 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -295,12 +295,21 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p } - if ((this = (struct connection *) ECPGalloc(sizeof(struct connection), lineno)) == NULL) - return false; - if (dbname == NULL && connection_name == NULL) connection_name = "DEFAULT"; + /* check if the identifier is unique */ + if (ECPGget_connection(connection_name)) + { + ECPGfree(dbname); + ECPGlog("connect: connection identifier %s is already in use\n", + connection_name); + return false; + } + + if ((this = (struct connection *) ECPGalloc(sizeof(struct connection), lineno)) == NULL) + return false; + if (dbname != NULL) { /* get the detail information out of dbname */ -- 2.40.0