summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuo Ohgaki <yohgaki@php.net>2014-01-14 10:10:48 +0900
committerYasuo Ohgaki <yohgaki@php.net>2014-01-14 10:10:48 +0900
commit58dff7cee52c3df839517aa3eb3da6c4d0f23066 (patch)
treee957e38a15670d05541689acba62dab9417b5ac3
parent029d019dacd2569835c6fdb2d17838aad0af9f1c (diff)
downloadphp-git-58dff7cee52c3df839517aa3eb3da6c4d0f23066.tar.gz
Made pg_version() return full connection info.
-rw-r--r--NEWS3
-rw-r--r--ext/pgsql/pgsql.c12
-rw-r--r--ext/pgsql/tests/00version.phpt20
3 files changed, 33 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index a16ae7ba6f..01d100c448 100644
--- a/NEWS
+++ b/NEWS
@@ -73,6 +73,9 @@ PHP NEWS
. Included phpdbg sapi (RFC: https://wiki.php.net/rfc/phpdbg).
(Felipe Pena, Joe Watkins and Bob Weinand)
+- pgsql:
+ . pg_version() returns full report which obtained by PQparameterStatus().
+
- Session:
. Fixed Bug #65315 (session.hash_function silently fallback to default md5)
(Yasuo)
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index cab87cf450..29a5b1082b 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -19,7 +19,7 @@
| Chris Kings-Lynne <chriskl@php.net> (v3 protocol) |
+----------------------------------------------------------------------+
*/
-
+
/* $Id$ */
#include <stdlib.h>
@@ -1505,6 +1505,16 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type
#if HAVE_PQPARAMETERSTATUS
if (PQprotocolVersion(pgsql) >= 3) {
add_assoc_string(return_value, "server", (char*)PQparameterStatus(pgsql, "server_version"), 1);
+ add_assoc_string(return_value, "server_encoding", (char*)PQparameterStatus(pgsql, "server_encoding"), 1);
+ add_assoc_string(return_value, "application_name", (char*)PQparameterStatus(pgsql, "application_name"), 1);
+ add_assoc_string(return_value, "is_superuser", (char*)PQparameterStatus(pgsql, "is_superuser"), 1);
+ add_assoc_string(return_value, "session_authorization", (char*)PQparameterStatus(pgsql, "session_authorization"), 1);
+ add_assoc_string(return_value, "DateStyle", (char*)PQparameterStatus(pgsql, "DateStyle"), 1);
+ add_assoc_string(return_value, "IntervalStyle", (char*)PQparameterStatus(pgsql, "IntervalStyle"), 1);
+ add_assoc_string(return_value, "TimeZone", (char*)PQparameterStatus(pgsql, "TimeZone"), 1);
+ add_assoc_string(return_value, "integer_datetimes", (char*)PQparameterStatus(pgsql, "integer_datetimes"), 1);
+ add_assoc_string(return_value, "standard_conforming_strings", (char*)PQparameterStatus(pgsql, "standard_conforming_strings"), 1);
+ add_assoc_string(return_value, "server_encoding", (char*)PQparameterStatus(pgsql, "server_encoding"), 1);
}
#endif
#endif
diff --git a/ext/pgsql/tests/00version.phpt b/ext/pgsql/tests/00version.phpt
index d72d9e1f21..ea070093d4 100644
--- a/ext/pgsql/tests/00version.phpt
+++ b/ext/pgsql/tests/00version.phpt
@@ -18,13 +18,31 @@ var_dump(serialize($_ENV));
echo "OK";
?>
--EXPECTF--
-array(3) {
+array(12) {
["client"]=>
string(%d) "%s"
["protocol"]=>
int(%d)
["server"]=>
string(%d) "%s"
+ ["server_encoding"]=>
+ string(%d) "%s"
+ ["application_name"]=>
+ string(0) ""
+ ["is_superuser"]=>
+ string(%d) "%s"
+ ["session_authorization"]=>
+ string(%d) "%s"
+ ["DateStyle"]=>
+ string(%d) "%s"
+ ["IntervalStyle"]=>
+ string(%d) "%s"
+ ["TimeZone"]=>
+ string(%d) "%s"
+ ["integer_datetimes"]=>
+ string(%d) "%s"
+ ["standard_conforming_strings"]=>
+ string(%d) "%s"
}
string(%d) "%s"
OK