VARCHAR to CIDR type cast

Поиск
Список
Период
Сортировка
От Nicolas Huillard
Тема VARCHAR to CIDR type cast
Дата
Msg-id 01C0EE87.F3505E20.nhuillard@ghs.fr
обсуждение исходный текст
Список pgsql-general
Hello,

I use Postgres 6.5.3.
The following query doesn't work :

nhuillard=> SELECT login FROM vue_auth WHERE (login ~ '^[0-9./]+$') AND
(login::cidr >> '192.168.200.109'::inet);
ERROR:  No such function 'cidr' with the specified attributes

This query look for login (varchar) that look like IP network adresses
(cidr), then check if the provided IP adresses is within this network.

The only cidr function that exist in the catalog is "cidr_in" :

nhuillard=> SELECT t.typname as result, p.proname as function,
substr(oid8types(p.proargtypes),1,14) as arguments,
substr(obj_description(p.oid),1,34) as description FROM pg_proc p, pg_type
t WHERE (p.prorettype = t.oid) and (t.typname = 'cidr') ORDER BY result,
function, arguments;
result|function|arguments|description
------+--------+---------+-----------
cidr  |cidr_in |         |(internal)
(1 row)

This function seems to be the input function, but can't be used for
casting... Is there a way to use it for casting varchar to cidr, or
something else ?
I tried the following :

nhuillard=> create function cidr(text) returns cidr as 'cidr_in' language
'internal';
CREATE
nhuillard=> SELECT login FROM vue_auth WHERE (login ~ '^[0-9./]+$') AND
(login::cidr >> '192.168.200.109'::inet);
ERROR:  could not parse "s"

Any advice ?

Nicolas Huillard

В списке pgsql-general по дате отправления:

Предыдущее
От: Mathieu Arnold
Дата:
Сообщение: pg_dump problem
Следующее
От: Andrew Gould
Дата:
Сообщение: Re: pg_dump problem