Re: operator '~~' for types 'inet' and '"unknown"'
| От | Antti Haapala |
|---|---|
| Тема | Re: operator '~~' for types 'inet' and '"unknown"' |
| Дата | |
| Msg-id | Pine.GSO.4.44.0304072034090.14110-100000@paju.oulu.fi обсуждение исходный текст |
| Ответ на | operator '~~' for types 'inet' and '"unknown"' (Shaun Jurrens <shaun.jurrens@skoleetaten.oslo.no>) |
| Список | pgsql-novice |
On Mon, 7 Apr 2003, Shaun Jurrens wrote:
> I seem to have a problem that I haven't found an obvious answer to or a
> reference to in the mailing lists or on google. Using dumps on a little
> network database that I've made, I've run into problems with select's
> like:
>
> select * from ske_net_allocs where ip_net like '139.165.19%';
>
> These work on 7.2.3 on freebsd but not with
>
> PostgreSQL 7.3.2 on i386-portbld-freebsd4.7.
>
> I get the following error:
>
> ERROR: Unable to identify an operator '~~' for types 'inet' and '"unknown"'
> You will have to retype this query using an explicit cast
>
> This may be a real bonehead question, but I'm unfortunately too ignorant
> to answer it yet. I've tried using dumps from the 7.2.3 box using both
> pg_dump and pg_dump -o. Thanks in advance for any hints/clue bats.
>
> I'd appreciate a CC, because I read the list via the archives. Thanks.
Some implicit casting rules have been dropped as of PG 7.3 and so this
problem has nothing to do with pg_dump options ;)
To use "like" with "inet" you need to cast it explicitly to "text", so try
select * from ske_net_allocs where ip_net::text like '139.165.19%';
Of course no normal index on ip_net would help you with this...
This could also work (untested)
select * from ske_net_allocs where ip_net >= '139.165.190.0' and
ip_net <= '139.165.199.255';
And it perhaps even uses indices.
See
http://www.postgresql.org/docs/view.php?version=7.3&idoc=0&file=functions-net.html
for complete list of "inet" operators.
--
Antti Haapala
В списке pgsql-novice по дате отправления: