Re: BUG #1797: Problem using Limit in a function, seqscan - Mailing list pgsql-bugs

From Michael Fuhr
Subject Re: BUG #1797: Problem using Limit in a function, seqscan
Date
Msg-id 20050729140038.GA83653@winnie.fuhr.org
Whole thread Raw
In response to BUG #1797: Problem using Limit in a function, seqscan  ("Magno Leite" <magnomilk@yahoo.com.br>)
List pgsql-bugs
On Fri, Jul 29, 2005 at 01:52:45PM +0100, Magno Leite wrote:
> I looked for about this problem in BUG REPORT but I can't find. This is my
> problem, when I try to use limit in a function, the Postgre doesn't use my
> index, then it use sequencial scan. What is the problem ?

Without more information we can only guess, but if you're using
PL/pgSQL then a cached query plan might be responsible.  Here's an
excerpt from the PREPARE documentation:

    In some situations, the query plan produced for a prepared
    statement will be inferior to the query plan that would have
    been chosen if the statement had been submitted and executed
    normally.  This is because when the statement is planned and
    the planner attempts to determine the optimal query plan, the
    actual values of any parameters specified in the statement are
    unavailable.  PostgreSQL collects statistics on the distribution
    of data in the table, and can use constant values in a statement
    to make guesses about the likely result of executing the
    statement.  Since this data is unavailable when planning prepared
    statements with parameters, the chosen plan may be suboptimal.

If you'd like us to take a closer look, then please post a self-
contained example, i.e., all SQL statements that somebody could
load into an empty database to reproduce the behavior you're seeing.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

pgsql-bugs by date:

Previous
From: "Magno Leite"
Date:
Subject: BUG #1797: Problem using Limit in a function, seqscan
Next
From: Bruno Wolff III
Date:
Subject: Re: BUG #1797: Problem using Limit in a function, seqscan