int8, primary key, seq scan - Mailing list pgsql-general

From Jeff Amiel
Subject int8, primary key, seq scan
Date
Msg-id 41251533.80500@istreamimaging.com
Whole thread Raw
Responses Re: int8, primary key, seq scan
Re: int8, primary key, seq scan
List pgsql-general
7.4.2 running on FreeBSD 5.4.2

I have a table (called "draft" ) that has a bigserial as the primary key.

"check_id bigserial NOT NULL"

I  do NOT have an additional index on that column.

I have a plpgsql function (stored procedure) that selects from that
table based on the primary key field

"select into draftrow * from draft where check_id=draftid;"
where draft id is declared in the DECLARE section as "draftid int8;"

This query is woefully slow.  Sequential scan on table

However, if I modify the query as follows:

"select into draftrow * from draft where check_id=int8(draftid);"

Ultra mega speed improvement. Index scan using the primary key.

I declared the compared value (draftid) as an int8, why should I have to
cast it as such in the query to cause the optimizer to use the primary key?







pgsql-general by date:

Previous
From: "peter@remindex"
Date:
Subject: Re: select count(*) from pg_stat_activity in V8.0.0
Next
From: Kevin Matthews
Date:
Subject: need help