> I understand that:> 1) you like to use postgres as a "bus" to transfer > messages between connected> clients;> 2) only one database server is > concerned (no redundancy at all);> 3) it is the client code (perl, php ...) > that send the notification (ie,> notifications are not sent by triggers for > example)> > May be you could dedicate one of your database to do this; all > clients could> listen messages on this database and some client code would > decode the payload> and does its job.> > Sylvain
> As to how to start writing an extension:> > > https://www.postgresql.org/docs/9.5/static/extend-extensions.html> > As to > how NOTIFY/LISTEN works:> > > https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/async.c;h=beef574076c257db0a868b39a946565185f6c53e;hb=ba37ac217791dfdf2b327c4b75e7083b6b03a2f5> > > > I am not so sure another extension is needed. Would it not make more > sense> just to use the dblink extension?> > https://www.postgresql.org/docs/9.5/static/contrib-dblink-function.html> > > Just make a table that contains the names of the other databases and> > connection info.> Then the same trigger that calls the function for NOTIFY > or pg_notify(text,> text) could just as easily call a function with dblink > that determines which> database needs the notify and raises it there.> > -- > > Adrian Klaver> adrian.kla...@aklaver.com Thanks Adrian, that's great. I think I'll be giving the dblink / FDW a shot. Thedocumentation says that FDW is a newer more standard-compliant way to make theconnection, so I thought I give that one a try first. But then I can not find away to call a function / stored procedure from within the foreign database. Isthis possible or FDW is only for tables? I mean how to should I be sending thenotification after these steps: CREATE DATABASE "CentralDb";CREATE USER "notify_only" WITH PASSWORD '123';GRANT ALL PRIVILEGES ON DATABASE "CentralDb" to "notify_only";CREATE FUNCTION notify_hq(text channel, text payload) RETURNS void LANGUAGE plpgsql VOLATILE COST 1 AS $$BEGIN PERFORME pg_notify(channel, payload);END;$$; CREATE DATABASE "LocalDb";CREATE USER "local_user" WITH PASSWORD '321';GRANT ALL PRIVILEGES ON DATABASE "LocalDb" to "local_user"; CREATE EXTENSION postgres_fdw; CREATE SERVER notify_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'localhost', dbname 'CentralDb', port '5432'); CREATE USER MAPPING FOR local_user SERVER notify_server OPTIONS (user 'notify_only', password '123'); At this point I'm stuck, because the next step would be CREATE FOREIGN TABLE butI'm not after a foreign table and a foreign function! How can I call thepg_notify / notify_hq from the LocalDb? Regards,Mehran