Re: inet value validation
- From: "pgsql-general(at)list(dot)coretech(dot)ro" <pgsql-general(at)list(dot)coretech(dot)ro>
- To: pgsql-general(at)postgresql(dot)org
- Subject: Re: inet value validation
- Date: Sun, 16 Apr 2006 20:16:18 +0300
- Message-id: <44427BE2(dot)1060605(at)list(dot)coretech(dot)ro>
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(at)list(dot)coretech(dot)ro <pgsql-general(at)list(dot)coretech(dot)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
Home |
Main Index |
Thread Index