Re: [BUGS] INET operators and NOT
От | Tom Lane |
---|---|
Тема | Re: [BUGS] INET operators and NOT |
Дата | |
Msg-id | 29304.946424144@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | INET operators and NOT (Tomas Cerha <t.cerha@sh.cvut.cz>) |
Ответы |
Re: [HACKERS] Re: INET operators and NOT
|
Список | pgsql-bugs |
Tomas Cerha <t.cerha@sh.cvut.cz> writes: > Aplying the NOT operator with << INET operator results always in false. > accounting=> SELECT * FROM a; > ip > -------- > 10.1.1.1 > 10.1.1.2 > 10.2.1.2 > 10.2.1.1 > (4 rows) > accounting=> SELECT * FROM a WHERE ip<<'10.1/16'; > ip > -------- > 10.1.1.1 > 10.1.1.2 > (2 rows) > accounting=> SELECT * FROM a WHERE NOT ip<<'10.1/16'; > ip > -- > (0 rows) What's going on here is that the optimizer is simplifying "NOT x<<y" (network_sub) into "x>>=y" (network_supeq), because the pg_operator entry for << claims that >>= is its negator. This example demonstrates that that ain't so. Can anyone comment on whether any of the inet operators are actually the correct negator of << ? For that matter, are inet's other commutator and negator declarations just as broken? regards, tom lane
В списке pgsql-bugs по дате отправления: