Re: NOTIFY in Background Worker
От | Andres Freund |
---|---|
Тема | Re: NOTIFY in Background Worker |
Дата | |
Msg-id | 20151103090113.GS11897@awork2.anarazel.de обсуждение исходный текст |
Ответ на | Re: NOTIFY in Background Worker (Simon Riggs <simon@2ndQuadrant.com>) |
Список | pgsql-hackers |
On 2015-11-03 09:52:34 +0100, Simon Riggs wrote: > On 3 November 2015 at 09:35, Andres Freund <andres@anarazel.de> wrote: > > > > > With this commit - bde39eed0cafb82bc94c40e95d96b5cf47b6f719, it is not > > possible > > > to execute Notify commands inside a parallel worker. Can't we change > > > it as disable both listen and notify commands inside a background worker? > > > > Well, parallel workers are something different from general background > > workers. I don't see why it'd make sense to allow listen/notify there, > > given the rest of the restrictions? > > > > What are the restrictions and/or where are they documented? Thanks There's a section in README.parallel: > Instead, we take a more pragmatic approach. First, we try to make as many of > the operations that are safe outside of parallel mode work correctly in > parallel mode as well. Second, we try to prohibit common unsafe operations > via suitable error checks. These checks are intended to catch 100% of > unsafe things that a user might do from the SQL interface, but code written > in C can do unsafe things that won't trigger these checks. The error checks > are engaged via EnterParallelMode(), which should be called before creating > a parallel context, and disarmed via ExitParallelMode(), which should be > called after all parallel contexts have been destroyed. The most > significant restriction imposed by parallel mode is that all operations must > be strictly read-only; we allow no writes to the database and no DDL. We > might try to relax these restrictions in the future. Basically the restriction is that, for now, while a parallelized statement is in progress you can't write data and no DDL is possible. Andres
В списке pgsql-hackers по дате отправления: