Re: [HACKERS] cidr

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] cidr
Дата
Msg-id 199807241600.MAA18216@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] cidr  (darcy@druid.net (D'Arcy J.M. Cain))
Ответы Re: [HACKERS] cidr
Список pgsql-hackers
> Thus spake Bruce Momjian
> > > >     192.0.0.3:255.255.0.0   host/netmask
> > > Converted internally to 192.0.0.3:/16
> >
> > This is a problem.  Suppose you have:
> >
> >     192.0.0.0:255.255.255.0
> >
> > This is a host with netmask, while:
> >
> >     192.0.0.0/24
> >
> > is a network address.  Paul?
>
> I believe that these two representations refer to the same thing.  Whether
> that thing is a network or an address depends on the application.  Either
> the column is being used to store networks or hosts.  That's what I was
> getting at with my previous analogy with int types.  An int could hold
> ordinal numbers like IDs or it could hold quantities.  We don't need
> the data type to store which.  The application knows and we don't store
> ID codes and counts in the same column.  The same with IP numbers.  We
> decide in any particular application whether a column is a list of hosts
> or a list of networks and we then populate it.
>
> I do like the idea of using attypmod to define the form of the type.
> I assume we can use that to determine the output format, that is, use
> it to effectively apply one of the functions to it.  That makes for
> a clean use of the type.

OK.  Sounds good to me.  The only problem is display.  If we don't
indicate whether it is a cidr or host/netmask on column creation or
insertion, how do we display it so it makes sense?  Always cidr?


>
> > > >     192.0.0.3/32:255.255.255.0  host?/netmask
> > > But 192.0.0.3/24 or 192.0.0.3:255.255.255.0 gives all the information
> > > that you need.
> >
> > See example above.  You use the 3 here to know it is a host, because the
> > IP address extens past the netmask, but what if they are zeros?
>
> Technically, 192.0.0.0/24 is a valid host on 192.0.0 although most
> people avoid it because some older equipment doesn't handle it very
> well.
>
> > > You mean printing netmasks?  As I said, it seems to me that netmasks will
> > > always be paired with a host or network but perhaps we can set up the
> > > function table so that netmask on an integer type converts to a netmask
> > > in the form you suggest.  That would be the truly oo way to do it.
> >
> > Certainly we could, but it seems nice to have one type just for ip-type
> > stuff.
>
> I agree.  I'm just saying that we can add the netmask function to integer
> as well.  That gives someone the flexibility to store it either way.
> However, I don't think I am going to speak to this point again until
> someone can give me a single example of a requirement for storing
> netmasks independent of any hosts or networks.  :-)

OK.  Why not?

>
> I just thought of another useful function.
>
>     broadcast('192.3.4.5/24::cidr') == 192.3.4.255


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

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

Предыдущее
От: darcy@druid.net (D'Arcy J.M. Cain)
Дата:
Сообщение: Re: [HACKERS] cidr
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [DOCS] Re: [GENERAL] Re: [HACKERS] [Fwd: SGVLLUG Oracle and Informix on Linux]y