まず、relocatableを変更する必要があります falseに 拡張機能の制御ファイル内。
それ以外は、あなたが得た推奨は、部分的に合理的で、部分的にナンセンスです。
次のように関数を定義する必要があります:
CREATE FUNCTION .... AS
$$ /* function body */ $$
SET search_path = @example@sqldat.com;
次に、search_path pg_catalogに修正されました 、pg_temp 関数呼び出し中の拡張スキーマ。つまり、明示的なスキーマのないオブジェクトへのすべてのアクセスは、これらのスキーマでのみ検索されます。
そうすれば、関数内のすべてを@example@sqldat.comで明示的に修飾することを心配する必要はありません。 、およびsearch_pathであるため、心配することなく演算子を使用できます。 オペレーターにも適用されます。 (演算子をスキーマ修飾することもできます:OPERATOR(schema.+) 、しかしそれは明らかに苦痛であり、読みやすさを損ないます。)