Re: Bad estimation for "where field not in"

From: Ants Aasma <ants(dot)aasma(at)eesti(dot)ee>
To: Daniele Varrazzo <daniele(dot)varrazzo(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Bad estimation for "where field not in"
Date: 2012-03-01 17:53:07
Message-ID: CA+CSw_vALyg5x-2ynK-tNpgtv9Yw41ZQx=C5enc0QFjzk7A=Dg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Thu, Mar 1, 2012 at 6:40 PM, Daniele Varrazzo
<daniele(dot)varrazzo(at)gmail(dot)com> wrote:
> Is this a known planner shortcoming or something unexpected, to be
> escalated to -bugs? Server version is 9.0.1.

The relevant code is in scalararraysel() function. It makes the
assumption that element wise comparisons are completely independent,
while the exact opposite is true. This has been this way since
http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=290166f93404d8759f4bf60ef1732c8ba9a52785
introduced it to version 8.2.

At least for equality and inequality ops it would be good to rework
the logic to aggregate with
s1 = s1 + s2 and s1 = s1 + s2 - 1 correspondingly.

--
Ants Aasma

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Craig James 2012-03-01 18:19:31 Re: [planner] Ignore "order by" in subselect if parrent do count(*)
Previous Message Tom Lane 2012-03-01 17:50:02 Re: [planner] Ignore "order by" in subselect if parrent do count(*)