>> create unique index tbl_iname_idx on tbl (lower(name_field))
By the way, in case it wasn't obvious, this has a nice side-benefit.
Namely, PG will use that index for caseless lookups, so you can do
this:
select * from tbl where lower(name_field) = lower('John');
very efficiently.
- John D. Burger
MITRE