Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

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

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group