diff options
author | Anatol Belski <ab@php.net> | 2017-12-15 15:34:44 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-12-15 15:34:44 +0100 |
commit | 171f1baff1116f646ea6a860fa7c4ea84f2772ea (patch) | |
tree | 36c880f9386bb99f4186defd01acccb51afa5682 /ext/pgsql | |
parent | 90cccffe89ab7526c3e3a00420a04ac419161458 (diff) | |
parent | acf1472ffde08a514fa44ef4b5baa0c67ae1b3f2 (diff) | |
download | php-git-171f1baff1116f646ea6a860fa7c4ea84f2772ea.tar.gz |
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
Fixed bug #75671 pg_version() crashes when called on a connection to cockroach
Diffstat (limited to 'ext/pgsql')
-rw-r--r-- | ext/pgsql/pgsql.c | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index c93fdf2e72..f7784197ca 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1645,26 +1645,21 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type /* 8.0 or grater supports protorol version 3 */ char *tmp; add_assoc_string(return_value, "server", (char*)PQparameterStatus(pgsql, "server_version")); - tmp = (char*)PQparameterStatus(pgsql, "server_encoding"); - add_assoc_string(return_value, "server_encoding", tmp); - tmp = (char*)PQparameterStatus(pgsql, "client_encoding"); - add_assoc_string(return_value, "client_encoding", tmp); - tmp = (char*)PQparameterStatus(pgsql, "is_superuser"); - add_assoc_string(return_value, "is_superuser", tmp); - tmp = (char*)PQparameterStatus(pgsql, "session_authorization"); - add_assoc_string(return_value, "session_authorization", tmp); - tmp = (char*)PQparameterStatus(pgsql, "DateStyle"); - add_assoc_string(return_value, "DateStyle", tmp); - tmp = (char*)PQparameterStatus(pgsql, "IntervalStyle"); - add_assoc_string(return_value, "IntervalStyle", tmp ? tmp : ""); - tmp = (char*)PQparameterStatus(pgsql, "TimeZone"); - add_assoc_string(return_value, "TimeZone", tmp ? tmp : ""); - tmp = (char*)PQparameterStatus(pgsql, "integer_datetimes"); - add_assoc_string(return_value, "integer_datetimes", tmp ? tmp : ""); - tmp = (char*)PQparameterStatus(pgsql, "standard_conforming_strings"); - add_assoc_string(return_value, "standard_conforming_strings", tmp ? tmp : ""); - tmp = (char*)PQparameterStatus(pgsql, "application_name"); - add_assoc_string(return_value, "application_name", tmp ? tmp : ""); + +#define PHP_PQ_COPY_PARAM(_x) tmp = (char*)PQparameterStatus(pgsql, _x); \ + if(tmp) add_assoc_string(return_value, _x, tmp); \ + else add_assoc_null(return_value, _x); + + PHP_PQ_COPY_PARAM("server_encoding"); + PHP_PQ_COPY_PARAM("client_encoding"); + PHP_PQ_COPY_PARAM("is_superuser"); + PHP_PQ_COPY_PARAM("session_authorization"); + PHP_PQ_COPY_PARAM("DateStyle"); + PHP_PQ_COPY_PARAM("IntervalStyle"); + PHP_PQ_COPY_PARAM("TimeZone"); + PHP_PQ_COPY_PARAM("integer_datetimes"); + PHP_PQ_COPY_PARAM("standard_conforming_strings"); + PHP_PQ_COPY_PARAM("application_name"); } #endif #endif |