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.steh...@gmail.com>
wrote:

>
>
> 2016-09-02 19:21 GMT+02:00 Alexander Farber <alexander.far...@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.
>
>

Reply via email to