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

Reply via email to