Hi! This is because Java has a maximum method length of 64 KB. For Flink <= 1.13 please set table.generated-code.max-length to less than 65536 (~8192 is preferred) to limit the length of each generated method.
If this doesn't help, we've (hopefully) completely fixed this issue in Flink 1.14 by creating a brand-new module called the java-code-splitter. For now you might want to make the length of your SQL shorter and wait for the release of Flink 1.14. 张颖 <queyue...@163.com> 于2021年9月14日周二 上午11:07写道: > I write a long sql,but when I explain my plan,it make a mistake: > > org.apache.flink.util.FlinkRuntimeException: > org.apache.flink.api.common.InvalidProgramException: Table program cannot > be compiled. This is a bug. Please file an issue. > at > org.apache.flink.table.runtime.generated.CompileUtils.compile(CompileUtils.java:76) > at > org.apache.flink.table.runtime.generated.GeneratedClass.compile(GeneratedClass.java:77) > at > org.apache.flink.table.runtime.generated.GeneratedClass.getClass(GeneratedClass.java:95) > at > org.apache.flink.table.runtime.operators.CodeGenOperatorFactory.getStreamOperatorClass(CodeGenOperatorFactory.java:51) > at > org.apache.flink.client.program.topology.FlinkStreamTopology.setOperatorParameter(FlinkStreamTopology.java:75) > at java.util.ArrayList.forEach(ArrayList.java:1257) > at > org.apache.flink.client.program.topology.FlinkStreamTopology.setOperatorParameters(FlinkStreamTopology.java:109) > at > org.apache.flink.client.program.topology.FlinkStreamTopology.updateStreamGraph(FlinkStreamTopology.java:122) > at > org.apache.flink.client.program.topology.FlinkStreamTopology.streamGraphTopoHandler(FlinkStreamTopology.java:115) > at > org.apache.flink.client.program.topology.FlinkStreamTopology.getPipelinePlanJson(FlinkStreamTopology.java:167) > at > org.apache.flink.client.program.AbstractFlinkTopology.getPlan(AbstractFlinkTopology.java:35) > at > org.apache.flink.client.program.PackagedProgramUtils.getPlanBox(PackagedProgramUtils.java:351) > at > org.apache.flink.runtime.webmonitor.handlers.JobPlanBoxHandler.lambda$handleRequest$4(JobPlanBoxHandler.java:138) > at > java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: > org.apache.flink.shaded.guava18.com.google.common.util.concurrent.UncheckedExecutionException: > org.apache.flink.api.common.InvalidProgramException: Table program cannot > be compiled. This is a bug. Please file an issue. > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache.get(LocalCache.java:3937) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4739) > at > org.apache.flink.table.runtime.generated.CompileUtils.compile(CompileUtils.java:74) > ... 20 common frames omitted > Caused by: org.apache.flink.api.common.InvalidProgramException: Table > program cannot be compiled. This is a bug. Please file an issue. > at > org.apache.flink.table.runtime.generated.CompileUtils.doCompile(CompileUtils.java:89) > at > org.apache.flink.table.runtime.generated.CompileUtils.lambda$compile$1(CompileUtils.java:74) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4742) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282) > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197) > ... 23 common frames omitted > Caused by: org.codehaus.janino.InternalCompilerException: Compiling > "BatchCalc$21123": Code of method "split$21122$(LBatchCalc$21123;)V" of > class "BatchCalc$21123" grows beyond 64 KB > at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:382) > at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:237) > at > org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:465) > at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:216) > at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:207) > at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:80) > at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:75) > at > org.apache.flink.table.runtime.generated.CompileUtils.doCompile(CompileUtils.java:86) > ... 29 common frames omitted > Caused by: org.codehaus.janino.InternalCompilerException: Code of method > "split$21122$(LBatchCalc$21123;)V" of class "BatchCalc$21123" grows beyond > 64 KB > at org.codehaus.janino.CodeContext.makeSpace(CodeContext.java:1048) > at org.codehaus.janino.CodeContext.write(CodeContext.java:940) > at org.codehaus.janino.UnitCompiler.writeShort(UnitCompiler.java:12282) > at org.codehaus.janino.UnitCompiler.load(UnitCompiler.java:11941) > at org.codehaus.janino.UnitCompiler.load(UnitCompiler.java:11926) > at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4465) > at org.codehaus.janino.UnitCompiler.access$8000(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$16$1.visitLocalVariableAccess(UnitCompiler.java:4408) > at > org.codehaus.janino.UnitCompiler$16$1.visitLocalVariableAccess(UnitCompiler.java:4400) > at org.codehaus.janino.Java$LocalVariableAccess.accept(Java.java:4274) > at org.codehaus.janino.UnitCompiler$16.visitLvalue(UnitCompiler.java:4400) > at org.codehaus.janino.UnitCompiler$16.visitLvalue(UnitCompiler.java:4396) > at org.codehaus.janino.Java$Lvalue.accept(Java.java:4148) > at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4396) > at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4461) > at org.codehaus.janino.UnitCompiler.access$7500(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$16$1.visitAmbiguousName(UnitCompiler.java:4403) > at > org.codehaus.janino.UnitCompiler$16$1.visitAmbiguousName(UnitCompiler.java:4400) > at org.codehaus.janino.Java$AmbiguousName.accept(Java.java:4224) > at org.codehaus.janino.UnitCompiler$16.visitLvalue(UnitCompiler.java:4400) > at org.codehaus.janino.UnitCompiler$16.visitLvalue(UnitCompiler.java:4396) > at org.codehaus.janino.Java$Lvalue.accept(Java.java:4148) > at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4396) > at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5662) > at > org.codehaus.janino.UnitCompiler.compileStringConcatenation(UnitCompiler.java:7885) > at > org.codehaus.janino.UnitCompiler.compileArithmeticOperation(UnitCompiler.java:7737) > at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5008) > at org.codehaus.janino.UnitCompiler.access$8500(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$16.visitBinaryOperation(UnitCompiler.java:4417) > at > org.codehaus.janino.UnitCompiler$16.visitBinaryOperation(UnitCompiler.java:4396) > at org.codehaus.janino.Java$BinaryOperation.accept(Java.java:4864) > at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4396) > at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5662) > at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5182) > at org.codehaus.janino.UnitCompiler.access$9100(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$16.visitMethodInvocation(UnitCompiler.java:4423) > at > org.codehaus.janino.UnitCompiler$16.visitMethodInvocation(UnitCompiler.java:4396) > at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:5073) > at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4396) > at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5662) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3792) > at org.codehaus.janino.UnitCompiler.access$6100(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$13.visitAssignment(UnitCompiler.java:3754) > at > org.codehaus.janino.UnitCompiler$13.visitAssignment(UnitCompiler.java:3734) > at org.codehaus.janino.Java$Assignment.accept(Java.java:4477) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3734) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2360) > at org.codehaus.janino.UnitCompiler.access$1800(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1494) > at > org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1487) > at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:2874) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1487) > at > org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1567) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1553) > at org.codehaus.janino.UnitCompiler.access$1700(UnitCompiler.java:215) > at org.codehaus.janino.UnitCompiler$6.visitBlock(UnitCompiler.java:1493) > at org.codehaus.janino.UnitCompiler$6.visitBlock(UnitCompiler.java:1487) > at org.codehaus.janino.Java$Block.accept(Java.java:2779) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1487) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2476) > at org.codehaus.janino.UnitCompiler.access$1900(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$6.visitIfStatement(UnitCompiler.java:1495) > at > org.codehaus.janino.UnitCompiler$6.visitIfStatement(UnitCompiler.java:1487) > at org.codehaus.janino.Java$IfStatement.accept(Java.java:2950) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1487) > at > org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1567) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3388) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1357) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1330) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:822) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:432) > at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:215) > at > org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:411) > at > org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:406) > at > org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1414) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:406) > at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:378) > ... 36 common frames omitted > > > > > > this is my sql: > SELECT CONCAT_WS(' ',cast(REGEXP_REPLACE(string_feature['3150003'], > '\n|\r|\t', '') as String),cast(REGEXP_REPLACE(pin, '\n|\r|\t', '') as > String),cast(REGEXP_REPLACE(uuid, '\n|\r|\t', '') as > String),cast(REGEXP_REPLACE(string_feature['3670037'], '\n|\r|\t', '') as > String),cast(REGEXP_REPLACE(string_feature['3670038'], '\n|\r|\t', '') as > String),cast(REGEXP_REPLACE(string_feature['3670039'], '\n|\r|\t', '') as > String),cast(int_feature['3670021'] as String),cast(int_feature['3670022'] > as String),cast(int_feature['3670023'] as > String),cast(int_feature['3670024'] as String),cast(int_feature['3670025'] > as String),cast(int_feature['3670026'] as String),cast(REGEXP_REPLACE(pvid, > '\n|\r|\t', '') as String),cast(int_feature['524289'] as String),cast(pos > as String),cast(REGEXP_REPLACE(logid, '\n|\r|\t', '') as String),cast(ts as > String),cast(REGEXP_REPLACE(string_feature['3150001'], '\n|\r|\t', '') as > String),cast(int_feature['524290'] as String),cast(int_feature['524297'] as > String),cast(int_feature['524296'] as String),cast(int_feature['524291'] as > String),cast(cast_array(id_list_feature['524356']) as > String),cast(cast_array(id_list_feature['524357']) as > String),cast(cast_array(id_list_feature['524358']) as > String),cast(cast_array(id_list_feature['524359']) as > String),cast(cast_array(id_list_feature['524361']) as > String),cast(cast_array(id_list_feature['524362']) as > String),cast(cast_array(id_list_feature['524363']) as > String),cast(cast_array(id_list_feature['524364']) as > String),cast(cast_array(id_list_feature['524365']) as > String),cast(cast_array(id_list_feature['524368']) as > String),cast(cast_array(id_list_feature['524375']) as > String),cast(cast_array(id_list_feature['524376']) as > String),cast(cast_array(id_list_feature['524377']) as > String),cast(cast_array(id_list_feature['524378']) as > String),cast(cast_array(id_list_feature['524380']) as > String),cast(cast_array(id_list_feature['5250017']) as > String),cast(cast_array(id_list_feature['5250018']) as > String),cast(cast_array(id_list_feature['5250019']) as > String),cast(cast_array(id_list_feature['5250020']) as > String),cast(cast_array(id_list_feature['5250021']) as > String),cast(cast_array(id_list_feature['5250022']) as > String),cast(cast_array(embedding_feature['2097177']) as > String),cast(cast_array(embedding_feature['5250023']) as > String),cast(number_feature['20'] as String),cast(int_feature['524323'] as > String),cast(number_feature['1'] as String),cast(number_feature['2'] as > String),cast(number_feature['3'] as String),cast(number_feature['5'] as > String),cast(number_feature['8'] as String),cast(number_feature['9'] as > String),cast(number_feature['12'] as String),cast(number_feature['16'] as > String),cast(number_feature['17'] as String),cast(number_feature['18'] as > String),cast(int_feature['524292'] as String),cast(spu as > String),cast(number_feature['25'] as String),cast(number_feature['26'] as > String),cast(number_feature['27'] as String),cast(number_feature['30'] as > String),cast(number_feature['31'] as String),cast(number_feature['33'] as > String),cast(number_feature['35'] as String),cast(number_feature['45'] as > String),cast(number_feature['46'] as String),cast(number_feature['34'] as > String),cast(number_feature['49'] as String),cast(number_feature['50'] as > String),cast(number_feature['57'] as String),cast(number_feature['58'] as > String),cast(number_feature['93'] as String),cast(number_feature['94'] as > String),cast(number_feature['95'] as String),cast(number_feature['96'] as > String),cast(number_feature['97'] as String),cast(number_feature['98'] as > String),cast(number_feature['99'] as String),cast(number_feature['100'] as > String),cast(number_feature['101'] as String),cast(number_feature['105'] as > String),cast(number_feature['106'] as String),cast(number_feature['108'] as > String),cast(number_feature['109'] as String),cast(number_feature['111'] as > String),cast(number_feature['112'] as String),cast(number_feature['127'] as > String),cast(number_feature['130'] as String),cast(number_feature['131'] as > String),cast(number_feature['134'] as String),cast(number_feature['135'] as > String),cast(number_feature['139'] as String),cast(number_feature['140'] as > String),cast(number_feature['250'] as String),cast(number_feature['395'] as > String),cast(number_feature['397'] as String),cast(number_feature['399'] as > String),cast(number_feature['403'] as String),cast(number_feature['523'] as > String),cast(number_feature['524'] as String),cast(number_feature['525'] as > String),cast(number_feature['529'] as String),cast(number_feature['531'] as > String),cast(number_feature['563'] as String),cast(number_feature['575'] as > String),cast(number_feature['576'] as String),cast(number_feature['577'] as > String),cast(number_feature['583'] as String),cast(number_feature['584'] as > String),cast(number_feature['585'] as String),cast(number_feature['586'] as > String),cast(number_feature['587'] as String),cast(number_feature['590'] as > String),cast(number_feature['594'] as String),cast(number_feature['637'] as > String),cast(number_feature['639'] as String),cast(number_feature['640'] as > String),cast(number_feature['643'] as String),cast(number_feature['644'] as > String),cast(number_feature['647'] as String),cast(number_feature['650'] as > String),cast(number_feature['652'] as String),cast(number_feature['653'] as > String),cast(number_feature['654'] as String),cast(number_feature['655'] as > String),cast(number_feature['656'] as String),cast(number_feature['657'] as > String),cast(number_feature['658'] as String),cast(number_feature['659'] as > String),cast(number_feature['1910'] as String),cast(number_feature['1911'] > as String),cast(number_feature['1915'] as > String),cast(number_feature['1924'] as String),cast(number_feature['1927'] > as String),cast(number_feature['1933'] as > String),cast(number_feature['1936'] as String),cast(number_feature['1937'] > as String),cast(number_feature['1938'] as > String),cast(number_feature['1941'] as String),cast(number_feature['1942'] > as String),cast(number_feature['1944'] as > String),cast(number_feature['1946'] as String),cast(number_feature['1990'] > as String),cast(number_feature['1991'] as > String),cast(number_feature['2008'] as String),cast(number_feature['2023'] > as String),cast(number_feature['2082'] as > String),cast(number_feature['2090'] as String),cast(number_feature['2091'] > as String),cast(number_feature['2107'] as > String),cast(number_feature['2118'] as String),cast(number_feature['2119'] > as String),cast(number_feature['2126'] as > String),cast(number_feature['2127'] as String),cast(number_feature['2551'] > as String),cast(number_feature['2552'] as > String),cast(number_feature['2553'] as String),cast(number_feature['2554'] > as String),cast(number_feature['2555'] as > String),cast(number_feature['2556'] as String),cast(number_feature['2559'] > as String),cast(number_feature['2560'] as > String),cast(number_feature['2607'] as String),cast(number_feature['2608'] > as String),cast(number_feature['2609'] as > String),cast(number_feature['2610'] as String),cast(number_feature['2611'] > as String),cast(number_feature['2614'] as > String),cast(number_feature['2615'] as String),cast(number_feature['2616'] > as String),cast(number_feature['2617'] as > String),cast(number_feature['2618'] as String),cast(number_feature['2631'] > as String),cast(number_feature['2632'] as > String),cast(number_feature['2633'] as String),cast(number_feature['2634'] > as String),cast(number_feature['2635'] as > String),cast(number_feature['2636'] as String),cast(number_feature['2647'] > as String),cast(number_feature['2648'] as > String),cast(number_feature['2649'] as String),cast(number_feature['2650'] > as String),cast(number_feature['2651'] as > String),cast(number_feature['2654'] as String),cast(number_feature['2655'] > as String),cast(number_feature['2656'] as > String),cast(number_feature['2657'] as String),cast(number_feature['2658'] > as String),cast(number_feature['2671'] as > String),cast(number_feature['2672'] as String),cast(number_feature['2673'] > as String),cast(number_feature['2674'] as > String),cast(number_feature['2675'] as String),cast(number_feature['2676'] > as String),cast(number_feature['2687'] as > String),cast(number_feature['2688'] as String),cast(number_feature['2689'] > as String),cast(number_feature['2690'] as > String),cast(number_feature['2691'] as String),cast(number_feature['2694'] > as String),cast(number_feature['2695'] as > String),cast(number_feature['2696'] as String),cast(number_feature['2697'] > as String),cast(number_feature['2698'] as > String),cast(number_feature['505'] as String),cast(number_feature['541'] as > String),cast(number_feature['542'] as String),cast(number_feature['506'] as > String),cast(number_feature['543'] as String),cast(number_feature['544'] as > String),cast(number_feature['507'] as String),cast(number_feature['545'] as > String),cast(number_feature['546'] as String),cast(number_feature['692'] as > String),cast(number_feature['686'] as String),cast(number_feature['687'] as > String),cast(number_feature['693'] as String),cast(number_feature['688'] as > String),cast(number_feature['689'] as String),cast(number_feature['694'] as > String),cast(number_feature['690'] as String),cast(number_feature['691'] as > String),cast(cast_array(embedding_feature['2097182']) as > String),cast(cast_array(embedding_feature['2097183']) as > String),cast(cast_array(id_list_feature['5250043']) as > String),cast(cast_array(id_list_feature['5250044']) as > String),cast(cast_array(id_list_feature['5250045']) as > String),cast(cast_array(id_list_feature['5250048']) as > String),cast(cast_array(id_list_feature['5250049']) as > String),cast(cast_array(id_list_feature['5250050']) as > String),cast(cast_array(id_list_feature['5250024']) as > String),cast(int_feature['81022'] as String),cast(int_feature['5018'] as > String),cast(int_feature['5019'] as String),cast(number_feature['5020'] as > String),cast(REGEXP_REPLACE(string_feature['5021'], '\n|\r|\t', '') as > String),cast(REGEXP_REPLACE(string_feature['5022'], '\n|\r|\t', '') as > String),cast(number_feature['5023'] as String),cast(number_feature['5024'] > as String),cast(int_feature['5025'] as String),cast(int_feature['5026'] as > String),cast(int_feature['5027'] as String),cast(int_feature['5028'] as > String),cast(int_feature['5029'] as String),cast(int_feature['5030'] as > String),cast(int_feature['5031'] as String),cast(number_feature['5032'] as > String),cast(number_feature['5033'] as String),cast(dump_flag as > String),cast(label as String)) as result_result from UnnamedTable$23 > > > > May be the mismake means My sql too long?Is this really a mistake? > > > >