Re: inet value validation
От | pgsql-general@list.coretech.ro |
---|---|
Тема | Re: inet value validation |
Дата | |
Msg-id | 44427BE2.1060605@list.coretech.ro обсуждение исходный текст |
Ответ на | Re: inet value validation (Andreas Kretschmer <akretschmer@spamfence.net>) |
Ответы |
Re: inet value validation
|
Список | pgsql-general |
yes, this is a good example, but I do not want to use an exception block because of the warning present on documentation regarding exception blocks "*Tip: * A block containing an EXCEPTION clause is significantly more expensive to enter and exit than a block without one. Therefore, don't use EXCEPTION without need." I intend to use this function heavily. Razvan Radu Andreas Kretschmer wrote: > pgsql-general@list.coretech.ro <pgsql-general@list.coretech.ro> schrieb: > > >> hello, >> >> I want to write a function to validate an inet data type, but I figure that >> postgres should already have such a function to use before inserting values >> in inet type columns. >> is it possible to access postgres's validation function for inet types ? I >> have snooped through the catalogs but I can not find such a function. >> > > You can try to cast a string into inet like this: > > test=# select '127.0.0.255'::inet; > inet > ------------- > 127.0.0.255 > (1 row) > > test=# select '127.0.0.256'::inet; > ERROR: invalid input syntax for type inet: "127.0.0.256" > > > Now you can write a little function to do this: > > ,----[ a little function ] > | create or replace function check_ip(varchar) returns bool as $$ > | declare > | i inet; > | begin > | i := $1::inet; > | return 't'::bool; > | EXCEPTION WHEN invalid_text_representation then > | return 'f'::bool; > | end; > | $$ language plpgsql immutable strict; > `---- > > You can use this function now inside a transaction. > > > > HTH, Andreas >
В списке pgsql-general по дате отправления: