Skip site navigation (1) Skip section navigation (2)

Re: Index not used in functions in 7.0?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Kyle Bateman <kyle(at)actarg(dot)com>, pgsql-sql(at)postgresql(dot)org, merrill(at)actarg(dot)com
Subject: Re: Index not used in functions in 7.0?
Date: 2000-05-16 16:36:28
Message-ID: 21654.958494988@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-sql
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
> Kyle Bateman <kyle(at)actarg(dot)com> writes:
>> I dumped the log (-d 9) from the postmaster and the plan confirms that
>> the scan is sequential when called from within the function but indexed
>> when the SQL is called directly.

> Yikes, that does sound like a bug.

Actually, after further thought I realize that there is a reason for
plans within functions to be different from plans of hand-entered
queries.  In the latter case the optimizer knows the constant values
(eg, it sees "WHERE to_proj = 50"), in the former case it doesn't
(eg, it sees "WHERE to_proj = $1") and has to fall back on guesses
about selectivities.

In the particular case at hand I've have expected it to pick an
indexscan anyway, but maybe there's just something weird about your
data.  Could I trouble you for the vacuum stats for that table?
Easiest way to get them is

select attname,attdisbursion,s.*
from pg_statistic s, pg_attribute a, pg_class c
where starelid = c.oid and attrelid = c.oid and staattnum = attnum
and relname = 'FOO';

(I'm beginning to think we should create a standard system view
for this query ;-))

			regards, tom lane

In response to

Responses

pgsql-sql by date

Next:From: Clayton Cottingham aka DrFrogDate: 2000-05-16 17:18:05
Subject: doc links broken
Previous:From: Joseph ShraibmanDate: 2000-05-16 16:23:21
Subject: Re: pattern matching operator

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group