Re: Avoid full GIN index scan when possible

Alexander Korotkov <a.korotkov@postgrespro.ru>

From: Alexander Korotkov <a.korotkov@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Julien Rouhaud <rjuju123@gmail.com>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, Nikita Glukhov <n.gluhov@postgrespro.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Thomas Munro <thomas.munro@gmail.com>, Marc Cousin <cousinmarc@gmail.com>
Date: 2020-01-17T22:13:33Z
Lists: pgsql-hackers
On Sat, Jan 18, 2020 at 12:48 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Alexander Korotkov <a.korotkov@postgrespro.ru> writes:
> > On Wed, Jan 15, 2020 at 2:03 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> Hmm ... yeah, these test cases are not large enough to exercise any
> >> lossy-page cases, are they?  I doubt we should try to make a new regression
> >> test that is that big.  (But if there is one already, maybe we could add
> >> more test queries with it, instead of creating whole new tables?)
>
> > I've checked that none of existing tests for GIN can produce lossy
> > bitmap page with minimal work_mem = '64kB'.  I've tried to generate
> > sample table with single integer column to get lossy page.  It appears
> > that we need at least 231425 rows to get it.  With wider rows, we
> > would need less number of rows, but I think total heap size wouldn't
> > be less.
> > So, I think we don't need so huge regression test to exercise this corner case.
>
> Ugh.  Yeah, I don't want a regression test case that big either.
>
> v15 looks good to me.

Thanks! Pushed!

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company



Commits

  1. Avoid full scan of GIN indexes when possible