Ada juga opsi untuk menggunakan RETURNS TABLE(...)
(seperti yang dijelaskan di Manual PostgreSQL
), yang saya pribadi lebih suka:
CREATE OR REPLACE FUNCTION get_countries()
RETURNS TABLE(
country_code text,
country_name text
)
AS $$
SELECT country_code, country_name FROM country_codes
$$ LANGUAGE sql;
Ini secara efektif sama dengan menggunakan SETOF tablename
, tetapi mendeklarasikan struktur tabel sebaris alih-alih mereferensikan objek yang ada, jadi penggabungan dan semacamnya akan tetap berfungsi.