[
https://issues.apache.org/jira/browse/CALCITE-4251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wang Yanlin resolved CALCITE-4251.
----------------------------------
Resolution: Fixed
Fixed in
https://github.com/apache/calcite/commit/f3c173c9220a83be0dfa0c80a39b015f384ffcd1,
thx [~xzh_dz]
> Get the origin column, even if it is derived
> --------------------------------------------
>
> Key: CALCITE-4251
> URL: https://issues.apache.org/jira/browse/CALCITE-4251
> Project: Calcite
> Issue Type: Wish
> Reporter: xzh_dz
> Priority: Major
> Labels: pull-request-available
> Time Spent: 3.5h
> Remaining Estimate: 0h
>
> A case:
> {code:java}
> final String sql1 = ""
> + "select empno, sum(sal) as all_sal\n"
> + "from emp\n"
> + "group by empno";
> {code}
> When i try to get the `all_sal` origin column field,it will return null and
> it is derived. we always get the origin column although it is derived. We
> should overload this method and determine whether the column is derived by
> setting parameters.
> org.apache.calcite.rel.metadata.RelMetadataQuery#getColumnOrigin
> {code:java}
> // code placeholder
> public RelColumnOrigin getColumnOrigin(RelNode rel, int column) {
> final Set<RelColumnOrigin> origins = getColumnOrigins(rel, column);
> if (origins == null || origins.size() != 1) {
> return null;
> }
> final RelColumnOrigin origin = Iterables.getOnlyElement(origins);
> return origin.isDerived() ? null : origin;
> }
> {code}
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)