From: Keresztury Balázs <balazs@gaslightmusic.hu>
To: 'Fernando Hevia' <fhevia@ip-tel.com.ar>
Cc: pgsql-performance@postgresql.org
Subject: Re: forced sequential scan when condition has current_user
Date: Tue, 5 Jan 2010 18:38:23 +0100
Message-ID: <000901ca8e2d$e320f1a0$a962d4e0$@hu> (raw)
In-Reply-To: <2C6DE1FB86AB4DFD9B8D19853E7F5560@iptel.com.ar>
References: <000f01ca8d87$88e71f30$9ab55d90$@hu>
<2C6DE1FB86AB4DFD9B8D19853E7F5560@iptel.com.ar>
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@ip-tel.com.ar]
Sent: Tuesday, January 05, 2010 3:16 PM
To: 'Keresztury Balázs'; pgsql-performance@postgresql.org
Subject: RE: [PERFORM] 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: balazs@gaslightmusic.hu, fhevia@ip-tel.com.ar
Subject: Re: forced sequential scan when condition has current_user
In-Reply-To: <000901ca8e2d$e320f1a0$a962d4e0$@hu>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox