Re: [HACKERS] Indexes bug

Bruce Momjian <maillist@candle.pha.pa.us>

From: Bruce Momjian <maillist@candle.pha.pa.us>
To: tgl@sss.pgh.pa.us (Tom Lane)
Cc: fenix@am.ring.ru, pgsql-hackers@postgreSQL.org
Date: 1998-08-11T17:11:56Z
Lists: pgsql-hackers
> Serj <fenix@am.ring.ru> writes:
> > [ system not using an index when it should ]
> 
> Two questions:
> 
> 1. Did you do a "vacuum analyze" after making the indexes?
>    Without that, the optimizer may be choosing a sequential scan
>    because it doesn't know how big the tables are.
> 
> 2. What postgres version are you using?
> 
> There are some bugs in the current cvs sources that affect whether
> indexes get used --- look at the ongoing threads in the hackers list.
> Maybe you've found another manifestation of that problem.  But if
> you're using 6.3.2 then it's something different...

I think we now know what is happening in the current cvs tree.  The
optimizer calls op_class to find if there is an pg_opam entry for the
expression (int4eq), the current index access type(btree), and the
current index op class(int4_ops).

In the case of oideqint4, there is no pg_amop to match it, and we can't
add extra rows to pg_amop to make it work.  I suppose we could try
adding a amopopr_compat column to pg_amop, and somehow do a lookup on
that if the first one does not match.  Because of the way the system
caches are structured, we would need a new cache for that extra column,
I think.  There must be a better way.


-- 
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)