Req #44348 [Opn->Fbk]: Wait for Postgres notifications
| From: | cmb@php.net | Date: | Thu, 05 Aug 2021 11:31:15 +0000 |
| Subject: | Req #44348 [Opn->Fbk]: Wait for Postgres notifications | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-235609@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=44348&edit=1
ID: 44348
Updated by: cmb@php.net
Reported by: p_ christ at hol dot gr
Summary: Wait for Postgres notifications
-Status: Open
+Status: Feedback
Type: Feature/Change Request
Package: PostgreSQL related
Operating System: Linux
PHP Version: 5.2.5
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Would async pgsql connections and non-blocking queries[1]
(available as of PHP 5.6.0) resolve this request?
[1] <https://github.com/php/php-src/pull/626>
Previous Comments:
------------------------------------------------------------------------
[2008-03-06 00:35:11] p_christ at hol dot gr
/* {{{ proto array pg_wait_notify([resource connection[, timeout]])
Wait for postgres activity */
PHP_FUNCTION(pg_wait_notify)
{
zval *pgsql_link;
int id = -1;
int retval = 0;
int timeout = -1;
struct pollfd ps;
PGconn *pgsql;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "r|l",
&pgsql_link, &timeout) == FAILURE) {
RETURN_FALSE;
}
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", le_link,
le_plink);
ps.fd = PQsocket(pgsql);
ps.events = POLLIN;
ps.revents = 0;
if (ps.fd<0)
RETURN_FALSE;
retval = poll(&ps,1,timeout);
if (retval == -1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to poll : %d", errno);
RETURN_FALSE;
}
RETURN_LONG(retval);
}
/* }}} */
------------------------------------------------------------------------
[2008-03-06 00:32:52] p_ christ at hol dot gr
Description:
------------
Add one more internal PHP function that will C-poll() the Postgres file descriptor for async events.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=44348&edit=1