Add PQserverVersion() to libpq to provide more-convenient access to

the server version number.  This commit also removes bogus DOS line
endings from libpqddll.def.

Greg Sabino Mullane
This commit is contained in:
Tom Lane 2004-08-11 18:06:01 +00:00
parent b2d9fbeef2
commit f79fbb2bec
6 changed files with 154 additions and 118 deletions

View File

@ -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">
@ -892,6 +892,24 @@ The 3.0 protocol will normally be used when communicating with
only protocol 2.0. (Protocol 1.0 is obsolete and not supported by <application>libpq</application>.)
</para>
</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>

View File

@ -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

View File

@ -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)
{

View File

@ -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);

View File

@ -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

View File

@ -114,3 +114,4 @@ EXPORTS
PQexecPrepared @ 110
PQsendQueryPrepared @ 111
PQdsplen @ 112
PQserverVersion @ 113