I have a function written in plpgsql that checks if user have permissions:
CREATE OR REPLACE FUNCTION check_permission(acc_id integer, permissions text[]) RETURNS boolean AS $$
BEGIN
SELECT DISTINCT p.name FROM person_role pr
JOIN role_permission rp ON pr.role_id = rp.role_id
JOIN permission p ON rp.permission_id = p.permission_id
WHERE account_id = acc_id ;
-- check
END;
$$ LANGUAGE plpgsql;
How can i check that select includes all permissions from permissions text[] argument?