On Fri, Dec 4, 2020 at 9:21 AM Riswana Rahman <risw...@temenos.com> wrote:

> CREATE OR REPLACE FUNCTION jsonbNull(jsonb_column JSONB)
>
> returns boolean as $$
>
> declare
>
>               isPoint text := jsonb_typeof(jsonb_column) ;
>
> begin
>
>               CASE isPoint
>
>                              WHEN 'array' THEN
>
>                                            if  true = ALL(select
> (jsonb_array_elements(jsonb_column)) = '{}') THEN
>
>                                                           return true;
>
>                                            else
>
>                                                            return false;
>
>                                            end if;
>
>                             WHEN 'object' THEN
>
>                                            if jsonb_column = '{}' THEN
>
>                                                           return true;
>
>                                            else
>
>                                                           return false;
>
>                                            end if;
>
>                              WHEN 'string' THEN
>
>                                                           return false;
>
>                              ELSE
>
>                                            return true;
>
>               END CASE;
>
> end;
>
> $$ LANGUAGE plpgsql IMMUTABLE;
>

As far as I can tell, it seems like this could be re-written as a function
in SQL instead of plpgsql which allows for it to be in-lined. Have you
tested performance and found it to be an issue, or just optimizing in
advance of a need?

>

Reply via email to