Expression Pruning in postgress

From: HarmeekSingh Bedi <harmeeksingh(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Expression Pruning in postgress
Date: 2011-07-06 20:29:03
Message-ID: CALLwk6v4OwMbb6+Rr18hCvC+-Y4RY6KcVV1a2QxPTsz0pde6pg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi .

Apology for the bandwith. Did not know who to ask the question . I
was interested in a brief detail on how postgress does expression
pruning between nodes . The basic question is as follows

Scenerio

In a plan where Node 1 is parent {say join) and Node 2 is child
(say scan) . If node 1 has a expression say foo(column) then scan
will project 'column' for sure and join will
evaluate foo(column). Now if the node above join does not need
column ? how does postgress remove the column from join's projection
list . I am seeing that it does not in many
cases specially when sort appears above.

Question
In general is there something in the code that can process a plan
tree and find out where expressions are generated and where there
references are not required - thus removing expressions not needed .
In my case the column is a huge column and hence it will matter if it
is removed from the projection list as soon as possible ?

Any insights welcome and thanks for all help

Regards
Harmeek

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Brar Piening 2011-07-06 20:41:40 Re: Review of VS 2010 support patches
Previous Message Kohei KaiGai 2011-07-06 20:25:12 Re: [v9.2] Fix leaky-view problem, part 1