Я не думаю, что postgresql хранит эту информацию.Если я create function foo(varchar(100)) returns boolean ...
и затем вывожу схему с помощью pg_dump
, я найду:
CREATE FUNCTION foo(character varying) RETURNS boolean
LANGUAGE sql
AS $$select true$$;
Спецификация '100' пропала.И передача 150-символьной строки в foo (varchar) не попадает в ловушку или что-то еще.Напротив, если я создаю домен на основе varchar (100) и определяю функцию с точки зрения этого, то передача слишком длинной строки будет захвачена.