Re: Best way to store case-insensitive data?

Поиск
Список
Период
Сортировка
От Steve Atkins
Тема Re: Best way to store case-insensitive data?
Дата
Msg-id 59353440-AE87-4FAD-BE31-22538D34033F@blighty.com
обсуждение исходный текст
Ответ на Re: Best way to store case-insensitive data?  (Andy Colson <andy@squeakycode.net>)
Список pgsql-general

On 6/10/2010 3:50 PM, Mike Christensen wrote:
> I have a column called "email" that users login with, thus I need to
> be able to lookup email very quickly.  The problem is, emails are
> case-insensitive.  I want foo@bar.com to be able to login with
> FOO@Bar.com as well.  There's two ways of doing this, that I can see:
>
> 1) Every time I lookup an email in the database, do a case-insensitive
> ilike, or cast both sides with LOWER().  I think both are slow,
> correct?


Use a functional index and they won't be.

create index email_lower_idx on foo (lower(email));

select * from foo where lower(email) = lower('foo@bar');

> 2) Every time the user updates or saves their email, store it in
> lowercase, and every time I lookup an email, pass in a lowercase
> email.  This is somewhat of a bug farm because one might miss some
> little spot in a piece of code where an email is compared or updated.
>
> Is there any way to tell postgres to always store data in lowercase
> form, or just have a flat out case-insensitive column?  Thanks!
>
> Mike
>

Cheers,
  Steve


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

Предыдущее
От: Greg Smith
Дата:
Сообщение: Re: database response slows while pg_dump is running (8.4.2)
Следующее
От: Scott Marlowe
Дата:
Сообщение: Re: database response slows while pg_dump is running (8.4.2)