Estoy escribiendo una extensión para PostgreSQL en lenguaje C. PostgreSQL carga la extensión cuando especifico su nombre en shared_preload_libraries. Por curiosidad, ¿hay alguna forma de que PG cargue mi extensión sin especificar su nombre en shared_preload_libraries?
Puede cargar módulos de extensión:
De shared_preload_libraries . Esto se carga a la hora de inicio del postmaster, por lo que la extensión puede registrar memoria compartida, bloqueos, enlaces, etc. antes de que comencemos a bifurcar backends.
Con session_preload_libraries . Esto se carga después de fork(), en un backend, por lo que no puede registrar shmem, etc.
Con local_preload_libraries . Como session_preload_libraries , pero limitado al directorio de plugins y configurable por usuarios normales.
Con la declaración LOAD , o implícitamente ejecutando una función que se refiere a una implementación LANGUAGE c .
No hay alternativa para obtener el efecto completo de shared_preload_libraries . Las otras opciones no le permiten hacer cosas que requieren que el código se ejecute en el postmaster, como registrar complementos LWLocks o segmentos estáticos de memoria compartida. Pero si no haces esas cosas, basta con una simple LOAD .