Re: Pqsocket not implemented in PHP

From: "Nick Stone" <nick(at)harelane(dot)com>
To: "'Volkan YAZICI'" <volkan(dot)yazici(at)gmail(dot)com>
Cc: <pgsql-php(at)postgresql(dot)org>
Subject: Re: Pqsocket not implemented in PHP
Date: 2005-06-30 10:55:28
Message-ID: 20050630105730.9D3E124D2D3@smtp.nildram.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

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(at)postgresql(dot)org [mailto:pgsql-php-owner(at)postgresql(dot)org]
On Behalf Of Volkan YAZICI
Sent: 30 June 2005 11:11
To: Nick Stone
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: [PHP] Pqsocket not implemented in PHP

Hi,

On 6/30/05, Nick Stone <nick(at)harelane(dot)com> 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

In response to

Responses

Browse pgsql-php by date

  From Date Subject
Next Message Volkan YAZICI 2005-06-30 11:38:08 Re: Pqsocket not implemented in PHP
Previous Message Volkan YAZICI 2005-06-30 10:10:48 Re: Pqsocket not implemented in PHP