awasarax@yandex.ru writes:
> if "d" is null then return = null
> else
> return <> null
> CREATE OR REPLACE FUNCTION userfunc(jsonb)
> RETURNS jsonb AS
> $BODY$
> DECLARE
> r jsonb = null;
> d jsonb = null;
> BEGIN
> SELECT to_json(users.*) INTO r FROM users WHERE ///////;
> RETURN r||d; -- return null
> END;
> $BODY$
> LANGUAGE plpgsql VOLATILE;
I see nothing particularly wrong here. There is long-established
precedent, eg, 'foo'::text || NULL is null too. It makes sense
if you consider that NULL means "unknown".
regards, tom lane