UsersController#exists is slow due to a seq scan on namespaces

UsersController#exists has a mean runtime of 848ms with a 99th percentile over 2s due to a single SQL query:

gitlabhq_production=# explain SELECT  "namespaces".* FROM "namespaces" WHERE (lower(path) = 'username' OR lower(name) = 'username') LIMIT 1;
                                               QUERY PLAN                                               
--------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..12.36 rows=1 width=189)
   ->  Seq Scan on namespaces  (cost=0.00..129220.82 rows=10456 width=189)
         Filter: ((lower((path)::text) = 'username'::text) OR (lower((name)::text) = 'username'::text))

It looks like we're lacking an index on lower(name) on namespaces.

Edited by Gregory Stark