Re: Clarification on when _PG_init() is invoked for extensions
| От | Hannu Krosing |
|---|---|
| Тема | Re: Clarification on when _PG_init() is invoked for extensions |
| Дата | |
| Msg-id | CAMT0RQTqxY2FSOjVjPzdAG5mxfrp3Xx8o364rpvd8c085uB4=g@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Clarification on when _PG_init() is invoked for extensions (Ayush Vatsa <ayushvatsa1810@gmail.com>) |
| Список | pgsql-hackers |
You probably can do the LOAD in the GUC callback functions and then set that GUC only for specific databases using ALTER DATABASE SET <my-extension-loading-guc>=true;
On Thu, Nov 20, 2025 at 6:53 PM Ayush Vatsa <ayushvatsa1810@gmail.com> wrote:
Hi,CREATE extension does not automatically load or ensure that _PG_init() is run.
It mainly runs the .sql script in your extension.Thanks for the clarification. However, in my testing,_PG_init()did run when I executedCREATE EXTENSION. I suspect this might be happening because the SQL script defines
C functions usingMODULE_PATHNAME, which triggers the library load.
In a new session,_PG_init()seems to run again when any of those C functions are executed.My use case:My use case is that I’m building an experimental extension that will be installed only in a few
databases. I want the hooks initialized by this extension to apply only to those specific
databases, while all other databases should continue with the default PostgreSQL behavior.Thank you,
Ayush
В списке pgsql-hackers по дате отправления: