Re: Traversing targetlist to find accessed columns

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Amin <amin(dot)fallahi(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Traversing targetlist to find accessed columns
Date: 2022-12-03 14:33:35
Message-ID: 2242899.1670078015@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Amin <amin(dot)fallahi(at)gmail(dot)com> writes:
> Having a query, I am trying to find out all the columns that need to be
> accessed (their varattno and vartype). I have access to a targetlist
> representing a tree like this. So, I am looking for a function that
> recursively traverses the tree and gives me the VARs. So, for SELECT
> a,b,b+c from tab; I am interested in [a,b]. Is such a function currently
> implemented in postgresql? How can I use it?

pull_var_clause() might help you, or one of its siblings in
src/backend/optimizer/util/var.c, or you could use that as a
template to write your own --- it doesn't take much code if
you use expression_tree_walker to do the dirty work.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ilya Gladyshev 2022-12-03 15:13:30 Re: CREATE INDEX CONCURRENTLY on partitioned index
Previous Message Amit Kapila 2022-12-03 11:37:20 Re: Avoid streaming the transaction which are skipped (in corner cases)