Primero, debe cambiar relocatable
a false
en el archivo de control de la extensión.
Aparte de eso, la recomendación que recibiste es en parte razonable y en parte absurda.
Deberías definir tus funciones así:
CREATE FUNCTION .... AS
$$ /* function body */ $$
SET search_path = @[email protected];
Luego la search_path
está fijo en pg_catalog
, pg_temp
y su esquema de extensión durante la duración de la llamada a la función. Eso significa que todos los accesos a objetos sin un esquema explícito solo buscarán en estos esquemas.
Entonces no tiene que preocuparse por calificar explícitamente todo en la función con @[email protected]
, y puedes usar operadores sin tener que preocuparte, porque search_path
se aplica a los operadores también. (También puede calificar operadores de esquema:OPERATOR(schema.+)
, pero eso obviamente es doloroso y daña la legibilidad).