Re: Can a C function(server program) be a UDP or TCP server?

Поиск
Список
Период
Сортировка
От Billow Gao
Тема Re: Can a C function(server program) be a UDP or TCP server?
Дата
Msg-id 677a32120710180927g4f437e00tb5c534438b488d9e@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Can a C function(server program) be a UDP or TCP server?  ("D'Arcy J.M. Cain" <darcy@druid.net>)
Ответы Re: Can a C function(server program) be a UDP or TCP server?  (Jan de Visser <jdevisser@digitalfairway.com>)
Список pgsql-hackers
Thanks.  This is what I want to know :-)

Regards,

Billow

>Yeah, what he wants is to implement a function in Postgres which does
>something like an LDAP or DNS lookup or something like that.

>Sure you can do this. The only tricky bit is the thing you mentioned about
>reusing the connection. You could always leave the connection in a safe state
>and don't need to worry about cleaning it up then you could just store it in a
>static variable which would be the simplest option.

>If you want to use Postgres's facilities for allocating memory and cleaning it
>up when no longer in use you can use some of the Postgres internal API for
>memory contexts and resource owners. But I don't see any particular reason you
>should need to worry about this stuff for something simple you're implementing
>yourself.



On 10/18/07, D'Arcy J.M. Cain <darcy@druid.net> wrote:
On Thu, 18 Oct 2007 11:24:24 -0400
"Billow Gao" <billowgy@gmail.com> wrote:
> I can write the network program.
> But I am not 100% sure whether I can add the c-language function (
> http://www.postgresql.org/docs/8.2/interactive/xfunc-c.html)
> to PostgreSQL. The function will be dynamic loaded by PostgreSQL.
> I want to know whether there are any limitation on the function I wrote.
>
> for example:
> If I want to write a function:
>
> PG_FUNCTION_INFO_V1(c_talktoremoteudp);
>
>
> And use it in PostgreSQL like:
>
> =========================================
> SELECT name, c_talktoremoteudp
>
> (emp, 1500) AS overpaid
>     FROM emp
>     WHERE name = 'Bill' OR name = 'Sam';
>
> =========================================
> The function c_talktoremoteudp will:
> 1. send udp data to remote udp server
> 2. monitor an udp port and wait for the reply
> 3. return the data to the select query.

I am confused.  The dynamic function resides in the server.  The query
runs in the server.  Where is the "remoteness" in any of this?  Are you
saying that there is a second server that is not PostgreSQL that uses
UDP that you want to communicate with and merge info into the
PostgreSQL server from?

--
D'Arcy J.M. Cain <darcy@druid.net>         |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Gregory Stark
Дата:
Сообщение: Re: max_prepared_transactions default ... why 5?
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: max_prepared_transactions default ... why 5?