Hi, Thanks for the response - though I'm a bit confused the FD is all that is required for the select call - so I think what you're saying is that the postgres socket open mechanism isn't the same in php as the postgres C development library. I say this because I've implemented this exact mechanism in C++ before without problem so I'm really not quite following - sorry. Is it that PHP implements the underlying socket mechanism in a different way? I guess I'm not quite understanding could you give me a few more details of the PHP mechanism. Many thanks Nick -----Original Message----- From: pgsql-php-owner@xxxxxxxxxxxxxx [mailto:pgsql-php-owner@xxxxxxxxxxxxxx] On Behalf Of Volkan YAZICI Sent: 30 June 2005 11:11 To: Nick Stone Cc: pgsql-php@xxxxxxxxxxxxxx Subject: Re: [PHP] Pqsocket not implemented in PHP Hi, On 6/30/05, Nick Stone <nick@xxxxxxxxxxxx> wrote: > I'm currently implementing a standalone app using php cli. Part of the > app connects to Postgres and waits for a notification using the > "Listen <tablename>" SQL. In the postgres C lib there is a function > called "Pqsocket" which returns the file-descriptor of the socket > connection to Postgres. With this I can use a simple select server to > sleep on this interface and others in the application. > > Does anybody now of a patch to make this available under PHP or does > the structure of PHP code effectively make this type approach impossible? You can write a very simple patch returns socket FD using PQsocket(). But, AFAIC, it's not as simple as it seems to listen a socket using just its FD value. As I understand from the source code, resource required by socket_open() function has its own internal struct representation, which means you need to be familiar with PHP internal data types and mechanism before writing a patch. Therefore, it's not impossible to implement such a feature, but, to be honest, it needs a hard work. IMHO, you can enter a loop with pg_last_notice() by using usleep(). I won't think it'd cost so much system resource for you. Regards. ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend