Hi Adam, I developed a solution to your problem (and mine 🙂 ) as part of my master thesis. Code is available at [1].
If you have any questions regarding the code, feel free to ask me. [1] https://github.com/igrgurina/multicloud_rewriter/blob/master/core/src/main/java/cloud/sec/core/adapter/jdbc/MultiCloudDataManager.java [https://avatars0.githubusercontent.com/u/2978480?s=400&v=4]<https://github.com/igrgurina/multicloud_rewriter/blob/master/core/src/main/java/cloud/sec/core/adapter/jdbc/MultiCloudDataManager.java> igrgurina/multicloud_rewriter<https://github.com/igrgurina/multicloud_rewriter/blob/master/core/src/main/java/cloud/sec/core/adapter/jdbc/MultiCloudDataManager.java> Contribute to igrgurina/multicloud_rewriter development by creating an account on GitHub. github.com Ivan Grgurina Research Assistant (ZEMRIS) ________________________________ [cid:f99e49a4-e831-4f9a-b440-6322e4462e75]<https://www.linkedin.com/in/igrgurina/> [cid:6299c77a-e109-43ef-b370-4abc0d34a3f1] <https://www.fer.unizg.hr/ivan.grgurina> ________________________________ From: Haisheng Yuan <[email protected]> Sent: Tuesday, June 4, 2019 11:45 AM To: Stamatis Zampetakis; Apache Calcite dev list Subject: Re: Re: Extracting all columns used in a query Hi Adam, Calcite defintely can do this. But can you first clarify what do you mean by all the columns in a query? e.g. R(r1, r2,r3), S(s1,s2,s3) SELECT r1+s1 FROM R,S WHERE r3=s3; What do you want to extract from this query? r1,r3 for R and s1, s3 for S? And why do you want do that? - Haisheng Yuan------------------------------------------------------------------ 发件人:Stamatis Zampetakis<[email protected]> 日 期:2019年06月04日 17:26:18 收件人:<[email protected]> 主 题:Re: Extracting all columns used in a query Hey Adam, I am not sure exactly what information you need, and at which level (SqlNode/RelNode), but maybe you can exploit what is present in RelRoot [1]. Follow the calls to the constructor to see which APIs can provide you what you need (check for instance, SqlToRelConverter.convertQuery [2]). Best, Stamatis [1] https://github.com/apache/calcite/blob/7f33215ffaf9c0b8f4bef082913c910c77bf4427/core/src/main/java/org/apache/calcite/rel/RelRoot.java#L89 [2] https://github.com/apache/calcite/blob/7f33215ffaf9c0b8f4bef082913c910c77bf4427/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L553 On Tue, Jun 4, 2019 at 12:39 AM Muhammad Gelbana <[email protected]> wrote: > I don't konw if there is an API for that but visiting the parsed/validated > SqlNode tree can do what you asked for. > > Thanks, > Gelbana > > > On Tue, Jun 4, 2019 at 12:12 AM Adam Rivelli <[email protected]> wrote: > > > Hi all, > > > > I'm trying to extract all of the (fully qualified) columns used by a > query > > - similar to the information provided by > > RelMetadataQuery.getTableReferences() > > < > > > https://calcite.apache.org/apidocs/org/apache/calcite/rel/metadata/RelMetadataQuery.html#getTableReferences-org.apache.calcite.rel.RelNode- > > >, > > but for column references. Is this possible to do using Calcite? > > > > I've been looking through the API docs and experimenting with the API, > but > > I haven't found a straightforward way of doing this. Any help or > > information is appreciated. > > > > Adam > > >
