Как узнать длину параметра varchar в функции postgres - PullRequest
1 голос
/ 17 января 2011

Я пытаюсь выяснить длину параметра для параметра varchar, переданного в функцию postgres.

SQL, который у меня сейчас есть, не имеет значений в столбце character_maximum_length, где я ожидал бы найти это значение

SELECT * 
FROM information_schema.parameters 
WHERE specific_schema='public' 
   AND specific_name  like 'foo' 
ORDER BY ordinal_position

1 Ответ

2 голосов
/ 17 января 2011

Я не думаю, что 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) и определяю функцию с точки зрения этого, то передача слишком длинной строки будет захвачена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...