Re: inet types and LIKE doesn't work as expected

Поиск
Список
Период
Сортировка
От Allan Engelhardt
Тема Re: inet types and LIKE doesn't work as expected
Дата
Msg-id 3BAA0188.7346384E@cybaea.com
обсуждение исходный текст
Список pgsql-general
Phil Mayers wrote:

> Try this:
>
> hdbdev=> create table ips ( ip inet, ip_txt varchar(15) );
> hdbdev=> insert into ips (ip,ip_txt) values ('192.168.1.1','192.168.1.1');
> hdbdev=> select * from ips where ip like '192.168.1.1';
>  ip | ip_txt
> ----+--------
> (0 rows)
>
> hdbdev=> select * from ips where ip_txt like '192.168.1.1';
>      ip      |   ip_txt
> -------------+-------------
>  192.168.1.1 | 192.168.1.1
> (1 row)
>
> That seems inconsistent?

The default text conversion for the inet type includes a mask:

test=# select text(ip) from ips;
      text
----------------
 192.168.1.1/32
(1 row)

so

 select * from ips where ip like '192.168.1.1%';

works as expected.

The joys of semanically rich data types :-)


Hope this helps a little.


Allan.

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

Предыдущее
От: "Tille, Andreas"
Дата:
Сообщение: Re: Performance question (stripped down the problem)
Следующее
От: Justin Clift
Дата:
Сообщение: Re: Performance question (stripped down the problem)