Thread: Difference between inet and cidr
May I know what is the difference among cidr and inet? I read through Network Address Type (http://www.postgresql.org/docs/8.3/static/datatype-net-types.html) """ The essential difference between inet and cidr data types is that inet accepts values with nonzero bits to the right of the netmask, whereas cidr does not. """ I understand what is Subnet Mask from http://en.wikipedia.org/wiki/Subnetwork. But, what does it mean by "nonzero bits to the right of the netmask"? Is there any example to show the difference among the 2? If I provide the following input 1.2.3.4, this is what I am getting if I view through pgAdmin. inet = 1.2.3.4 cidr = 1.2.3.4/32 |
Hi, On Tue, Jul 5, 2011 at 09:50, Yan Cheng CHEOK <yccheok@yahoo.com> wrote: > The essential difference between inet and cidr data types is that inet accepts values with nonzero bits to the right ofthe netmask, whereas cidr does not. Say, if you have a /8 netmask, the 'cidr' type requires that all the 24 rightmost bits are zero. inet does not have this requirement. E.g: db=# select '255.0.0.0/8'::cidr; 255.0.0.0/8 db=# select '255.1.0.0/8'::cidr; ERROR: invalid cidr value: "255.1.0.0/8" DETAIL: Value has bits set to right of mask. And inet allows this: db=# select '255.1.0.0/8'::inet; 255.1.0.0/8 Hope that helps. Regards, Marti
In article <CABRT9RAr2bFrxdx93H_aEQsKmuchMwurSfENP8itSpExsWsF7g@mail.gmail.com>, Marti Raudsepp <marti@juffo.org> writes: > Hi, > On Tue, Jul 5, 2011 at 09:50, Yan Cheng CHEOK <yccheok@yahoo.com> wrote: >> The essential difference between inet and cidr data types is that inet accepts values with nonzero bits to the right ofthe netmask, whereas cidr does not. > Say, if you have a /8 netmask, the 'cidr' type requires that all the > 24 rightmost bits are zero. inet does not have this requirement. > E.g: > db=# select '255.0.0.0/8'::cidr; > 255.0.0.0/8 > db=# select '255.1.0.0/8'::cidr; > ERROR: invalid cidr value: "255.1.0.0/8" > DETAIL: Value has bits set to right of mask. > And inet allows this: > db=# select '255.1.0.0/8'::inet; > 255.1.0.0/8 > Hope that helps. Do the inet/cidr types have any advantage over the ip4r contrib module?