Thread: Getting "ERROR: did not find all requested child rels inappend_rel_list" when enable_partition_pruning is on
Getting "ERROR: did not find all requested child rels inappend_rel_list" when enable_partition_pruning is on
From
Rajkumar Raghuwanshi
Date:
Hi,
I am getting "ERROR: did not find all requested child rels in append_rel_list" when enable_partition_pruning is on for below test case.CREATE TABLE test(c1 int, c2 int) PARTITION BY RANGE(c1);
CREATE TABLE test_p1 PARTITION OF test FOR VALUES FROM (minvalue) TO (0);
CREATE TABLE test_p2 PARTITION OF test FOR VALUES FROM (0) TO (maxvalue);
select * from (select * from test a union all select * from test b) ss where (c1 >= c2);
postgres=# set enable_partition_pruning to off;
SET
postgres=# select * from (select * from test a union all select * from test b) ss where (c1 >= c2);
c1 | c2
----+----
(0 rows)
postgres=#
postgres=# set enable_partition_pruning to on;
SET
postgres=# select * from (select * from test a union all select * from test b) ss where (c1 >= c2);
ERROR: did not find all requested child rels in append_rel_list
Thanks & Regards,
Rajkumar Raghuwanshi
QMG, EnterpriseDB Corporation
Re: Getting "ERROR: did not find all requested child rels inappend_rel_list" when enable_partition_pruning is on
From
Amit Langote
Date:
On 2018/06/15 16:32, Rajkumar Raghuwanshi wrote: > Hi, > > I am getting "ERROR: did not find all requested child rels in > append_rel_list" when enable_partition_pruning is on for below test case. > > CREATE TABLE test(c1 int, c2 int) PARTITION BY RANGE(c1); > CREATE TABLE test_p1 PARTITION OF test FOR VALUES FROM (minvalue) TO (0); > CREATE TABLE test_p2 PARTITION OF test FOR VALUES FROM (0) TO (maxvalue); > select * from (select * from test a union all select * from test b) ss > where (c1 >= c2); > > postgres=# set enable_partition_pruning to off; > SET > postgres=# select * from (select * from test a union all select * from > test b) ss where (c1 >= c2); > c1 | c2 > ----+---- > (0 rows) > > postgres=# > postgres=# set enable_partition_pruning to on; > SET > postgres=# select * from (select * from test a union all select * from > test b) ss where (c1 >= c2); > ERROR: did not find all requested child rels in append_rel_list Thanks for the report. This appears to be the same problem as one being discussed on the following thread where David Rowley even seems to have posted a patch as a fix for this issue: https://www.postgresql.org/message-id/flat/HE1PR03MB17068BB27404C90B5B788BCABA7B0%40HE1PR03MB1706.eurprd03.prod.outlook.com Thanks, Amit