Re: forced sequential scan when condition has current_user

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You are right along with the others, the seq scan was only forced because of
the varchar-text comparision.. Using the cast solves the problem.

Thanks for the answers everyone!

Balazs



-----Original Message-----
From: Fernando Hevia [mailto:fhevia@xxxxxxxxxxxxx] 
Sent: Tuesday, January 05, 2010 3:16 PM
To: 'Keresztury Balázs'; pgsql-performance@xxxxxxxxxxxxxx
Subject: RE:  forced sequential scan when condition has
current_user

 

> -----Mensaje original-----
> De: Keresztury Balázs
> 
> hi,
> 
> just a small question: is it normal that PostgreSQL 8.4.1 
> always uses sequential scanning on any table when there is a 
> condition having the constant "current_user"? Of course there 
> is a btree index set on that table, but the DBMS just doesn't 
> want to utilize it. When I replace current_user to any 
> string, the planner uses the index normally.
> 
> I can demonstrate it with the following simple query:
> 
> SELECT psz.kotesszam FROM projekt.projektszervezet psz WHERE 
> psz.felhasznalo_id = current_user;
> 

Probably you are comparing different types. Try explicitly casting
current_user to text:

SELECT psz.kotesszam FROM projekt.projektszervezet psz WHERE 
psz.felhasznalo_id = current_user::text




-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux