[
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)