Re: what does "initplan" operation in explain output mean?

From: Mark Rostron <mrostron(at)ql2(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: what does "initplan" operation in explain output mean?
Date: 2010-08-02 16:42:45
Message-ID: FD020D3E50E7FA479567872E5F5F31E30459D62323@ex01.corp.ql2.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Thanks.
So am I right in assuming that the aggregate sub-query ( against work_active ) results will not assist with constraint exclusion in the sub-query against work_unit (if we introduce range partitions on this table)?
Mr

-----Original Message-----
From: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
Sent: Sunday, August 01, 2010 7:08 AM
To: Mark Rostron
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: [PERFORM] what does "initplan" operation in explain output mean?

Mark Rostron <mrostron(at)ql2(dot)com> writes:
> This message is a request for information about the "initplan" operation in explain plan.

An initplan is a sub-SELECT that only needs to be executed once because it has no dependency on the immediately surrounding query level. The cases you show here are from sub-SELECTs like this:

(select min(wu_id) from work_active limit 1)

which yields a value that's independent of anything in the outer query.
If there were an outer reference in there, you'd get a SubPlan instead, because the subquery would need to be done over again for each row of the outer query.

BTW, adding LIMIT 1 to an aggregate query is pretty pointless.

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Tom Lane 2010-08-02 17:29:47 Re: what does "initplan" operation in explain output mean?
Previous Message Yeb Havinga 2010-08-02 15:00:27 Re: Testing Sandforce SSD