Re: Problem with index not being chosen inside PL/PgSQL function... - Mailing list pgsql-general

From Tom Lane
Subject Re: Problem with index not being chosen inside PL/PgSQL function...
Date
Msg-id 835.1197995766@sss.pgh.pa.us
Whole thread Raw
In response to Re: Problem with index not being chosen inside PL/PgSQL function...  ("Weber, Geoffrey M." <Geoffrey.Weber@mcleodusa.com>)
Responses Re: Problem with index not being chosen inside PL/PgSQL function...
List pgsql-general
"Weber, Geoffrey M." <Geoffrey.Weber@mcleodusa.com> writes:
> Hmm - good question!  However, it is - both the id and
> not_displayed_id are INTEGERs.

Well, in that case it must be a statistics issue --- does the indexed
column have a badly skewed distribution?

You could investigate how many rows the planner thinks will be fetched
via

PREPARE foo(int) AS
SELECT ah.* FROM alert ah where ( (ah.replaced_by_id = '0') AND (not_displayed_id = $1 ) ) ORDER BY replaced_by_id,
not_displayed_id;

EXPLAIN EXECUTE foo(42);

which will set up exactly the same planning situation as occurs in the
plpgsql function: no knowledge of the exact value being compared to.

            regards, tom lane

pgsql-general by date:

Previous
From: "Weber, Geoffrey M."
Date:
Subject: Re: Problem with index not being chosen inside PL/PgSQL function...
Next
From: "Weber, Geoffrey M."
Date:
Subject: Re: Problem with index not being chosen inside PL/PgSQL function...