add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
-- Postgres 14 for text[] only (a bit faster)
CREATE FUNCTION f_arr_except_arr_pg14(a1 text[], a2 text[])
RETURNS text[]
LANGUAGE SQL IMMUTABLE PARALLEL SAFE
BEGIN ATOMIC
SELECT ARRAY (SELECT unnest(a1) EXCEPT ALL SELECT unnest(a2));
END;

-- Any Postgres version for any element type
CREATE OR REPLACE FUNCTION f_arr_except_arr(a1 anyarray, a2 anyarray)
RETURNS anyarray
LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS
$func$
SELECT ARRAY (SELECT unnest(a1) EXCEPT ALL SELECT unnest(a2));
$func$;
CREATE FUNCTION
CREATE FUNCTION
-- f_arr_except_arr_pg14() only for text[]
SELECT f_arr_except_arr_pg14('{string1,string2,string3,null,null}'::text[], '{string1,string2,null}');
f_arr_except_arr_pg14
{NULL,string3}
SELECT 1
-- f_arr_except_arr()
SELECT f_arr_except_arr('{string1,string2,string3,null,null}'::text[], '{string1,string2,null}');
SELECT f_arr_except_arr('{1,2,3,null,5,null}'::real[], '{1,2,null}');
f_arr_except_arr
{NULL,string3}
SELECT 1
f_arr_except_arr
{NULL,3,5}
SELECT 1