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.klaver@xxxxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general