Merge branch 'PHP-5.6'

* PHP-5.6:
  Always initialize pg_version() result array elements to prevent failed test with older postgresql servers. Add missing client_encoding element.
This commit is contained in:
Yasuo Ohgaki 2014-01-15 14:28:08 +09:00
commit a92c5b14cf
2 changed files with 27 additions and 34 deletions

View File

@ -1504,38 +1504,29 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type
add_assoc_long(return_value, "protocol", PQprotocolVersion(pgsql));
#if HAVE_PQPARAMETERSTATUS
if (PQprotocolVersion(pgsql) >= 3) {
/* 8.0 or grater supports protorol version 3 */
char *tmp;
add_assoc_string(return_value, "server", (char*)PQparameterStatus(pgsql, "server_version"), 1);
if ((tmp = (char*)PQparameterStatus(pgsql, "server_encoding"))) {
add_assoc_string(return_value, "server_encoding", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "application_name"))) {
add_assoc_string(return_value, "application_name", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "is_superuser"))) {
add_assoc_string(return_value, "is_superuser", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "session_authorization"))) {
add_assoc_string(return_value, "session_authorization", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "DateStyle"))) {
add_assoc_string(return_value, "DateStyle", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "IntervalStyle"))) {
add_assoc_string(return_value, "IntervalStyle", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "TimeZone"))) {
add_assoc_string(return_value, "TimeZone", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "integer_datetimes"))) {
add_assoc_string(return_value, "integer_datetimes", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "standard_conforming_strings"))) {
add_assoc_string(return_value, "standard_conforming_strings", tmp, 1);
}
if ((tmp = (char*)PQparameterStatus(pgsql, "server_encoding"))) {
add_assoc_string(return_value, "server_encoding", tmp, 1);
}
tmp = (char*)PQparameterStatus(pgsql, "server_encoding");
add_assoc_string(return_value, "server_encoding", tmp, 1);
tmp = (char*)PQparameterStatus(pgsql, "client_encoding");
add_assoc_string(return_value, "client_encoding", tmp, 1);
tmp = (char*)PQparameterStatus(pgsql, "is_superuser");
add_assoc_string(return_value, "is_superuser", tmp, 1);
tmp = (char*)PQparameterStatus(pgsql, "session_authorization");
add_assoc_string(return_value, "session_authorization", tmp, 1);
tmp = (char*)PQparameterStatus(pgsql, "DateStyle");
add_assoc_string(return_value, "DateStyle", tmp, 1);
tmp = (char*)PQparameterStatus(pgsql, "IntervalStyle");
add_assoc_string(return_value, "IntervalStyle", tmp ? tmp : "", 1);
tmp = (char*)PQparameterStatus(pgsql, "TimeZone");
add_assoc_string(return_value, "TimeZone", tmp ? tmp : "", 1);
tmp = (char*)PQparameterStatus(pgsql, "integer_datetimes");
add_assoc_string(return_value, "integer_datetimes", tmp ? tmp : "", 1);
tmp = (char*)PQparameterStatus(pgsql, "standard_conforming_strings");
add_assoc_string(return_value, "standard_conforming_strings", tmp ? tmp : "", 1);
tmp = (char*)PQparameterStatus(pgsql, "application_name");
add_assoc_string(return_value, "application_name", tmp ? tmp : "", 1);
}
#endif
#endif

View File

@ -18,7 +18,7 @@ var_dump(serialize($_ENV));
echo "OK";
?>
--EXPECTF--
array(12) {
array(13) {
["client"]=>
string(%d) "%s"
["protocol"]=>
@ -27,8 +27,8 @@ array(12) {
string(%d) "%s"
["server_encoding"]=>
string(%d) "%s"
["application_name"]=>
string(0) ""
["client_encoding"]=>
string(%d) "%s"
["is_superuser"]=>
string(%d) "%s"
["session_authorization"]=>
@ -36,13 +36,15 @@ array(12) {
["DateStyle"]=>
string(%d) "%s"
["IntervalStyle"]=>
string(%d) "%s"
string(%d) %s
["TimeZone"]=>
string(%d) "%s"
["integer_datetimes"]=>
string(%d) "%s"
["standard_conforming_strings"]=>
string(%d) "%s"
["application_name"]=>
string(%d) %s
}
string(%d) "%s"
OK