[
https://issues.apache.org/jira/browse/KYLIN-4755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17196962#comment-17196962
]
ASF subversion and git services commented on KYLIN-4755:
--------------------------------------------------------
Commit e590750b52aa73774725fbd37c9049b6b7a9e569 in kylin's branch
refs/heads/master from Guangxu Cheng
[ https://gitbox.apache.org/repos/asf?p=kylin.git;h=e590750 ]
KYLIN-4755 Error while compiling generated Java code when using Kylin UDF in
"case when"
> Error while compiling generated Java code when using Kylin UDF in "case when"
> -----------------------------------------------------------------------------
>
> Key: KYLIN-4755
> URL: https://issues.apache.org/jira/browse/KYLIN-4755
> Project: Kylin
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: v3.1.0
> Reporter: Guangxu Cheng
> Assignee: Guangxu Cheng
> Priority: Major
> Fix For: v3.1.1
>
>
> SQL:
> {code:sql}
> select case when TRANS_ID > 0 then concat('a','b')
> else version()
> end
> from KYLIN_SALES
> {code}
> Error message:
> {panel}
> Error while compiling generated Java code:
> org.apache.calcite.DataContext root;
> public org.apache.calcite.linq4j.Enumerable bind(final
> org.apache.calcite.DataContext root0) {
> root = root0;
> final org.apache.calcite.linq4j.Enumerable _inputEnumerable =
> ((org.apache.kylin.query.schema.OLAPTable)
> root.getRootSchema().getSubSchema("DEFAULT").getTable("KYLIN_SALES")).executeOLAPQuery(root,
> 0);
> final org.apache.calcite.linq4j.AbstractEnumerable child = new
> org.apache.calcite.linq4j.AbstractEnumerable(){
> public org.apache.calcite.linq4j.Enumerator enumerator() {
> return new org.apache.calcite.linq4j.Enumerator(){
> public final org.apache.calcite.linq4j.Enumerator inputEnumerator =
> _inputEnumerable.enumerator();
> public void reset() {
> inputEnumerator.reset();
> }
> public boolean moveNext() {
> return inputEnumerator.moveNext();
> }
> public void close() {
> inputEnumerator.close();
> }
> public Object current() {
> final Long inp0_ = (Long) ((Object[])
> inputEnumerator.current())[0];
> {color:red}return inp0_ != null && inp0_.longValue() > 0L ?
> org.apache.kylin.query.udf.ConcatUDF.eval("a", "b") :
> org.apache.kylin.query.udf.VersionUDF.eval();{color}
> }
> };
> }
> };
> return child.take(5);
> }
> public Class getElementType() {
> return java.lang.String.class;
> }
> at org.apache.calcite.avatica.Helper.wrap(Helper.java:37)
> at
> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:108)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1278)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:331)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:230)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:796)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:655)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:618)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:221)
> at
> org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:603)
> at
> org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
> at
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
> ... 83 more
> {color:red}Caused by: org.codehaus.commons.compiler.CompileException: Line
> 24, Column 104: Instance method "eval" cannot be invoked in static context
> {color}
> {panel}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)