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; Explain analyze: "Seq Scan on projektszervezet psz (cost=0.00..255.07 rows=42 width=9)" " Filter: ((felhasznalo_id)::name = "current_user"())" Metadata: CREATE TABLE "projekt"."projektszervezet" ( CONSTRAINT "projektszervezet_pkey" PRIMARY KEY("kotesszam", "felhasznalo_id"), CONSTRAINT "projektszervezet_fk_felhasznalo" FOREIGN KEY ("felhasznalo_id") REFERENCES "felhasznalo"."felhasznalo"("felhasznalo_id") ON DELETE RESTRICT ON UPDATE RESTRICT NOT DEFERRABLE, CONSTRAINT "projektszervezet_fk_projekt" FOREIGN KEY ("kotesszam") REFERENCES "projekt"."projekt"("kotesszam") ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE, CONSTRAINT "projektszervezet_fk_szerep" FOREIGN KEY ("szerep_id") REFERENCES "felhasznalo"."szerep"("szerep_id") ON DELETE RESTRICT ON UPDATE RESTRICT NOT DEFERRABLE ) INHERITS ("projekt"."projektszervezet_sablon") WITH OIDS; CREATE INDEX "projektszervezet_idx_felhasznalo_id" ON "projekt"."projektszervezet" USING btree ("felhasznalo_id"); CREATE INDEX "projektszervezet_idx_kotesszam" ON "projekt"."projektszervezet" USING btree ("kotesszam"); CREATE TRIGGER "projektszervezet_archivalas" BEFORE UPDATE OR DELETE ON "projekt"."projektszervezet" FOR EACH ROW EXECUTE PROCEDURE "public"."projektszervezet_archivalas_trigger"(); CREATE TRIGGER "projektszervezet_idopecset" BEFORE UPDATE ON "projekt"."projektszervezet" FOR EACH ROW EXECUTE PROCEDURE "public"."idopecset_trigger"(); CREATE TRIGGER "projektszervezet_naplozas" BEFORE INSERT OR UPDATE OR DELETE ON "projekt"."projektszervezet" FOR EACH ROW EXECUTE PROCEDURE "public"."projektszervezet_naplozas_trigger"(); Inherited table: CREATE TABLE "projekt"."projektszervezet_sablon" ( "kotesszam" VARCHAR(10) NOT NULL, "felhasznalo_id" VARCHAR NOT NULL, "szerep_id" VARCHAR(3), "felvivo" VARCHAR DEFAULT "current_user"() NOT NULL, "felvitel_idopont" TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL, "modosito" VARCHAR, "modositas_idopont" TIMESTAMP WITHOUT TIME ZONE, "elso_felvivo" VARCHAR DEFAULT "current_user"() NOT NULL, "elso_felvitel_idopont" TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT now() NOT NULL ) WITH OIDS; CREATE TRIGGER "projektszervezet_idopecset" BEFORE UPDATE ON "projekt"."projektszervezet_sablon" FOR EACH ROW EXECUTE PROCEDURE "public"."idopecset_trigger"(); Thanks! Balazs -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance