aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2009-09-18 13:13:32 +0000
committerMichael Meskes <meskes@postgresql.org>2009-09-18 13:13:32 +0000
commitdacaeff5ae2978bd1e77c16bd79ce99d5f9b5382 (patch)
tree8f783e939052c8347b16dfd13c465ffec430e416 /src
parent20f7f019f9a6c44e71d33ca3d1b616b4fc1bb3c8 (diff)
downloadpostgresql-dacaeff5ae2978bd1e77c16bd79ce99d5f9b5382.tar.gz
postgresql-dacaeff5ae2978bd1e77c16bd79ce99d5f9b5382.zip
Added patch by Bernd Helmle <bernd.helmle@credativ.de> that adds a low level
function that returns the current transaction status.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/ecpglib/exports.txt3
-rw-r--r--src/interfaces/ecpg/ecpglib/misc.c17
-rw-r--r--src/interfaces/ecpg/include/ecpglib.h4
3 files changed, 20 insertions, 4 deletions
diff --git a/src/interfaces/ecpg/ecpglib/exports.txt b/src/interfaces/ecpg/ecpglib/exports.txt
index 23f4733c4a5..c63994ff11b 100644
--- a/src/interfaces/ecpg/ecpglib/exports.txt
+++ b/src/interfaces/ecpg/ecpglib/exports.txt
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/exports.txt,v 1.5 2008/03/25 12:45:25 meskes Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/exports.txt,v 1.6 2009/09/18 13:13:32 meskes Exp $
# Functions to be exported by ecpglib DLL
ECPGallocate_desc 1
ECPGconnect 2
@@ -26,3 +26,4 @@ ECPGstatus 23
ECPGtrans 24
sqlprint 25
ECPGget_PGconn 26
+ECPGtransactionStatus 27
diff --git a/src/interfaces/ecpg/ecpglib/misc.c b/src/interfaces/ecpg/ecpglib/misc.c
index f70e3734ba5..fafe9aceba8 100644
--- a/src/interfaces/ecpg/ecpglib/misc.c
+++ b/src/interfaces/ecpg/ecpglib/misc.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.51 2009/09/03 09:09:01 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.52 2009/09/18 13:13:32 meskes Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -170,6 +170,21 @@ ECPGstatus(int lineno, const char *connection_name)
return (true);
}
+PGTransactionStatusType
+ECPGtransactionStatus(const char *connection_name)
+{
+ const struct connection *con;
+
+ con = ecpg_get_connection(connection_name);
+ if (con == NULL) {
+ /* transaction status is unknown */
+ return PQTRANS_UNKNOWN;
+ }
+
+ return PQtransactionStatus(con->connection);
+
+}
+
bool
ECPGtrans(int lineno, const char *connection_name, const char *transaction)
{
diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index eb7c5f86370..bbb81783051 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.79 2009/06/11 14:49:13 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpglib.h,v 1.80 2009/09/18 13:13:32 meskes Exp $
*/
#ifndef _ECPGLIB_H
@@ -59,7 +59,7 @@ 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 *);
-
+PGTransactionStatusType ECPGtransactionStatus(const char *);
char *ECPGerrmsg(void);