diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index d51389fcfd4..d2dfc34f167 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -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 diff --git a/ext/pgsql/tests/00version.phpt b/ext/pgsql/tests/00version.phpt index ea070093d44..e4e442d0182 100644 --- a/ext/pgsql/tests/00version.phpt +++ b/ext/pgsql/tests/00version.phpt @@ -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