[ 
https://issues.apache.org/jira/browse/FLINK-8921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17139181#comment-17139181
 ] 

吴彦祖 commented on FLINK-8921:
----------------------------

hi, [~xueyu] ,I met a other case that beyond 64 KB , I use *“case when”* too。

I saw the method *generateExprSplits()* is split each operand to  single method。

And *generateOr()*  combine operates to a new method.

But the code of this method may beyong 64KB too,  should be splited if need。

If the bug is not fixed, it may aslo appear in *generateAnd(), generateIn()*, 
etc. 

Or if the bug is fixed in newer version or fixing , please give me the pr link, 
thx.

 

> Split code generated call expression 
> -------------------------------------
>
>                 Key: FLINK-8921
>                 URL: https://issues.apache.org/jira/browse/FLINK-8921
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / Legacy Planner
>            Reporter: Timo Walther
>            Assignee: xueyu
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> In FLINK-8274 we introduced the possibility of splitting the generated code 
> into multiple methods in order to exceed the JVMs maximum method size (see 
> also https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.9).
> At the moment we only split methods by fields, however, this is not enough in 
> all case. We should also split expressions. I suggest to split the operands 
> of a {{RexCall}} in 
> {{org.apache.flink.table.codegen.CodeGenerator#visitCall}} if we reach a 
> certain threshold. However, this should happen as lazily as possible to keep 
> the runtime overhead low.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to