I think the VerifyError is due to Janino generating a java method whose 
bytecode is larger than 64 kB. This is a JVM limitation.

IIRC Calcite has a mode where it will generate expressions into separate 
methods.

Julian


> On May 22, 2015, at 12:04 AM, Parkavi Nandagopal <[email protected]> wrote:
> 
> Hi Sarnath,
> 
> Problem is with line1, not with inner query (case statement) and Col4 is not 
> single value, it will vary.
> By the way, single case statement and multiple when-then will give only one 
> column. But according to my requirement I want more than 200 columns with all 
> combination.
> 
> Thanks,
> Parkavi.
> 
> -----Original Message-----
> From: Sarnath [mailto:[email protected]] 
> Sent: Friday, May 22, 2015 10:51 AM
> To: [email protected]
> Subject: Re: Operand stack overflow error
> 
> 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.
>> 
>> 
>> ----------------------------------------------------------------------
>> ------------------------------------------------------------------------------
>> 

Reply via email to