Thread
-
Re: [HACKERS] Re: [BUGS] General Bug Report: Bug in optimizer
Bruce Momjian <maillist@candle.pha.pa.us> — 1999-03-18T19:59:11Z
> Bruce Momjian wrote: > > > > My guess is that the creation of the index updates the table size > > statistics. > > Yes. > > > However, when I see zero size, I don't know if it is accurate, or if > > someone has added rows since the last vacuum/index creation, so I think > > it is correct to use an index on a zero-length table if it is > > appropriate. If the size is 1, I will assume that number is accurate, > > and do a sequential scan. > > > > Does that make sense? > > Yes. But we have to fix SeqScan for field1 = -1... The basic problem is that the -1 is stored as: { EXPR :typeOid 0 :opType op :oper { OPER :opno 558 :opid 0 :opresulttype 23 } :args ( { CONST :consttype 23 :constlen 4 :constisnull false :constvalue 4 [ 4 0 0 0 ] :constbyval true } ) This is clearly undesirable, and causes the optimizer to think it can't use the index. Is this bug report for 6.4.*, or did are you running the current development tree? I assume you are running 6.4.*, and am surprised this did not show as a larger problem. I will look in the grammer for a fix. This should come across as a single -4 constant. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026