Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: JOINing based on whether an IP address is contained within a CIDR range?


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: "Jamie Tufnell" <diesql(at)googlemail(dot)com>
  • Cc: pgsql-sql(at)postgresql(dot)org
  • Subject: Re: JOINing based on whether an IP address is contained within a CIDR range?
  • Date: Thu, 25 Oct 2007 15:32:15 -0400
  • Message-id: <23757.1193340735@sss.pgh.pa.us> <text/plain>

"Jamie Tufnell" <diesql(at)googlemail(dot)com> writes:
> Is it possible to somehow JOIN using the <<= and
> = network operators?

Sure, why not?

You probably won't get a plan that's smarter than a nestloop, but I
imagine you'll have few enough rows in network_names that it won't
matter.

One potential problem is if there could be overlapping entries in
network_names --- the join would give you multiple rows for any
log entry that matches more than one network_names entry.  You
could fix that using a subselect with LIMIT 1, as long as you
weren't too picky about which name got reported.

			regards, tom lane



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group