Por ser completamente novo no PL / pgSQL, qual é o significado dos cifrões duplos nesta função :
CREATE OR REPLACE FUNCTION check_phone_number(text)
RETURNS boolean AS $$
BEGIN
IF NOT $1 ~ e'^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$' THEN
RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999';
END IF;
RETURN true;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
Estou supondo que, em RETURNS boolean AS $$
, $$
é um espaço reservado.
A última linha é um pouco misteriosa: $$ LANGUAGE plpgsql STRICT IMMUTABLE;
A propósito, o que significa a última linha?
$$
e você pode aprender algo novo lendo-o, por exemplo, também há$foo$