Re: Passing current_database to BackgroundWorkerInitializeConnection

Поиск
Список
Период
Сортировка
От Jeremy Finzel
Тема Re: Passing current_database to BackgroundWorkerInitializeConnection
Дата
Msg-id CAMa1XUiGpgGh0PD84X9y-FhYjufdyp=16g5czaB+uWwmjy53Sg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Passing current_database to BackgroundWorkerInitializeConnection  (Andres Freund <andres@anarazel.de>)
Ответы Re: Passing current_database to BackgroundWorkerInitializeConnection  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers


On Fri, Mar 30, 2018 at 5:37 PM, Andres Freund <andres@anarazel.de> wrote:


On March 30, 2018 3:16:31 PM PDT, Jeremy Finzel <finzelj@gmail.com> wrote:
>> What do you mean with "current database"? Before you
>> BackgroundWorkerInitializeConnection() there is no such thing?
>
>
>My module is based directly off the worker_spi example. The worker is
>dynamically launched via SQL command. But in the worker_spi example,
>the
>database postgres is just hardcoded as the database in which to start
>the
>background worker process. Instead, I want to start it in the database
>in
>which I run the SQL command.

The started worker isn't associated with the original database. You can pass the database oid as an argument to the launched bgworker.


Thank you, this makes sense.  However, how can this be done since I can only pass one argument to bgw_main?  Is there any way to do this without having to store the value in shared memory?  I was going to try passing an array instead of an int, but I'm not liking that much.  I am trying to pass naptime and database_name (or oid).

Thanks,
Jeremy

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Commit 4dba331cb3 broke ATTACH PARTITION behaviour.
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Passing current_database to BackgroundWorkerInitializeConnection