Re: Listen / Notify - what to do when the queue is full
От | Arnaud Betremieux |
---|---|
Тема | Re: Listen / Notify - what to do when the queue is full |
Дата | |
Msg-id | 4B4B30C3.9030900@keyconsulting.fr обсуждение исходный текст |
Ответ на | Re: Listen / Notify - what to do when the queue is full (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On 11/01/2010 14:25, Tom Lane wrote: > Arnaud Betremieux<arnaud.betremieux@keyconsulting.fr> writes: > >> 3) My use case : NOTIFY channel 'pay'||'load' (actually NOTIFY >> channel '<table_name>#'||OLD.id) >> 4) Taken one step further : NOTIFY channel (SELECT payload FROM payloads >> WHERE ...) >> > >> I'm working on a proof of concept patch to use Joachim's new notify >> function to introduce case 3. I think this means going through the >> planner and executor, so I might as well do case 4 as well. >> > It would be a lot less work to introduce a function like send_notify() > that could be invoked within a regular SELECT. Pushing a utility > statement through the planner/executor code path will do enough violence > to the system design that such a patch would probably be rejected out of > hand. > Introducing a send_notify function does sound a lot simpler and cleaner, and I think I'll try it this way. The only thing that bothers me is the syntax : ... DO ALSO SELECT send_notify('payload') ... DO ALSO SELECT send_notify(a) FROM b How about a new grammar for NOTIFY <channel> a_expr, which would go through the rewriter to be transformed as a SELECT ? so NOTIFY (SELECT a FROM b) would become SELECT send_notify(SELECT a FROM b) ?
В списке pgsql-hackers по дате отправления: