Parameter yang Anda cari adalah search_path
- yang mencantumkan skema yang akan dilihat oleh kueri. Jadi, Anda dapat melakukan sesuatu seperti:
CREATE TABLE schema1.tt ...
CREATE TABLE schema2.tt ...
CREATE FUNCTION schema1.foo() ...
CREATE FUNCTION schema2.foo() ...
SET search_path = schema1, something_else;
SELECT * FROM tt; -- schema1.tt
SELECT * FROM schema2.tt -- schema2.tt
SELECT foo(); -- calls schema1.foo
SELECT schema2.foo(); -- calls schema2.foo
Perhatikan bahwa jika paket kueri disimpan di dalam badan foo() maka Anda mungkin mendapatkan hasil yang tidak terduga. Saya akan merekomendasikan Anda untuk selalu secara eksplisit mencantumkan skema untuk tabel yang direferensikan dalam fungsi plpgsql jika Anda menggunakan tabel duplikat. Jika tidak, pastikan Anda memiliki pengujian untuk memeriksa perilaku dengan jalur_penelusuran yang berubah.
Oh - Anda juga dapat menyetel search_path untuk badan fungsi secara eksplisit - lihat referensi CREATE FUNCTION manual untuk detailnya.