On Wed, Apr 20, 2005 at 12:30:08 +0800, "Ilya A. Kovalenko" <shadow@oganer.net> wrote:
> GS> I see a use case for of generating addresses based on a sequence or some
> GS> primary key from the database.
>
> GS> Something like
>
> GS> CREATE SEQUENCE hosts_ip_seq MAXVALUE 65536;
> GS> ALTER TABLE hosts ALTER ip SET DEFAULT '10.0.0.0/16'::inet + nextval(hosts_ip_seq')
>
> hmm, not quite good idea - SEQUENCEs, by design, does not rollback next
> value on transation rollback, so you'll have holes on address range when
> other values will break some constraints or concurrent sessions
> appears.
You are going to have to have some way of handling holes anyway. What
happens when an allocated IP address is returned? That is why I think
for most uses a table with a row for each possible allocation is the
way to go.