Re: Generating "Subplan Removed" in EXPLAIN - Mailing list pgsql-hackers

From David Rowley
Subject Re: Generating "Subplan Removed" in EXPLAIN
Date
Msg-id CAApHDvr8C2gdYvHN6KRLNCREnfiMZKd9dUwhTeTVH6ysS2+rJw@mail.gmail.com
Whole thread Raw
In response to Re: Generating "Subplan Removed" in EXPLAIN  (Yugo NAGATA <nagata@sraoss.co.jp>)
Responses Re: Generating "Subplan Removed" in EXPLAIN
List pgsql-hackers
On Wed, 1 Feb 2023 at 15:53, Yugo NAGATA <nagata@sraoss.co.jp> wrote:
> Maybe, you missed to set plan_cache_mode to force_generic_plan.
> "Subplan Removed" doesn't appear when using a custom plan.

I wouldn't say that's 100% true. The planner is only able to prune
using values which are known during planning. Constant folding is
going to evaluate any immutable functions during planning, but nothing
more.

Partition pruning might be delayed until execution time if some
expression that's being compared to the partition key is stable. e.g:

create table rp (t timestamp not null) partition by range(t);
create table rp2022 partition of rp for values from ('2022-01-01') to
('2023-01-01');
create table rp2023 partition of rp for values from ('2023-01-01') to
('2024-01-01');

explain select * from rp where t >= now();

 Append  (cost=0.00..95.33 rows=1506 width=8)
   Subplans Removed: 1
   ->  Seq Scan on rp2023 rp_1  (cost=0.00..43.90 rows=753 width=8)
         Filter: (t >= now())

David



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Logical replication timeout problem
Next
From: "Anton A. Melnikov"
Date:
Subject: Re: odd buildfarm failure - "pg_ctl: control file appears to be corrupt"