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
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) |