Først skal du ændre relocatable til false i udvidelsens kontrolfil.
Bortset fra det er den anbefaling, du fik, dels fornuftig og dels nonsens.
Du bør definere dine funktioner sådan her:
CREATE FUNCTION .... AS
$$ /* function body */ $$
SET search_path = @example@sqldat.com;
Derefter search_path er rettet til pg_catalog , pg_temp og dit udvidelsesskema i funktionskaldets varighed. Det betyder, at al adgang til objekter uden et eksplicit skema kun vil søge i disse skemaer.
Så behøver du ikke bekymre dig om eksplicit at kvalificere alt i funktionen med @example@sqldat.com , og du kan bruge operatorer uden at skulle bekymre dig, fordi search_path gælder også for operatører. (Du kan også skemakvalificere operatorer:OPERATOR(schema.+) , men det er naturligvis smertefuldt og skader læsbarheden.)