Anda dapat memanfaatkan fitur PL/pgSQL untuk mengimplementasikan sangat murah :
CREATE OR REPLACE FUNCTION f_select_from_some_tbl(int)
RETURNS SETOF some_table AS
$func$
BEGIN
RETURN QUERY
SELECT *
FROM some_table
WHERE other_table_id = $1;
IF NOT FOUND THEN
RAISE WARNING 'Call with non-existing other_table_id >>%<<', $1;
END IF;
END
$func$ LANGUAGE plpgsql;
RETURN;
final terakhir adalah opsional dalam hal ini.
WARNING
hanya dimunculkan jika kueri Anda tidak mengembalikan baris apa pun. Saya tidak memunculkan ERROR
dalam contoh, karena ini akan mengembalikan seluruh transaksi (tetapi Anda dapat melakukannya jika sesuai dengan kebutuhan Anda).
Kami telah menambahkan contoh kode ke manual dengan Postgres 9.3 untuk menunjukkan ini.