CREATE OR REPLACE FUNCTION public.jsonb_concat_distinct_arr(
    state jsonb,
    concat jsonb)
  RETURNS jsonb AS
$BODY$
BEGIN
    --RAISE notice 'state is %', state;
    --RAISE notice 'concat is %', concat;
    RETURN 
    jsonb_agg(DISTINCT ae) 
    FROM
    (
        SELECT jsonb_array_elements(state) ae
        UNION ALL 
        SELECT jsonb_array_elements(concat) ae
    ) x;
END;
$BODY$
LANGUAGE plpgsql;

DROP AGGREGATE IF EXISTS public.jsonb_arr_aggcd(jsonb);
CREATE AGGREGATE public.jsonb_arr_aggcd(jsonb) (
  SFUNC=public.jsonb_concat_distinct_arr,
  STYPE=jsonb,
  INITCOND='[]'
);

