From: | Tomas Cerha <t(dot)cerha(at)sh(dot)cvut(dot)cz> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | INET operators and NOT |
Date: | 1999-12-28 20:09:15 |
Message-ID: | 386918EB.5372772E@sh.cvut.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Your name : Tomas Cerha
Your email address : t(dot)cerha(at)sh(dot)cvut(dot)cz
----------------------------------------------------------------------
System Configuration
----------------------------------------------------------------------
Architecture (example: Intel Pentium) : Intel Pentium MMX
Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.5-15 ELF
PostgreSQL version (example: PostgreSQL-6.5.3): PostgreSQL-6.5.3
Compiler used (example: gcc 2.8.0) : installed from RPMs
installed packages:
postgresql-6.5.3-1.i386.rpm
postgresql-perl-6.5.3-1.i386.rpm
postgresql-server-6.5.3-1.i386.rpm
postgresql-tcl-6.5.3-1.i386.rpm
postgresql-test-6.5.3-1.rpm
----------------------------------------------------------------------
I've already posted this bug, but nobody replied yet ... I was not
subscribed,
but now I am. If it is not significant, I'm sorry to overload this
mailing list... Now to the problem:
----------------------------------------------------------------------
Please enter a FULL description of your problem:
----------------------------------------------------------------------
Aplying the NOT operator with << INET operator results always in false.
See the example below:
This is the contents of table a:
accounting=> SELECT * FROM a;
ip
--------
10.1.1.1
10.1.1.2
10.2.1.2
10.2.1.1
(4 rows)
Now, let's select only those hosts from subnet '10.1/16': (works fine)
accounting=> SELECT * FROM a WHERE ip<<'10.1/16';
ip
--------
10.1.1.1
10.1.1.2
(2 rows)
And now, I only apply NOT to prewious statement ....
accounting=> SELECT * FROM a WHERE NOT ip<<'10.1/16';
ip
--
(0 rows)
But that is not true! I tryed this also with other versions of postgress
on other machines and the result was always the same. But this makes all
about INET operators quite unusable, when I am not able to exclude some
address space (I can only include them). Or is there another way to do
It?
----------------------------------------------------------------------
Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
CREATE TABLE a (ip inet);
INSERT INTO a VALUES ('10.1.1.1');
INSERT INTO a VALUES ('10.1.1.2');
INSERT INTO a VALUES ('10.2.1.2');
INSERT INTO a VALUES ('10.2.1.1');
SELECT * FROM a;
SELECT * FROM a WHERE ip<<'10.1/16';
SELECT * FROM a WHERE NOT ip<<'10.1/16';
DROP TABLE a;
----------------------------------------------------------------------
Thank you for any idea which could help to solve this problem ...
Tom Cerha, student, FEE CTU Prague Czech Republic
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Cerha | 1999-12-28 20:14:46 | INET operators and NOT |
Previous Message | Tom Lane | 1999-12-27 16:00:38 | Re: [BUGS] Equal test on strings doesn't ignore trailing spaces if the function 'lower' is applied |