– Eliminate duplicate array values CREATE OR REPLACE FUNCTION framework.array_distinct(

in arr anyarray, -- input array
in ignore_nulls boolean DEFAULT false, -- flag to ignore nulls
in default_value anyarray DEFAULT ARRAY[]::TEXT[] -- default value if empty

) RETURNS anyarray AS $f$

SELECT COALESCE((SELECT array_agg(DISTINCT x)
    FROM unnest(arr) t(x)
    WHERE CASE WHEN ignore_nulls THEN x IS NOT NULL ELSE true END), default_value);

$f$ LANGUAGE SQL IMMUTABLE;