On Sun, Jul 24, 2016 at 9:35 AM, Adrian Klaver <adrian.kla...@aklaver.com>
wrote:

> On 07/24/2016 03:31 AM, Mehran Ziadloo wrote:
>
>> I'm sorry, you are right. Let me rephrase that.
>>
>> What I meant was that the notifications are received by the client
>> connections
>> as if it was generated within their corresponding database (let's name the
>> database with a client connection listening to it; DB_C), then a
>> notification
>> generated by a NOTIFY command within DB_X like this:
>>
>> pg_notify_db('DB_C', some_channel, 'payload');
>>
>> can be heard by the client. Of course, the client needs to know which
>> database
>> has sent the notification but I think we can skip that part since we can
>> easily
>> include database name in the notification's payload if necessary.
>>
>> That was one of the two solutions. The other one is like this:
>>
>> pg_notify_all(some_channel, 'payload');
>>
>> And this one sends the notification to all of the client connections,
>> regardless of which database they are connected/listening to.
>>
>> I hope it makes sense now.
>>
>>
>>
> 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
>
>
> --
> Adrian Klaver
> adrian.kla...@aklaver.com
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

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.

-- 
*Melvin Davidson*
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

Reply via email to