Skip to content

Commit 171f1ba

Browse files
committed
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
2 parents 90cccff + acf1472 commit 171f1ba

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

ext/pgsql/pgsql.c

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,26 +1645,21 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type
16451645
/* 8.0 or grater supports protorol version 3 */
16461646
char *tmp;
16471647
add_assoc_string(return_value, "server", (char*)PQparameterStatus(pgsql, "server_version"));
1648-
tmp = (char*)PQparameterStatus(pgsql, "server_encoding");
1649-
add_assoc_string(return_value, "server_encoding", tmp);
1650-
tmp = (char*)PQparameterStatus(pgsql, "client_encoding");
1651-
add_assoc_string(return_value, "client_encoding", tmp);
1652-
tmp = (char*)PQparameterStatus(pgsql, "is_superuser");
1653-
add_assoc_string(return_value, "is_superuser", tmp);
1654-
tmp = (char*)PQparameterStatus(pgsql, "session_authorization");
1655-
add_assoc_string(return_value, "session_authorization", tmp);
1656-
tmp = (char*)PQparameterStatus(pgsql, "DateStyle");
1657-
add_assoc_string(return_value, "DateStyle", tmp);
1658-
tmp = (char*)PQparameterStatus(pgsql, "IntervalStyle");
1659-
add_assoc_string(return_value, "IntervalStyle", tmp ? tmp : "");
1660-
tmp = (char*)PQparameterStatus(pgsql, "TimeZone");
1661-
add_assoc_string(return_value, "TimeZone", tmp ? tmp : "");
1662-
tmp = (char*)PQparameterStatus(pgsql, "integer_datetimes");
1663-
add_assoc_string(return_value, "integer_datetimes", tmp ? tmp : "");
1664-
tmp = (char*)PQparameterStatus(pgsql, "standard_conforming_strings");
1665-
add_assoc_string(return_value, "standard_conforming_strings", tmp ? tmp : "");
1666-
tmp = (char*)PQparameterStatus(pgsql, "application_name");
1667-
add_assoc_string(return_value, "application_name", tmp ? tmp : "");
1648+
1649+
#define PHP_PQ_COPY_PARAM(_x) tmp = (char*)PQparameterStatus(pgsql, _x); \
1650+
if(tmp) add_assoc_string(return_value, _x, tmp); \
1651+
else add_assoc_null(return_value, _x);
1652+
1653+
PHP_PQ_COPY_PARAM("server_encoding");
1654+
PHP_PQ_COPY_PARAM("client_encoding");
1655+
PHP_PQ_COPY_PARAM("is_superuser");
1656+
PHP_PQ_COPY_PARAM("session_authorization");
1657+
PHP_PQ_COPY_PARAM("DateStyle");
1658+
PHP_PQ_COPY_PARAM("IntervalStyle");
1659+
PHP_PQ_COPY_PARAM("TimeZone");
1660+
PHP_PQ_COPY_PARAM("integer_datetimes");
1661+
PHP_PQ_COPY_PARAM("standard_conforming_strings");
1662+
PHP_PQ_COPY_PARAM("application_name");
16681663
}
16691664
#endif
16701665
#endif

0 commit comments

Comments
 (0)