Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-14964

Calcite engine. Huge list for IN clause canot be compiled

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • sql
    • None
    • Docs Required, Release Notes Required

    Description

      The query SELECT * FROM strings WHERE s IN (<over 2k values>) fails with error:

      Code of method "execute(Lorg/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext;Ljava/lang/Object;Ljava/lang/Object;)V" of class "SC" grows beyond 64 KB
      

      Exception:

      class org.apache.ignite.IgniteException: Compiling "SC": Code of method "execute(Lorg/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext;Ljava/lang/Object;Ljava/lang/Object;)V" of class "SC" grows beyond 64 KB
      	at org.apache.ignite.internal.processors.query.calcite.util.Commons.compile(Commons.java:299)
      	at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compile(ExpressionFactoryImpl.java:315)
      	at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.lambda$scalar$4(ExpressionFactoryImpl.java:263)
      	at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330)
      	at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.scalar(ExpressionFactoryImpl.java:263)
      	at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactory.scalar(ExpressionFactory.java:114)
      	at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.predicate(ExpressionFactoryImpl.java:215)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:294)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:109)
      	at org.apache.ignite.internal.processors.query.calcite.rel.IgniteIndexScan.accept(IgniteIndexScan.java:134)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:657)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:667)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:369)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:109)
      	at org.apache.ignite.internal.processors.query.calcite.rel.IgniteSort.accept(IgniteSort.java:81)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:657)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:667)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:161)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:109)
      	at org.apache.ignite.internal.processors.query.calcite.rel.IgniteSender.accept(IgniteSender.java:97)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:657)
      	at org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.go(LogicalRelImplementor.java:672)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeFragment(ExecutionServiceImpl.java:781)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:848)
      	at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$init$2(ExecutionServiceImpl.java:451)
      	at org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:280)
      	at org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:256)
      	at org.apache.ignite.internal.processors.query.calcite.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:68)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      Caused by: org.codehaus.janino.InternalCompilerException: Compiling "SC": Code of method "execute(Lorg/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext;Ljava/lang/Object;Ljava/lang/Object;)V" of class "SC" 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.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:313)
      	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:235)
      	at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:207)
      	at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:50)
      	at org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:347)
      	at org.apache.ignite.internal.processors.query.calcite.util.Commons.compile(Commons.java:297)
      	... 30 more
      Caused by: org.codehaus.janino.InternalCompilerException: Code of method "execute(Lorg/apache/ignite/internal/processors/query/calcite/exec/ExecutionContext;Ljava/lang/Object;Ljava/lang/Object;)V" of class "SC" grows beyond 64 KB
      	at org.codehaus.janino.CodeContext.makeSpace(CodeContext.java:1048)
      	at org.codehaus.janino.CodeContext.write(CodeContext.java:925)
      	at org.codehaus.janino.UnitCompiler.writeOpcode(UnitCompiler.java:12291)
      	at org.codehaus.janino.UnitCompiler.load(UnitCompiler.java:11939)
      	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.compileBoolean2(UnitCompiler.java:4120)
      	at org.codehaus.janino.UnitCompiler.access$6600(UnitCompiler.java:215)
      	at org.codehaus.janino.UnitCompiler$14.visitBinaryOperation(UnitCompiler.java:3957)
      	at org.codehaus.janino.UnitCompiler$14.visitBinaryOperation(UnitCompiler.java:3935)
      	at org.codehaus.janino.Java$BinaryOperation.accept(Java.java:4864)
      	at org.codehaus.janino.UnitCompiler.compileBoolean(UnitCompiler.java:3935)
      	at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4448)
      	at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5004)
      	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.compile2(UnitCompiler.java:2580)
      	at org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:215)
      	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1503)
      	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1487)
      	at org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3522)
      	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)
      	... 38 more
      

      Tests:
      function/generic/test_large_in.test_ignore

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tledkov-gridgain Taras Ledkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: