aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/libpq.sgml20
-rw-r--r--src/interfaces/libpq/blibpqdll.def4
-rw-r--r--src/interfaces/libpq/fe-connect.c12
-rw-r--r--src/interfaces/libpq/libpq-fe.h3
-rw-r--r--src/interfaces/libpq/libpqddll.def232
-rw-r--r--src/interfaces/libpq/libpqdll.def1
6 files changed, 154 insertions, 118 deletions
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 5b94442238a..402f77bd7d4 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.157 2004/06/08 13:49:22 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.158 2004/08/11 18:06:00 tgl Exp $
-->
<chapter id="libpq">
@@ -894,6 +894,24 @@ only protocol 2.0. (Protocol 1.0 is obsolete and not supported by <application>
</listitem>
</varlistentry>
+<varlistentry>
+<term><function>PQserverVersion</function><indexterm><primary>PQserverVersion</></></term>
+<listitem>
+<para>
+ Returns an integer representing the backend version.
+<synopsis>
+int PQserverVersion(const PGconn *conn);
+</synopsis>
+Applications may use this to determine the version of the database server they
+are connected to. The number is formed by converting the major, minor, and
+revision numbers into two digit numbers and appending them together. For
+example, version 7.4.2 will be returned as 70402, and version 8.1 will be
+returned as 80100 (leading zeroes are not shown). Zero is returned if the
+connection is bad.
+</para>
+</listitem>
+</varlistentry>
+
<varlistentry>
<term><function>PQerrorMessage</function><indexterm><primary>PQerrorMessage</></></term>
<listitem>
diff --git a/src/interfaces/libpq/blibpqdll.def b/src/interfaces/libpq/blibpqdll.def
index eb78e770f8a..279d9586756 100644
--- a/src/interfaces/libpq/blibpqdll.def
+++ b/src/interfaces/libpq/blibpqdll.def
@@ -113,6 +113,8 @@ EXPORTS
_PQfformat @ 109
_PQexecPrepared @ 110
_PQsendQueryPrepared @ 111
+ _PQdsplen @ 112
+ _PQserverVersion @ 113
; Aliases for MS compatible names
PQconnectdb = _PQconnectdb
@@ -226,3 +228,5 @@ EXPORTS
PQfformat = _PQfformat
PQexecPrepared = _PQexecPrepared
PQsendQueryPrepared = _PQsendQueryPrepared
+ PQdsplen = _PQdsplen
+ PQserverVersion = _PQserverVersion
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index ef503811228..e4744854c55 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.278 2004/07/12 14:23:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.279 2004/08/11 18:06:01 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2872,6 +2872,16 @@ PQprotocolVersion(const PGconn *conn)
return PG_PROTOCOL_MAJOR(conn->pversion);
}
+int
+PQserverVersion(const PGconn *conn)
+{
+ if (!conn)
+ return 0;
+ if (conn->status == CONNECTION_BAD)
+ return 0;
+ return conn->sversion;
+}
+
char *
PQerrorMessage(const PGconn *conn)
{
diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h
index 7a143888bb4..fbd31d01bf2 100644
--- a/src/interfaces/libpq/libpq-fe.h
+++ b/src/interfaces/libpq/libpq-fe.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.104 2004/03/24 03:44:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.105 2004/08/11 18:06:01 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -248,6 +248,7 @@ extern PGTransactionStatusType PQtransactionStatus(const PGconn *conn);
extern const char *PQparameterStatus(const PGconn *conn,
const char *paramName);
extern int PQprotocolVersion(const PGconn *conn);
+extern int PQserverVersion(const PGconn *conn);
extern char *PQerrorMessage(const PGconn *conn);
extern int PQsocket(const PGconn *conn);
extern int PQbackendPID(const PGconn *conn);
diff --git a/src/interfaces/libpq/libpqddll.def b/src/interfaces/libpq/libpqddll.def
index bd2460dffbc..7a05da81171 100644
--- a/src/interfaces/libpq/libpqddll.def
+++ b/src/interfaces/libpq/libpqddll.def
@@ -1,115 +1,117 @@
-; DEF file for MS VC++
-LIBRARY LIBPQD
-DESCRIPTION "PostgreSQL Client Library"
-EXPORTS
- PQconnectdb @ 1
- PQsetdbLogin @ 2
- PQconndefaults @ 3
- PQfinish @ 4
- PQreset @ 5
- PQrequestCancel @ 6
- PQdb @ 7
- PQuser @ 8
- PQpass @ 9
- PQhost @ 10
- PQport @ 11
- PQtty @ 12
- PQoptions @ 13
- PQstatus @ 14
- PQerrorMessage @ 15
- PQsocket @ 16
- PQbackendPID @ 17
- PQtrace @ 18
- PQuntrace @ 19
- PQsetNoticeProcessor @ 20
- PQexec @ 21
- PQnotifies @ 22
- PQsendQuery @ 23
- PQgetResult @ 24
- PQisBusy @ 25
- PQconsumeInput @ 26
- PQgetline @ 27
- PQputline @ 28
- PQgetlineAsync @ 29
- PQputnbytes @ 30
- PQendcopy @ 31
- PQfn @ 32
- PQresultStatus @ 33
- PQntuples @ 34
- PQnfields @ 35
- PQbinaryTuples @ 36
- PQfname @ 37
- PQfnumber @ 38
- PQftype @ 39
- PQfsize @ 40
- PQfmod @ 41
- PQcmdStatus @ 42
- PQoidStatus @ 43
- PQcmdTuples @ 44
- PQgetvalue @ 45
- PQgetlength @ 46
- PQgetisnull @ 47
- PQclear @ 48
- PQmakeEmptyPGresult @ 49
- PQprint @ 50
- PQdisplayTuples @ 51
- PQprintTuples @ 52
- lo_open @ 53
- lo_close @ 54
- lo_read @ 55
- lo_write @ 56
- lo_lseek @ 57
- lo_creat @ 58
- lo_tell @ 59
- lo_unlink @ 60
- lo_import @ 61
- lo_export @ 62
- pgresStatus @ 63
- PQmblen @ 64
- PQresultErrorMessage @ 65
- PQresStatus @ 66
- termPQExpBuffer @ 67
- appendPQExpBufferChar @ 68
- initPQExpBuffer @ 69
- resetPQExpBuffer @ 70
- PQoidValue @ 71
- PQclientEncoding @ 72
- PQenv2encoding @ 73
- appendBinaryPQExpBuffer @ 74
- appendPQExpBufferStr @ 75
- destroyPQExpBuffer @ 76
- createPQExpBuffer @ 77
- PQconninfoFree @ 78
- PQconnectPoll @ 79
- PQconnectStart @ 80
- PQflush @ 81
- PQisnonblocking @ 82
- PQresetPoll @ 83
- PQresetStart @ 84
- PQsetClientEncoding @ 85
- PQsetnonblocking @ 86
- PQfreeNotify @ 87
- PQescapeString @ 88
- PQescapeBytea @ 89
- printfPQExpBuffer @ 90
- appendPQExpBuffer @ 91
- pg_encoding_to_char @ 92
- pg_utf_mblen @ 93
- PQunescapeBytea @ 94
- PQfreemem @ 95
- PQtransactionStatus @ 96
- PQparameterStatus @ 97
- PQprotocolVersion @ 98
- PQsetErrorVerbosity @ 99
- PQsetNoticeReceiver @ 100
- PQexecParams @ 101
- PQsendQueryParams @ 102
- PQputCopyData @ 103
- PQputCopyEnd @ 104
- PQgetCopyData @ 105
- PQresultErrorField @ 106
- PQftable @ 107
- PQftablecol @ 108
- PQfformat @ 109
- PQexecPrepared @ 110
- PQsendQueryPrepared @ 111
+; DEF file for MS VC++
+LIBRARY LIBPQD
+DESCRIPTION "PostgreSQL Client Library"
+EXPORTS
+ PQconnectdb @ 1
+ PQsetdbLogin @ 2
+ PQconndefaults @ 3
+ PQfinish @ 4
+ PQreset @ 5
+ PQrequestCancel @ 6
+ PQdb @ 7
+ PQuser @ 8
+ PQpass @ 9
+ PQhost @ 10
+ PQport @ 11
+ PQtty @ 12
+ PQoptions @ 13
+ PQstatus @ 14
+ PQerrorMessage @ 15
+ PQsocket @ 16
+ PQbackendPID @ 17
+ PQtrace @ 18
+ PQuntrace @ 19
+ PQsetNoticeProcessor @ 20
+ PQexec @ 21
+ PQnotifies @ 22
+ PQsendQuery @ 23
+ PQgetResult @ 24
+ PQisBusy @ 25
+ PQconsumeInput @ 26
+ PQgetline @ 27
+ PQputline @ 28
+ PQgetlineAsync @ 29
+ PQputnbytes @ 30
+ PQendcopy @ 31
+ PQfn @ 32
+ PQresultStatus @ 33
+ PQntuples @ 34
+ PQnfields @ 35
+ PQbinaryTuples @ 36
+ PQfname @ 37
+ PQfnumber @ 38
+ PQftype @ 39
+ PQfsize @ 40
+ PQfmod @ 41
+ PQcmdStatus @ 42
+ PQoidStatus @ 43
+ PQcmdTuples @ 44
+ PQgetvalue @ 45
+ PQgetlength @ 46
+ PQgetisnull @ 47
+ PQclear @ 48
+ PQmakeEmptyPGresult @ 49
+ PQprint @ 50
+ PQdisplayTuples @ 51
+ PQprintTuples @ 52
+ lo_open @ 53
+ lo_close @ 54
+ lo_read @ 55
+ lo_write @ 56
+ lo_lseek @ 57
+ lo_creat @ 58
+ lo_tell @ 59
+ lo_unlink @ 60
+ lo_import @ 61
+ lo_export @ 62
+ pgresStatus @ 63
+ PQmblen @ 64
+ PQresultErrorMessage @ 65
+ PQresStatus @ 66
+ termPQExpBuffer @ 67
+ appendPQExpBufferChar @ 68
+ initPQExpBuffer @ 69
+ resetPQExpBuffer @ 70
+ PQoidValue @ 71
+ PQclientEncoding @ 72
+ PQenv2encoding @ 73
+ appendBinaryPQExpBuffer @ 74
+ appendPQExpBufferStr @ 75
+ destroyPQExpBuffer @ 76
+ createPQExpBuffer @ 77
+ PQconninfoFree @ 78
+ PQconnectPoll @ 79
+ PQconnectStart @ 80
+ PQflush @ 81
+ PQisnonblocking @ 82
+ PQresetPoll @ 83
+ PQresetStart @ 84
+ PQsetClientEncoding @ 85
+ PQsetnonblocking @ 86
+ PQfreeNotify @ 87
+ PQescapeString @ 88
+ PQescapeBytea @ 89
+ printfPQExpBuffer @ 90
+ appendPQExpBuffer @ 91
+ pg_encoding_to_char @ 92
+ pg_utf_mblen @ 93
+ PQunescapeBytea @ 94
+ PQfreemem @ 95
+ PQtransactionStatus @ 96
+ PQparameterStatus @ 97
+ PQprotocolVersion @ 98
+ PQsetErrorVerbosity @ 99
+ PQsetNoticeReceiver @ 100
+ PQexecParams @ 101
+ PQsendQueryParams @ 102
+ PQputCopyData @ 103
+ PQputCopyEnd @ 104
+ PQgetCopyData @ 105
+ PQresultErrorField @ 106
+ PQftable @ 107
+ PQftablecol @ 108
+ PQfformat @ 109
+ PQexecPrepared @ 110
+ PQsendQueryPrepared @ 111
+ PQdsplen @ 112
+ PQserverVersion @ 113
diff --git a/src/interfaces/libpq/libpqdll.def b/src/interfaces/libpq/libpqdll.def
index 302d2992664..2a667c84492 100644
--- a/src/interfaces/libpq/libpqdll.def
+++ b/src/interfaces/libpq/libpqdll.def
@@ -114,3 +114,4 @@ EXPORTS
PQexecPrepared @ 110
PQsendQueryPrepared @ 111
PQdsplen @ 112
+ PQserverVersion @ 113