Re: BUG #15717: Index not used when ordering by left joined table column

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: cdalxndr(at)yahoo(dot)com
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #15717: Index not used when ordering by left joined table column
Date: 2019-03-28 01:19:22
Message-ID: 11046.1553735962@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> The following query runs slow, as it seq scans tables, without using any
> index:
> select
> wp.id as id
> from
> web_page wp
> left join web_url_path url on wp.id=url.page
> order by
> url.priority asc
> limit 1

> I was expecting the "priority" column index would be used to retrieve first
> url then do a reverse join to get the corresponding page, and continue if no
> page is found.

It would probably do that if you used a plain join, or a right join.
But a nestloop plan cannot be driven from the inside of an outer join,
and that's the case this query presents.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alex 2019-03-28 08:40:56 Re: BUG #15717: Index not used when ordering by left joined table column
Previous Message Lars Vonk 2019-03-27 16:17:51 Re: BUG #15715: UPDATE using "in (subquery for update limit 1)" does not respect the limit in subquery