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"> <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>.) only protocol 2.0. (Protocol 1.0 is obsolete and not supported by <application>libpq</application>.)
</para> </para>
</listitem> </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>
<varlistentry> <varlistentry>

View File

@ -113,6 +113,8 @@ EXPORTS
_PQfformat @ 109 _PQfformat @ 109
_PQexecPrepared @ 110 _PQexecPrepared @ 110
_PQsendQueryPrepared @ 111 _PQsendQueryPrepared @ 111
_PQdsplen @ 112
_PQserverVersion @ 113
; Aliases for MS compatible names ; Aliases for MS compatible names
PQconnectdb = _PQconnectdb PQconnectdb = _PQconnectdb
@ -226,3 +228,5 @@ EXPORTS
PQfformat = _PQfformat PQfformat = _PQfformat
PQexecPrepared = _PQexecPrepared PQexecPrepared = _PQexecPrepared
PQsendQueryPrepared = _PQsendQueryPrepared PQsendQueryPrepared = _PQsendQueryPrepared
PQdsplen = _PQdsplen
PQserverVersion = _PQserverVersion

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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); 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 * char *
PQerrorMessage(const PGconn *conn) PQerrorMessage(const PGconn *conn)
{ {

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * 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, extern const char *PQparameterStatus(const PGconn *conn,
const char *paramName); const char *paramName);
extern int PQprotocolVersion(const PGconn *conn); extern int PQprotocolVersion(const PGconn *conn);
extern int PQserverVersion(const PGconn *conn);
extern char *PQerrorMessage(const PGconn *conn); extern char *PQerrorMessage(const PGconn *conn);
extern int PQsocket(const PGconn *conn); extern int PQsocket(const PGconn *conn);
extern int PQbackendPID(const PGconn *conn); extern int PQbackendPID(const PGconn *conn);

View File

@ -1,115 +1,117 @@
; DEF file for MS VC++ ; DEF file for MS VC++
LIBRARY LIBPQD LIBRARY LIBPQD
DESCRIPTION "PostgreSQL Client Library" DESCRIPTION "PostgreSQL Client Library"
EXPORTS EXPORTS
PQconnectdb @ 1 PQconnectdb @ 1
PQsetdbLogin @ 2 PQsetdbLogin @ 2
PQconndefaults @ 3 PQconndefaults @ 3
PQfinish @ 4 PQfinish @ 4
PQreset @ 5 PQreset @ 5
PQrequestCancel @ 6 PQrequestCancel @ 6
PQdb @ 7 PQdb @ 7
PQuser @ 8 PQuser @ 8
PQpass @ 9 PQpass @ 9
PQhost @ 10 PQhost @ 10
PQport @ 11 PQport @ 11
PQtty @ 12 PQtty @ 12
PQoptions @ 13 PQoptions @ 13
PQstatus @ 14 PQstatus @ 14
PQerrorMessage @ 15 PQerrorMessage @ 15
PQsocket @ 16 PQsocket @ 16
PQbackendPID @ 17 PQbackendPID @ 17
PQtrace @ 18 PQtrace @ 18
PQuntrace @ 19 PQuntrace @ 19
PQsetNoticeProcessor @ 20 PQsetNoticeProcessor @ 20
PQexec @ 21 PQexec @ 21
PQnotifies @ 22 PQnotifies @ 22
PQsendQuery @ 23 PQsendQuery @ 23
PQgetResult @ 24 PQgetResult @ 24
PQisBusy @ 25 PQisBusy @ 25
PQconsumeInput @ 26 PQconsumeInput @ 26
PQgetline @ 27 PQgetline @ 27
PQputline @ 28 PQputline @ 28
PQgetlineAsync @ 29 PQgetlineAsync @ 29
PQputnbytes @ 30 PQputnbytes @ 30
PQendcopy @ 31 PQendcopy @ 31
PQfn @ 32 PQfn @ 32
PQresultStatus @ 33 PQresultStatus @ 33
PQntuples @ 34 PQntuples @ 34
PQnfields @ 35 PQnfields @ 35
PQbinaryTuples @ 36 PQbinaryTuples @ 36
PQfname @ 37 PQfname @ 37
PQfnumber @ 38 PQfnumber @ 38
PQftype @ 39 PQftype @ 39
PQfsize @ 40 PQfsize @ 40
PQfmod @ 41 PQfmod @ 41
PQcmdStatus @ 42 PQcmdStatus @ 42
PQoidStatus @ 43 PQoidStatus @ 43
PQcmdTuples @ 44 PQcmdTuples @ 44
PQgetvalue @ 45 PQgetvalue @ 45
PQgetlength @ 46 PQgetlength @ 46
PQgetisnull @ 47 PQgetisnull @ 47
PQclear @ 48 PQclear @ 48
PQmakeEmptyPGresult @ 49 PQmakeEmptyPGresult @ 49
PQprint @ 50 PQprint @ 50
PQdisplayTuples @ 51 PQdisplayTuples @ 51
PQprintTuples @ 52 PQprintTuples @ 52
lo_open @ 53 lo_open @ 53
lo_close @ 54 lo_close @ 54
lo_read @ 55 lo_read @ 55
lo_write @ 56 lo_write @ 56
lo_lseek @ 57 lo_lseek @ 57
lo_creat @ 58 lo_creat @ 58
lo_tell @ 59 lo_tell @ 59
lo_unlink @ 60 lo_unlink @ 60
lo_import @ 61 lo_import @ 61
lo_export @ 62 lo_export @ 62
pgresStatus @ 63 pgresStatus @ 63
PQmblen @ 64 PQmblen @ 64
PQresultErrorMessage @ 65 PQresultErrorMessage @ 65
PQresStatus @ 66 PQresStatus @ 66
termPQExpBuffer @ 67 termPQExpBuffer @ 67
appendPQExpBufferChar @ 68 appendPQExpBufferChar @ 68
initPQExpBuffer @ 69 initPQExpBuffer @ 69
resetPQExpBuffer @ 70 resetPQExpBuffer @ 70
PQoidValue @ 71 PQoidValue @ 71
PQclientEncoding @ 72 PQclientEncoding @ 72
PQenv2encoding @ 73 PQenv2encoding @ 73
appendBinaryPQExpBuffer @ 74 appendBinaryPQExpBuffer @ 74
appendPQExpBufferStr @ 75 appendPQExpBufferStr @ 75
destroyPQExpBuffer @ 76 destroyPQExpBuffer @ 76
createPQExpBuffer @ 77 createPQExpBuffer @ 77
PQconninfoFree @ 78 PQconninfoFree @ 78
PQconnectPoll @ 79 PQconnectPoll @ 79
PQconnectStart @ 80 PQconnectStart @ 80
PQflush @ 81 PQflush @ 81
PQisnonblocking @ 82 PQisnonblocking @ 82
PQresetPoll @ 83 PQresetPoll @ 83
PQresetStart @ 84 PQresetStart @ 84
PQsetClientEncoding @ 85 PQsetClientEncoding @ 85
PQsetnonblocking @ 86 PQsetnonblocking @ 86
PQfreeNotify @ 87 PQfreeNotify @ 87
PQescapeString @ 88 PQescapeString @ 88
PQescapeBytea @ 89 PQescapeBytea @ 89
printfPQExpBuffer @ 90 printfPQExpBuffer @ 90
appendPQExpBuffer @ 91 appendPQExpBuffer @ 91
pg_encoding_to_char @ 92 pg_encoding_to_char @ 92
pg_utf_mblen @ 93 pg_utf_mblen @ 93
PQunescapeBytea @ 94 PQunescapeBytea @ 94
PQfreemem @ 95 PQfreemem @ 95
PQtransactionStatus @ 96 PQtransactionStatus @ 96
PQparameterStatus @ 97 PQparameterStatus @ 97
PQprotocolVersion @ 98 PQprotocolVersion @ 98
PQsetErrorVerbosity @ 99 PQsetErrorVerbosity @ 99
PQsetNoticeReceiver @ 100 PQsetNoticeReceiver @ 100
PQexecParams @ 101 PQexecParams @ 101
PQsendQueryParams @ 102 PQsendQueryParams @ 102
PQputCopyData @ 103 PQputCopyData @ 103
PQputCopyEnd @ 104 PQputCopyEnd @ 104
PQgetCopyData @ 105 PQgetCopyData @ 105
PQresultErrorField @ 106 PQresultErrorField @ 106
PQftable @ 107 PQftable @ 107
PQftablecol @ 108 PQftablecol @ 108
PQfformat @ 109 PQfformat @ 109
PQexecPrepared @ 110 PQexecPrepared @ 110
PQsendQueryPrepared @ 111 PQsendQueryPrepared @ 111
PQdsplen @ 112
PQserverVersion @ 113

View File

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