This is a bug in Apache Calcite: https://issues.apache.org/jira/browse/CALCITE-1097 It has been fixed in Calcite 1.7, while Kylin 1.5.3 uses 1.6;
When Kylin upgrade Calcite version, this problem will be solved. 在 2016年8月3日 上午8:58,不疯不成魔 <[email protected]>写道: > hi,the version is 1.5.3 > > > > > ------------------ 原始邮件 ------------------ > 发件人: "ShaoFeng Shi";<[email protected]>; > 发送时间: 2016年8月3日(星期三) 上午8:55 > 收件人: "dev"<[email protected]>; > > 主题: Re: kylin查询栈溢出异常 > > > > Hi, which version of Kylin are you running? > > 在 2016年8月2日 下午5:34,不疯不成魔 <[email protected]>写道: > > > 上封邮件遗漏了测试过程,具体如下: > > 在"Insight"中进行sql语句查询的时候,发现如果聚合指标超过84个以后,就会报"Operand stack overflow at > > offset 1052"这类错误,我测试的query语句如下: > > select t2.org_level2_no,t2.org_level2_name, > > > > > sum(t1.p1),sum(t1.p2),sum(t1.p3),sum(t1.p4),sum(t1.p5),sum(t1.p6),sum(t1.p7),sum(t1.p8),sum(t1.p9),sum(t1.p10), > > > > > sum(t1.p11),sum(t1.p12),sum(t1.p13),sum(t1.p14),sum(t1.p15),sum(t1.p16),sum(t1.p17),sum(t1.p18),sum(t1.p19),sum(t1.p20), > > > > > sum(t1.p21),sum(t1.p22),sum(t1.p23),sum(t1.p24),sum(t1.p25),sum(t1.p26),sum(t1.p27),sum(t1.p28),sum(t1.p29),sum(t1.p30), > > > > > sum(t1.p31),sum(t1.p32),sum(t1.p33),sum(t1.p34),sum(t1.p35),sum(t1.p36),sum(t1.p37),sum(t1.p38),sum(t1.p39),sum(t1.p40), > > > > > sum(t1.p41),sum(t1.p42),sum(t1.p43),sum(t1.p44),sum(t1.p45),sum(t1.p46),sum(t1.p47),sum(t1.p48),sum(t1.p49),sum(t1.p50), > > > > > sum(t1.p51),sum(t1.p52),sum(t1.p53),sum(t1.p54),sum(t1.p55),sum(t1.p56),sum(t1.p57),sum(t1.p58),sum(t1.p59),sum(t1.p60), > > > > > sum(t1.p61),sum(t1.p62),sum(t1.p63),sum(t1.p64),sum(t1.p65),sum(t1.p66),sum(t1.p67),sum(t1.p68),sum(t1.p69),sum(t1.p70), > > > > > sum(t1.p71),sum(t1.p72),sum(t1.p73),sum(t1.p74),sum(t1.p75),sum(t1.p76),sum(t1.p77),sum(t1.p78),sum(t1.p79),sum(t1.p80), > > > > > sum(t1.p81),sum(t1.p82),sum(t1.p83),sum(t1.p84),sum(t1.p85),sum(t1.p86),sum(t1.p87),sum(t1.p88),sum(t1.p89),sum(t1.p90), > > sum(t1.p91),sum(t1.p92),sum(t1.p93),sum(t1.p94),sum(t1.p95),sum(t1.p96) > > from td_power_view t1 > > join di_org_no t2 on t1.org_no = t2.org_level5_no > > where t1.record_time='20150404' > > group by t2.org_level2_no,t2.org_level2_name > > order by t2.org_level2_no; > > > > > > > > > > > > ------------------ 原始邮件 ------------------ > > 发件人: "不疯不成魔";<[email protected]>; > > 发送时间: 2016年8月2日(星期二) 下午3:50 > > 收件人: "dev"<[email protected]>; > > > > 主题: kylin查询栈溢出异常 > > > > > > > > 您好! > > 万分感谢您能在百忙之中抽出空查阅我的邮件,谢谢! > > 在kylin的使用过程中,project、model、cube已经建立成功,但是在之后的使用中发现如下问题(具体日志请查阅附件一): > > > > public Class getElementType() { > > return java.lang.Object[].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:1171) > > at > org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:297) > > at > org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:196) > > at > > > org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:721) > > at > > > org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:588) > > at > > > org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:558) > > at > > > org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214) > > at > > > org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:573) > > at > > > org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571) > > at > > > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:135) > > ... 80 more > > Caused by: org.codehaus.janino.JaninoRuntimeException: Baz$3.apply(): > > Operand stack overflow at offset 1052 > > at > > org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java:490) > > at > > org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java:299) > > at > org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2309) > > at > > > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:820) > > at > > > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:792) > > at > org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:505) > > at > org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:656) > > at > org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:620) > > at > > org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:343) > > at > > org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:894) > > at > org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:352) > > at > > org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4194) > > at > > org.codehaus.janino.UnitCompiler.access$7300(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$10.visitNewAnonymousClassInstance(UnitCompiler.java:3260) > > at > > org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:4131) > > at > > org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3278) > > at > > org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4345) > > at > > org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3952) > > at > > org.codehaus.janino.UnitCompiler.access$6900(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$10.visitMethodInvocation(UnitCompiler.java:3251) > > at > org.codehaus.janino.Java$MethodInvocation.accept(Java.java:3974) > > at > > org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3278) > > at > > org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4345) > > at > > org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3904) > > at > > org.codehaus.janino.UnitCompiler.access$6900(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$10.visitMethodInvocation(UnitCompiler.java:3251) > > at > org.codehaus.janino.Java$MethodInvocation.accept(Java.java:3974) > > at > > org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3278) > > at > > org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4345) > > at > > org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3904) > > at > > org.codehaus.janino.UnitCompiler.access$6900(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$10.visitMethodInvocation(UnitCompiler.java:3251) > > at > org.codehaus.janino.Java$MethodInvocation.accept(Java.java:3974) > > at > > org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3278) > > at > > org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4345) > > at > > org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1901) > > at > > org.codehaus.janino.UnitCompiler.access$2100(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$4.visitReturnStatement(UnitCompiler.java:944) > > at > org.codehaus.janino.Java$ReturnStatement.accept(Java.java:2544) > > at > org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:956) > > at > > org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:997) > > at > org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2283) > > at > > > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:820) > > at > > > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:792) > > at > org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:505) > > at > org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:391) > > at > > org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:183) > > at > > > org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:345) > > at > > > org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1139) > > at > org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:352) > > at > > org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:320) > > at > > > org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:383) > > at > > > org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:315) > > at > > org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:233) > > at > org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:192) > > at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:47) > > at > > > org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:340) > > at > > > org.apache.calcite.adapter.enumerable.EnumerableInterpretable.getBindable(EnumerableInterpretable.java:140) > > at > > > org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:105) > > ... 90 more > > > > > > -- > Best regards, > > Shaofeng Shi > -- Best regards, Shaofeng Shi
