From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Turning off enable_partition_pruning doesn't |
Date: | 2019-04-30 18:35:51 |
Message-ID: | 16096.1556649351@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I'd have thought that disabling enable_partition_pruning would,
um, disable partition pruning. It does not:
regression=# create table p (a int) partition by list (a);
CREATE TABLE
regression=# create table p1 partition of p for values in (1);
CREATE TABLE
regression=# create table p2 partition of p for values in (2);
CREATE TABLE
regression=# explain select * from p1 where a = 3;
QUERY PLAN
----------------------------------------------------
Seq Scan on p1 (cost=0.00..41.88 rows=13 width=4)
Filter: (a = 3)
(2 rows)
regression=# set enable_partition_pruning TO off;
SET
regression=# explain select * from p1 where a = 3;
QUERY PLAN
----------------------------------------------------
Seq Scan on p1 (cost=0.00..41.88 rows=13 width=4)
Filter: (a = 3)
(2 rows)
The fact that we fail to prune the first child is a separate issue
driven by some ruleutils.c limitations, cf
https://www.postgresql.org/message-id/flat/001001d4f44b$2a2cca50$7e865ef0$(at)lab(dot)ntt(dot)co(dot)jp
My point here is that the second EXPLAIN should have shown scanning
both partitions, shouldn't it?
(v11 behaves the same as HEAD here; didn't try v10.)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Justin Pryzby | 2019-04-30 18:36:36 | Re: doc: improve PG 12 to_timestamp()/to_date() wording |
Previous Message | Andres Freund | 2019-04-30 18:27:41 | Re: REINDEX INDEX results in a crash for an index of pg_class since 9.6 |