Commit 0cdd3c32def for php.net

commit 0cdd3c32def0e1ccfe5300d5a7d59688596938b3
Author: Gina Peter Banyard <girgias@php.net>
Date:   Thu May 29 19:09:11 2025 +0100

    ext/pgsql: Stop using useless convert_to_boolean() API (#18683)

    There are better ways of handling this than casting the zval in place

diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index f10bfd6dcbb..ba6d660d030 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -3879,7 +3879,12 @@ static void php_pgsql_do_async(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
 	switch(entry_type) {
 		case PHP_PG_ASYNC_IS_BUSY:
 			PQconsumeInput(pgsql);
-			RETVAL_LONG(PQisBusy(pgsql));
+			/* PQisBusy
+			 * Returns 1 if a command is busy, that is, PQgetResult would block waiting for input.
+			 * A 0 return indicates that PQgetResult can be called with assurance of not blocking.
+			 * https://www.postgresql.org/docs/current/libpq-async.html#LIBPQ-PQISBUSY
+			 */
+			RETVAL_BOOL(PQisBusy(pgsql));
 			break;
 		case PHP_PG_ASYNC_REQUEST_CANCEL: {
 			PGcancel *c;
@@ -3893,7 +3898,8 @@ static void php_pgsql_do_async(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
 			 * errbuf must be a char array of size errbufsize (the recommended size is 256 bytes).
 			 * https://www.postgresql.org/docs/current/libpq-cancel.html#LIBPQ-PQCANCEL
 			 */
-			RETVAL_LONG((rc = PQcancel(c, err, sizeof(err))));
+			rc = PQcancel(c, err, sizeof(err));
+			RETVAL_BOOL(rc);
 			if (rc == 0) {
 				zend_error(E_WARNING, "cannot cancel the query: %s", err);
 			}
@@ -3908,7 +3914,6 @@ static void php_pgsql_do_async(INTERNAL_FUNCTION_PARAMETERS, int entry_type)
 	if (PQsetnonblocking(pgsql, 0)) {
 		php_error_docref(NULL, E_NOTICE, "Cannot set connection to blocking mode");
 	}
-	convert_to_boolean(return_value);
 }
 /* }}} */

@@ -4929,8 +4934,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
 			break; /* break out for() */
 		}

-		convert_to_boolean(is_enum);
-		if (Z_TYPE_P(is_enum) == IS_TRUE) {
+		if (zval_is_true(is_enum)) {
 			/* enums need to be treated like strings */
 			data_type = PG_TEXT;
 		} else {