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