How can I create null value from function call with no results? - Mailing list pgsql-general

From Seref Arikan
Subject How can I create null value from function call with no results?
Date
Msg-id CA+4Thdo__L=X4o5hAO8p_9rMgnao93Ah62gQXx9-p4_WxmkGkg@mail.gmail.com
Whole thread Raw
Responses Re: How can I create null value from function call with no results?  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: How can I create null value from function call with no results?  (David G Johnston <david.g.johnston@gmail.com>)
Re: How can I create null value from function call with no results?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Greetings,
I want to call a function using a column of a table as the parameter and return the parameter and function results together.
The problem is, when the function returns an empty row my select statement that uses the function returns an empty row as well.

The following simplified snippet demonstrates the behaviour I'm trying to change:


create or replace function test_empty_row(p_instance_id integer)
RETURNS TABLE (instance_id_int INTEGER,  valstring TEXT)
AS
$$
BEGIN
return query SELECT 0, 'nothing'::text where 1 = 2;
END;   
$$ LANGUAGE plpgsql;

select 1,test_empty_row(1);   (this is actually "SELECT A.somefield, myfunc(A.somefield) from my_table A" in my code)

The query above returns 0 rows. Instead of that I'd like to get back
1, null,null
when the query in the function returns zero results


I've been trying to do this in a number of ways for some time now, but I guess I've run out of brain cells for today.

Regards
Seref

pgsql-general by date:

Previous
From: Kevin Goess
Date:
Subject: free RAM not being used for page cache
Next
From: Pavel Stehule
Date:
Subject: Re: How can I create null value from function call with no results?