Thanks a lot! seems I can use org.apache.calcite.rel.metadata.RelMetadataQuery#getColumnOrigin.
Regards! Aron Tao Walaa Eldin Moustafa <wa.moust...@gmail.com> 于2020年2月19日周三 下午2:36写道: > You might check out this class [1]. > > [1] > https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java > > On Tue, Feb 18, 2020 at 10:31 PM Seliverstov Igor <gvvinbl...@gmail.com> > wrote: > > > > You can use their origins (says where a column came from). > > > > It's accessable from SqlValidatorImpl or jdbc result set > > > > ср, 19 февр. 2020 г., 9:25 JiaTao Tao <t...@apache.org>: > > > > > What I really need is to collect every part of the SQL, Which columns > are > > > used as filters, which are used as projection(Columns on the source > > > table), But > > > the existence of nested subqueries complicates the issue. > > > > > > > > > Regards! > > > > > > Aron Tao > > > > > > > > > JiaTao Tao <t...@apache.org> 于2020年2月19日周三 下午2:17写道: > > > > > > > SQL like this: > > > > ``` > > > > SELECT T1.NID, > > > > T1.NAME, > > > > T2.COMPANY > > > > FROM > > > > (SELECT (U.ID +100) AS NID, > > > > U.NAME AS NAME > > > > FROM USERS U) T1 > > > > JOIN > > > > (SELECT (J.ID +100) AS NID, > > > > J.COMPANY > > > > FROM JOBS J) T2 ON T1.NID = T2.NID > > > > ``` > > > > What I wanted is that T1.NID comes from USER.ID, T1.NAME comes from > > > > USER.NAME. > > > > > > > > Has anyone done similar work? Is there a ready-made example to refer > to? > > > > > > > > > > > > Regards! > > > > > > > > Aron Tao > > > > > > > >