It's my pleasure, you are welcome ~ Juan Pan <panj...@apache.org> 于2019年9月29日周日 下午2:24写道:
> Hi XING, > I appreciate your kindness. :-D Your detailed and prompt replies really > helped me a lot. > I will review the java doc you mentioned. > > > Best wishes, > Trista > > > Juan Pan > > > panj...@apache.org > Juan Pan(Trista), Apache ShardingSphere > > > On 09/29/2019 13:58,XING JIN<jinxing.co...@gmail.com> wrote: > You can check the below doc of SqlValidatorUtil#getAlias for explanation: > > /** > * Derives an alias for a node, and invents a mangled identifier if it > * cannot. > * > * <p>Examples: > * > * <ul> > * <li>Alias: "1 + 2 as foo" yields "foo" > * <li>Identifier: "foo.bar.baz" yields "baz" > * <li>Anything else yields "expr$<i>ordinal</i>" > * </ul> > * > * @return An alias, if one can be derived; or a synthetic alias > * "expr$<i>ordinal</i>" if ordinal < 0; otherwise null > */ > public static String getAlias(SqlNode node, int ordinal) > > But from my experience, you'd better not rely on above logic heavily. If > you really care about the output name, just give it an alias explicitly. > > Juan Pan <panj...@apache.org> 于2019年9月29日周日 下午1:27写道: > > That means Calcite can only return real columnName or columnLabel from > simple column or alias. And any aggregate function, or calculate expression > without alias, parsing expression, i.e, `EXPR$0` will be returned? > > > Juan Pan > > > panj...@apache.org > Juan Pan(Trista), Apache ShardingSphere > > > On 09/29/2019 13:16,XING JIN<jinxing.co...@gmail.com> wrote: > If no column name given explicitly, e.g. by alias or simple identifier, > Calcite will derive one but not from the aggregate function. > > Juan Pan <panj...@apache.org> 于2019年9月29日周日 下午1:12写道: > > Thank for your reply. It is a indirect way to get columnName. > > > Calcite can not return the real columnName from SQL, is it right? > > > Juan Pan > > > panj...@apache.org > Juan Pan(Trista), Apache ShardingSphere > > > On 09/29/2019 12:21,XING JIN<jinxing.co...@gmail.com> wrote: > You can try to give an alias for the selected column. > > Juan Pan <panj...@apache.org> 于2019年9月29日周日 上午11:39写道: > > > > Hi everyone, > > > I executed SQL `select count(*) from tb1` through Calcite and > resultSet.getMetaData().getColumnName(i) in my project. But the result is > `EXPR$0` not `COUNT(*)`. > > > Is there any way to get real columnName? > > > Thanks for your attention. > > > Regard, > Trista > > > > > Juan Pan > > > panj...@apache.org > Juan Pan(Trista), Apache ShardingSphere > > > > >