From f9e083fd30526e9e7a1c0e5a42366d5cc012d2a7 Mon Sep 17 00:00:00 2001
From: Michael Meskes <meskes@postgresql.org>
Date: Thu, 20 Mar 2008 16:29:45 +0000
Subject: [PATCH] Added ECPGget_PGconn() function to ecpglib, courtesy of Mike
 Aubury. Removed one include file from connect-test1.

---
 src/interfaces/ecpg/ChangeLog                 |  5 ++++
 src/interfaces/ecpg/ecpglib/Makefile          |  4 +--
 src/interfaces/ecpg/ecpglib/connect.c         | 12 ++++++++-
 src/interfaces/ecpg/include/ecpglib.h         | 25 ++++++++++---------
 .../ecpg/test/expected/connect-test1.c.in     |  1 -
 5 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 2147d28efcb..0d11db51db1 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -2331,4 +2331,9 @@ Sun, 02 Mar 2008 11:50:48 +0100
 Thu, 20 Mar 2008 16:54:27 +0100
 
 	- Changed statement escaping to not escape continuation line markers.
+	- Added ECPGget_PGconn() function to ecpglib, courtesy of Mike Aubury.
+	- Set pgtypes library version to 3.1.
+	- Set compat library version to 3.1.
+	- Set ecpg library version to 6.2.
+	- Set ecpg version to 4.5.
 
diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile
index d7f0a86aa93..2ceba93f97e 100644
--- a/src/interfaces/ecpg/ecpglib/Makefile
+++ b/src/interfaces/ecpg/ecpglib/Makefile
@@ -5,7 +5,7 @@
 # Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.56 2008/02/26 06:41:24 petere Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.57 2008/03/20 16:29:44 meskes Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -15,7 +15,7 @@ include $(top_builddir)/src/Makefile.global
 
 NAME= ecpg
 SO_MAJOR_VERSION= 6
-SO_MINOR_VERSION= 1
+SO_MINOR_VERSION= 2
 DLTYPE= library
 
 override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \
diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c
index e1f0957d435..7f1003ec7ad 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.48 2007/11/15 21:14:45 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.49 2008/03/20 16:29:44 meskes Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -565,3 +565,13 @@ ECPGdisconnect(int lineno, const char *connection_name)
 
 	return true;
 }
+
+PGconn* ECPGget_PGconn(const char *connection_name)
+{
+	struct connection * con;
+
+	con=ecpg_get_connection(connection_name);
+	if (con==NULL) return NULL;    
+
+	return con->connection;
+}
diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index dcc1d57722b..fcb89d057be 100644
--- a/src/interfaces/ecpg/include/ecpglib.h
+++ b/src/interfaces/ecpg/include/ecpglib.h
@@ -1,7 +1,7 @@
 /*
  * this is a small part of c.h since we don't want to leak all postgres
  * definitions into ecpg programs
- * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.75 2008/02/14 12:22:36 meskes Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.76 2008/03/20 16:29:45 meskes Exp $
  */
 
 #ifndef _ECPGLIB_H
@@ -47,11 +47,13 @@ bool		ECPGdo(const int, const int, const int, const char *, const bool, const in
 bool		ECPGtrans(int, const char *, const char *);
 bool		ECPGdisconnect(int, const char *);
 bool		ECPGprepare(int, const char *, const int, const char *, const char *);
-bool		ECPGdeallocate(int, int, const char *connection_name, const char *name);
-bool		ECPGdeallocate_all(int, int, const char *connection_name);
-char	   *ECPGprepared_statement(const char *connection_name, const char *name, int);
+bool		ECPGdeallocate(int, int, const char *, const char *);
+bool		ECPGdeallocate_all(int, int, const char *);
+char	        *ECPGprepared_statement(const char *, const char *, int);
+PGconn		*ECPGget_PGconn(const char *);
 
-char	   *ECPGerrmsg(void);
+
+char		*ECPGerrmsg(void);
 
  /* print an error message */
 void		sqlprint(void);
@@ -63,18 +65,17 @@ void		sqlprint(void);
 
 /* dynamic SQL */
 
-bool ECPGdo_descriptor(int line, const char *connection,
-				  const char *descriptor, const char *query);
-bool		ECPGdeallocate_desc(int line, const char *name);
-bool		ECPGallocate_desc(int line, const char *name);
+bool		ECPGdo_descriptor(int, const char *, const char *, const char *);
+bool		ECPGdeallocate_desc(int, const char *);
+bool		ECPGallocate_desc(int, const char *);
 bool		ECPGget_desc_header(int, const char *, int *);
-bool		ECPGget_desc(int, const char *, int,...);
+bool		ECPGget_desc(int, const char *, int, ...);
 bool		ECPGset_desc_header(int, const char *, int);
-bool		ECPGset_desc(int, const char *, int,...);
+bool		ECPGset_desc(int, const char *, int, ...);
 
 void		ECPGset_noind_null(enum ECPGttype, void *);
 bool		ECPGis_noind_null(enum ECPGttype, void *);
-bool		ECPGdescribe(int, bool, const char *,...);
+bool		ECPGdescribe(int, bool, const char *, ...);
 
 /* dynamic result allocation */
 void		ECPGfree_auto_mem(void);
diff --git a/src/interfaces/ecpg/test/expected/connect-test1.c.in b/src/interfaces/ecpg/test/expected/connect-test1.c.in
index a6e862e13f2..f0dac0e68b5 100644
--- a/src/interfaces/ecpg/test/expected/connect-test1.c.in
+++ b/src/interfaces/ecpg/test/expected/connect-test1.c.in
@@ -1,6 +1,5 @@
 /* Processed by ecpg (regression mode) */
 /* These include files are added by the preprocessor */
-#include <ecpgtype.h>
 #include <ecpglib.h>
 #include <ecpgerrno.h>
 #include <sqlca.h>
-- 
GitLab