Re: pgsql: Support partition pruning at execution time

From: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Support partition pruning at execution time
Date: 2018-04-07 23:26:07
Message-ID: CAKJS1f9QV-dNDtDUORW5hovhKSyK_7jfV22-LRNfCkW7JjA6-A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On 8 April 2018 at 10:59, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> wrote:
> Sometimes I see:
>
> relname | relallvisible
> ---------+---------------
> tprt_1 | 0
> tprt_2 | 1
>
> Other times I see:
>
> relname | relallvisible
> ---------+---------------
> tprt_1 | 0
> tprt_2 | 0

The minimum set of commands I can find to recreate this are:

drop table if exists tprt;
create table tprt (col1 int) partition by range (col1);
create table tprt_1 partition of tprt for values from (1) to (5001);
create index tprt1_idx on tprt_1 (col1);
insert into tprt values (10), (20), (501), (502), (505), (1001), (4500);
vacuum tprt; select relname,relallvisible from pg_Class where relname
like 'tprt%' and relkind = 'r';

I get relallvisible = 0 once in maybe 20 or so attempts.

I didn't manage to get the same without a partitioned table.

--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message David Rowley 2018-04-07 23:38:23 Re: pgsql: Support partition pruning at execution time
Previous Message Stephen Frost 2018-04-07 23:02:09 pgsql: Fix EXEC BACKEND + Windows builds for group privs

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2018-04-07 23:38:23 Re: pgsql: Support partition pruning at execution time
Previous Message David Rowley 2018-04-07 22:59:21 Re: pgsql: Support partition pruning at execution time