Re: RETURNS TABLE function returns nothingness - Mailing list pgsql-general

From Alexander Farber
Subject Re: RETURNS TABLE function returns nothingness
Date
Msg-id CAADeyWg2qkLtSWE_JC0mz3OLUY53mTmN2hkQyRMaey4PE48GhQ@mail.gmail.com
Whole thread Raw
In response to Re: RETURNS TABLE function returns nothingness  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: RETURNS TABLE function returns nothingness
Re: RETURNS TABLE function returns nothingness
List pgsql-general
If I'd like to always return exactly 1 row -
why wouldn't just RETURN work? 
(That's what I kept trying)

On Fri, Sep 2, 2016 at 7:27 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:


2016-09-02 19:21 GMT+02:00 Alexander Farber <alexander.farber@gmail.com>:
 why doesn't this simple test function return a row with 42, NULL values:

CREATE OR REPLACE FUNCTION words_merge_users_2(
                IN in_users jsonb,
                IN in_ip inet
        ) RETURNS TABLE (
                out_uid integer,
                out_banned varchar
        ) AS
$func$
DECLARE
        _user          jsonb;
        _uids          integer[];
        _created       timestamptz;
        _vip           timestamptz;
        _grand         timestamptz;
        _banned_until  timestamptz;
        _banned_reason varchar;
BEGIN
        out_uid := 42;
END
$func$ LANGUAGE plpgsql;

Here I call it at PostgreSQL 9.5.4 prompt in MacOS:

# select * from words_merge_users_2('[{"given":"Abcde","social":1,"auth":"07f0254f5e55413dec7f32c8ef4ee5d3","stamp":1470237061,"female":0,"sid":"11111"}]                   '::jsonb, '1.1.1.1'::inet);
 out_uid | out_banned 
---------+------------
(0 rows)

Thank you (I am probably missing something very obvious)

There is not RETURN NEXT statement - so output is zero rows.

pgsql-general by date:

Previous
From: Andres Freund
Date:
Subject: Re: What limits Postgres performance when the whole database lives in cache?
Next
From: Adrian Klaver
Date:
Subject: Re: RETURNS TABLE function returns nothingness