Re: [HACKERS] Indexes bug
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] Indexes bug |
Дата | |
Msg-id | 199808111711.NAA16717@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] Indexes bug (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | 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)
В списке pgsql-hackers по дате отправления: