Re: inet increment w/ int8

Bruno Wolff III <bruno@wolff.to>

From: Bruno Wolff III <bruno@wolff.to>
To: "Ilya A. Kovalenko" <shadow@oganer.net>
Cc: Greg Stark <pgsql-hackers@postgresql.org>
Date: 2005-04-20T15:18:10Z
Lists: pgsql-hackers
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.