Is it possible for a function to return one record, but return zero records if there is an empty result set. For example:
If I have an empty table that contains no data...
CREATE TABLE Foo
(
FooID SERIAL CONSTRAINT PK_Foo PRIMARY KEY,
FooValue INTEGER NOT NULL
);
... and a function ...
CREATE OR REPLACE FUNCTION GET_OneFoo()
RETURNS Foo
AS $$
SELECT
FooID,
FooValue
FROM
Foo
LIMIT 1
$$ LANGUAGE SQL;
... then ...
SELECT GET_OneFoo()
... results in ...
Total query runtime: 11 ms.
1 row retrieved.
... however ...
SELECT
FooID,
FooValue
FROM
Foo
LIMIT 1
... results in ...
Total query runtime: 10 ms.
0 rows retrieved.