helly           Tue Jul 22 19:05:17 2003 EDT

  Modified files:              
    /php-src/ext/pgsql  config.m4 php_pgsql.h pgsql.c 
  Log:
  Added pg_version() which returns an associative array of client/protocol/server
  version.
  @Added pg_version() function. (Marcus)
  
  
Index: php-src/ext/pgsql/config.m4
diff -u php-src/ext/pgsql/config.m4:1.34 php-src/ext/pgsql/config.m4:1.35
--- php-src/ext/pgsql/config.m4:1.34    Wed Jun 26 09:07:40 2002
+++ php-src/ext/pgsql/config.m4 Tue Jul 22 19:05:17 2003
@@ -1,5 +1,5 @@
 dnl
-dnl $Id: config.m4,v 1.34 2002/06/26 13:07:40 derick Exp $
+dnl $Id: config.m4,v 1.35 2003/07/22 23:05:17 helly Exp $
 dnl
 
 AC_DEFUN(PHP_PGSQL_CHECK_FUNCTIONS,[
@@ -57,6 +57,8 @@
   AC_CHECK_LIB(pq, PQcmdTuples,AC_DEFINE(HAVE_PQCMDTUPLES,1,[Broken libpq under 
windows]))
   AC_CHECK_LIB(pq, PQoidValue,AC_DEFINE(HAVE_PQOIDVALUE,1,[Older PostgreSQL]))
   AC_CHECK_LIB(pq, PQclientEncoding,AC_DEFINE(HAVE_PQCLIENTENCODING,1,[PostgreSQL 
7.0.x or later]))
+  AC_CHECK_LIB(pq, PQparameterStatus,AC_DEFINE(HAVE_PQPARAMETERSTATUS,1,[PostgreSQL 
7.4 or later]))
+  AC_CHECK_LIB(pq, PQprotocolVersion,AC_DEFINE(HAVE_PQPROTOCOLVERSION,1,[PostgreSQL 
7.4 or later]))
   AC_CHECK_LIB(pq, 
pg_encoding_to_char,AC_DEFINE(HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT,1,[Whether libpq is 
compiled with --enable-multibye]))
   LIBS=$old_LIBS
   LDFLAGS=$old_LDFLAGS
Index: php-src/ext/pgsql/php_pgsql.h
diff -u php-src/ext/pgsql/php_pgsql.h:1.62 php-src/ext/pgsql/php_pgsql.h:1.63
--- php-src/ext/pgsql/php_pgsql.h:1.62  Tue Jun 10 16:03:35 2003
+++ php-src/ext/pgsql/php_pgsql.h       Tue Jul 22 19:05:17 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: php_pgsql.h,v 1.62 2003/06/10 20:03:35 imajes Exp $ */
+/* $Id: php_pgsql.h,v 1.63 2003/07/22 23:05:17 helly Exp $ */
 
 #ifndef PHP_PGSQL_H
 #define PHP_PGSQL_H
@@ -71,6 +71,7 @@
 PHP_FUNCTION(pg_port);
 PHP_FUNCTION(pg_tty);
 PHP_FUNCTION(pg_options);
+PHP_FUNCTION(pg_version);
 PHP_FUNCTION(pg_ping);
 /* query functions */
 PHP_FUNCTION(pg_query);
Index: php-src/ext/pgsql/pgsql.c
diff -u php-src/ext/pgsql/pgsql.c:1.283 php-src/ext/pgsql/pgsql.c:1.284
--- php-src/ext/pgsql/pgsql.c:1.283     Tue Jul 22 18:05:46 2003
+++ php-src/ext/pgsql/pgsql.c   Tue Jul 22 19:05:17 2003
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.283 2003/07/22 22:05:46 helly Exp $ */
+/* $Id: pgsql.c,v 1.284 2003/07/22 23:05:17 helly Exp $ */
 
 #include <stdlib.h>
 
@@ -88,6 +88,7 @@
        PHP_FE(pg_port,                 NULL)
        PHP_FE(pg_tty,                  NULL)
        PHP_FE(pg_options,              NULL)
+       PHP_FE(pg_version,              NULL)
        PHP_FE(pg_ping,                 NULL)
        /* query functions */
        PHP_FE(pg_query,                NULL)
@@ -782,6 +783,7 @@
 #define PHP_PG_PORT 4
 #define PHP_PG_TTY 5
 #define PHP_PG_HOST 6
+#define PHP_PG_VERSION 7
 
 /* {{{ php_pgsql_get_link_info
  */
@@ -831,6 +833,18 @@
                case PHP_PG_HOST:
                        Z_STRVAL_P(return_value) = PQhost(pgsql);
                        break;
+               case PHP_PG_VERSION:
+                       array_init(return_value);
+                       add_assoc_string(return_value, "client", PG_VERSION, 1);
+#if HAVE_PQPROTOCOLVERSION
+                       add_assoc_long(return_value, "protocol", 
PQprotocolVersion(pgsql));
+#if HAVE_PQPARAMETERSTATUS
+                       if (PQprotocolVersion(pgsql) >= 3) {
+                               add_assoc_string(return_value, "server", 
PQparameterStatus(pgsql, "server_version"), 1);
+                       }
+#endif
+#endif
+                       return;
                default:
                        RETURN_FALSE;
        }
@@ -890,6 +904,14 @@
 PHP_FUNCTION(pg_host)
 {
        php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAM_PASSTHRU,PHP_PG_HOST);
+}
+/* }}} */
+
+/* {{{ proto array pg_version([resource connection])
+   Returns an array with client, protocol and server version (when available) */
+PHP_FUNCTION(pg_version)
+{
+       php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAM_PASSTHRU,PHP_PG_VERSION);
 }
 /* }}} */
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to