This is not a solution. By why don't you use a single case stmt and multiple when-then clause and 1 end clause. At least hive supports it. Not sure if ANSI SQL does. You may want to check. On May 22, 2015 10:18 AM, "Parkavi Nandagopal" <[email protected]> wrote:
> Hi, > > > > When run the below query for pivoting, Operand stack overflow error is > coming. > > *ERROR:* > > Caused by: org.codehaus.janino.JaninoRuntimeException: Baz$9.apply(): > Operand stack overflow at offset 1292 > > at > org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java:490) > > at > org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java:299) > > > > *QUERY:* > > Select col1,col2,col3,max(ncol1),max(ncol2),……..max(ncol127) //line1 > > From > > ( select col1,col2,col3, > > Case when col4= ‘abc’ and col5 = ‘123’ then max(val) else NULL end as > ncol1, > > … > > … > > Case when col4=’abc’ and col5 = ‘890’ then max(val) else NULL end as > ncol127 > > Case when col4=’abc’ and col5 = ‘891’ then max(val) else NULL end as > ncol128 > > Case when col4=’abc’ and col5 = ‘892’ then max(val) else NULL end as > ncol129 > > Case when col4=’abc’ and col5 = ‘893’ then max(val) else NULL end as > ncol130 > > From facttable > > Group by col1,col2,col3,col4,col5 ) as tab1 > > Group by col1,col2,col3 > > > > > > No error upto ncol126, but if I give more than 126 in line1 then I’m > getting this stack overflow error. > > > > Then I found, in Janino->codecontext.java, stack size is hardcoded as > MAX_STACK_SIZE = 254. > > > > After I increased the stack size to 500, I’m able to get the output upto > ncol127(in line1). > > But if I increase the col after that i.e. ncol128, it is shouting another > error. > > > > *ERROR:* > > java.lang.VerifyError: (class: Baz$9, method: apply signature: > ()Ljava/lang/Object;) Signature > (Ljava/math/BigDecimal;ZLjava/math/BigDecimal;ZLjava/math/BigDecimal; > > > > Please find the log in the attachment. > > > > Please help me to solve this issue. > > > > > > Thanks, > > Parkavi. > > > > > > > > ::DISCLAIMER:: > > ---------------------------------------------------------------------------------------------------------------------------------------------------- > > The contents of this e-mail and any attachment(s) are confidential and > intended for the named recipient(s) only. > E-mail transmission is not guaranteed to be secure or error-free as > information could be intercepted, corrupted, > lost, destroyed, arrive late or incomplete, or may contain viruses in > transmission. The e mail and its contents > (with or without referred errors) shall therefore not attach any liability > on the originator or HCL or its affiliates. > Views or opinions, if any, presented in this email are solely those of the > author and may not necessarily reflect the > views or opinions of HCL or its affiliates. Any form of reproduction, > dissemination, copying, disclosure, modification, > distribution and / or publication of this message without the prior > written consent of authorized representative of > HCL is strictly prohibited. If you have received this email in error > please delete it and notify the sender immediately. > Before opening any email and/or attachments, please check them for viruses > and other defects. > > > ---------------------------------------------------------------------------------------------------------------------------------------------------- >
