Наверное, что-то вроде этого вы хотите (?):
CREATE OR REPLACE FUNCTION validation(string_to_match varchar [], pattern
varchar , validation_type varchar)
RETURNS boolean
AS $$
DECLARE a_length INT;
BEGIN
IF validation_type = 'login' THEN
a_length := array_length(string_to_match , 1);
RAISE NOTICE 'Array length is %', a_length;
ELSIF validation_type = 'register' THEN
a_length := array_length(string_to_match , 1);
RAISE NOTICE 'Array length is %', a_length;
ELSIF validation_type = 'contact' THEN
a_length := array_length(string_to_match , 1);
RAISE NOTICE 'Array length is %', a_length;
END IF;
RETURN true; -- or false ?
END;
$$ lANGUAGE plpgsql;