Eerst moet je relocatable
change wijzigen naar false
in het controlebestand van de extensie.
Afgezien daarvan is de aanbeveling die je hebt gekregen deels redelijk en deels onzin.
U moet uw functies als volgt definiëren:
CREATE FUNCTION .... AS
$$ /* function body */ $$
SET search_path = @[email protected];
Dan het search_path
is vastgezet op pg_catalog
, pg_temp
en uw extensieschema voor de duur van de functieaanroep. Dat betekent dat alle toegang tot objecten zonder een expliciet schema alleen in deze schema's zal zoeken.
Dan hoef je je geen zorgen te maken over het expliciet kwalificeren van alles in de functie met @[email protected]
, en u kunt operatoren gebruiken zonder dat u zich zorgen hoeft te maken, omdat search_path
geldt ook voor exploitanten. (U kunt operators ook schema-kwalificeren:OPERATOR(schema.+)
, maar dat is duidelijk pijnlijk en schaadt de leesbaarheid.)