Thread: cidr question
maybe I am not understanding it right. Here is my problem. I have a table like this Attribute | Type | Modifier --------------+--------------------------+----------ip | cidr | not null with following rows ip ---------------10.0.0.1/3210.0.0.50/3210.0.0.255/3211.0.0.0/3211.0.1.200/3211.0.1.20/32 (6 rows) should not the command DELETE from ip_space where ip = '11.0.1.0/24'::cidr delete last two rows ? But it does not delete anything. Basically I would like to be able to delete a whole range or block of ip/network addresses. I suppose I could rewrite the above sql as delete from ip_space where ip >='11.0.1.0/24'::cidr and ip <='11.0.2.0/24'::cidr; Then it works. But I should not have to do that. Right ? Thanks in advance. Please email and post here. Mir
Thus spake Mir S Islam > maybe I am not understanding it right. Here is my problem. > > I have a table like this > > Attribute | Type | Modifier > --------------+--------------------------+---------- > ip | cidr | not null > > with following rows > ip > --------------- > 10.0.0.1/32 > 10.0.0.50/32 > 10.0.0.255/32 > 11.0.0.0/32 > 11.0.1.200/32 > 11.0.1.20/32 > (6 rows) > > should not the command > DELETE from ip_space where ip = '11.0.1.0/24'::cidr > delete last two rows ? But it does not delete anything. Basically I would > like to be able to delete a whole range or block of ip/network addresses. What you want is the "Contained within" operator. Note the different outputs from these two queries. select '11.0.1.200/32'::cidr << '11.0.1.0/24'::cidr; select '11.0.1.200/32'::cidr << '11.1.1.0/24'::cidr; -- D'Arcy J.M. Cain <darcy@{druid|vex}.net> | Democracy is three wolves http://www.druid.net/darcy/ | and a sheep voting on +1 416 425 1212 (DoD#0082) (eNTP) | what's for dinner.