| From: | David Rowley <dgrowleyml(at)gmail(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | a(dot)schnabl(at)synedra(dot)com, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> | 
| Subject: | Re: BUG #16993: Query Planner does not use index for EXISTS-query on a large table with all equal foreign key values | 
| Date: | 2021-05-06 05:53:02 | 
| Message-ID: | CAApHDvqvQ2mQZ36Gkz+qbC8e98ShVscF0aiB6TXHN=5uiXWOQg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
On Thu, 6 May 2021 at 15:28, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Yeah, I agree that it doesn't seem great to let var_eq_non_const return
> 1.0 when it has no idea what the comparison value is.  However, that
> doesn't translate to having much confidence in any other value either.
> The actual number-of-rows-fetched, given that we know the column
> contents are all the same value, is either zero or the whole table.
> It's hard to do much with that; and biasing it towards believing the
> optimistic value over the pessimistic value seems dangerous.
Maybe we should be also looking at var_eq_non_const()'s 'other' field
and seeing if that's a Var with stats and dividing the results by the
number of distinct values in that, or at least doing something closer
to what eqjoinsel_inner() does when it's prompted with the same
problem.
David
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2021-05-06 12:11:54 | Re: BUG #16993: Query Planner does not use index for EXISTS-query on a large table with all equal foreign key values | 
| Previous Message | Tom Lane | 2021-05-06 03:28:35 | Re: BUG #16993: Query Planner does not use index for EXISTS-query on a large table with all equal foreign key values |