Skip to main content
Journey Uncommon Logo
JourneyUncommon
mediumSQLstored procedures functionsSingle-choice MCQ

A PostgreSQL function is meant to return zero or more rows, but on some inputs it has nothing to return. Inside a SETOF function body it simply finishes without ever calling RETURN NEXT. What does a caller see from SELECT * FROM f(...)?

CREATE FUNCTION f(p int) RETURNS SETOF int AS $$ BEGIN IF p > 0 THEN RETURN NEXT p; END IF; -- no RETURN NEXT when p <= 0 END; $$ LANGUAGE plpgsql; -- called as: SELECT * FROM f(-5);