Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-228

Error while compiling generated Java code when using UDF in expression

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      I've defined toString UDF in `JdbcTest` (as of 99014073d19bc535f215e64031159486d19471c2) as follows and it turns out the function cannot be used in expressions:
      ```java
      + "

      {\n" + " name: 'MY_STR',\n" + " className: '" + MyToStringFunction.class.getName() + "'\n" + " }

      ,\n"
      ...
      public static class MyToStringFunction {
      public static String eval(Object o)

      { if (o == null) return "<null>"; return "<" + o.toString() + ">"; }

      }
      ```

      Query 1:
      ```sql
      select "deptno" from "adhoc".EMPLOYEES where "adhoc".my_str("name") is not null
      ```

      Query 2:
      ```sql
      select upper("adhoc".my_str("name")) from "adhoc".EMPLOYEES
      ```
      In query 2 `eval` is invoked multiple times. I think it is better to store the result of `eval()` into local variable.

      Exception 1 (note the `if (net.hydromatic..MyToStringFunction.eval(((net.hydromatic..Employee) inputEnumerator.current()).name)) {` part):
      ```java
      java.lang.RuntimeException: exception while executing [select "deptno" from "adhoc".EMPLOYEES where "adhoc".my_str("name") is not null]
      at net.hydromatic.optiq.test.OptiqAssert$AssertQuery.runs(OptiqAssert.java:803)
      at net.hydromatic.optiq.test.JdbcTest.testUserDefinedFunction(JdbcTest.java:2786)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
      at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
      at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
      at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
      Caused by: java.lang.RuntimeException: With materializationsEnabled=false, limit=0
      at net.hydromatic.optiq.test.OptiqAssert.assertQuery(OptiqAssert.java:343)
      at net.hydromatic.optiq.test.OptiqAssert$AssertQuery.runs(OptiqAssert.java:799)
      ... 27 more
      Caused by: java.sql.SQLException: while executing SQL: select "deptno" from "adhoc".EMPLOYEES where "adhoc".my_str("name") is not null
      at net.hydromatic.avatica.Helper.createException(Helper.java:40)
      at net.hydromatic.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:80)
      at net.hydromatic.optiq.test.OptiqAssert.assertQuery(OptiqAssert.java:318)
      ... 28 more
      Caused by: java.lang.RuntimeException: Error while compiling generated Java code:
      net.hydromatic.optiq.DataContext root;

      public net.hydromatic.linq4j.Enumerable bind(final net.hydromatic.optiq.DataContext root0) {
      root = root0;
      final net.hydromatic.linq4j.Enumerable _inputEnumerable = net.hydromatic.optiq.Schemas.queryable(root, root.getRootSchema().getSubSchema("adhoc"), net.hydromatic.optiq.test.JdbcTest.Employee.class, "EMPLOYEES").asEnumerable();
      return new net.hydromatic.linq4j.AbstractEnumerable(){
      public net.hydromatic.linq4j.Enumerator enumerator() {
      return new net.hydromatic.linq4j.Enumerator(){
      public final net.hydromatic.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
      public void reset()

      { inputEnumerator.reset(); }

      public boolean moveNext() {
      while (inputEnumerator.moveNext()) {
      if (net.hydromatic.optiq.test.JdbcTest.MyToStringFunction.eval(((net.hydromatic.optiq.test.JdbcTest.Employee) inputEnumerator.current()).name)) { return true; }
      }
      return false;
      }

      public void close() { inputEnumerator.close(); }

      public Object current() { return ((net.hydromatic.optiq.test.JdbcTest.Employee) inputEnumerator.current()).deptno; }

      };
      }

      };
      }


      public java.lang.reflect.Type getElementType() {
      return int.class;
      }



      at net.hydromatic.avatica.Helper.wrap(Helper.java:36)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl$OptiqPreparingStmt.implement(OptiqPrepareImpl.java:712)
      at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:276)
      at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:178)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare2_(OptiqPrepareImpl.java:333)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare_(OptiqPrepareImpl.java:242)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepareSql(OptiqPrepareImpl.java:211)
      at net.hydromatic.optiq.jdbc.OptiqConnectionImpl.parseQuery(OptiqConnectionImpl.java:146)
      at net.hydromatic.optiq.jdbc.MetaImpl.prepare(MetaImpl.java:603)
      at net.hydromatic.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:77)
      ... 29 more
      Caused by: org.codehaus.commons.compiler.CompileException: Line 16, Column 80: Not a boolean expression
      at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:10064)
      at org.codehaus.janino.UnitCompiler.compileBoolean2(UnitCompiler.java:2870)
      at org.codehaus.janino.UnitCompiler.access$4800(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$8.visitMethodInvocation(UnitCompiler.java:2825)
      at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:3907)
      at org.codehaus.janino.UnitCompiler.compileBoolean(UnitCompiler.java:2852)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1754)
      at org.codehaus.janino.UnitCompiler.access$1200(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitIfStatement(UnitCompiler.java:942)
      at org.codehaus.janino.Java$IfStatement.accept(Java.java:2074)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:990)
      at org.codehaus.janino.UnitCompiler.access$1000(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitBlock(UnitCompiler.java:940)
      at org.codehaus.janino.Java$Block.accept(Java.java:1934)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1271)
      at org.codehaus.janino.UnitCompiler.access$1500(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitWhileStatement(UnitCompiler.java:945)
      at org.codehaus.janino.Java$WhileStatement.accept(Java.java:2173)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2294)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:827)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:502)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:659)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:619)
      at org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:340)
      at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:888)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:349)
      at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4227)
      at org.codehaus.janino.UnitCompiler.access$7300(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$10.visitNewAnonymousClassInstance(UnitCompiler.java:3280)
      at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:4064)
      at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3298)
      at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4378)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1912)
      at org.codehaus.janino.UnitCompiler.access$2100(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitReturnStatement(UnitCompiler.java:951)
      at org.codehaus.janino.Java$ReturnStatement.accept(Java.java:2477)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2294)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:827)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:502)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:659)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:619)
      at org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:340)
      at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:888)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:349)
      at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4227)
      at org.codehaus.janino.UnitCompiler.access$7300(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$10.visitNewAnonymousClassInstance(UnitCompiler.java:3280)
      at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:4064)
      at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3298)
      at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4378)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1912)
      at org.codehaus.janino.UnitCompiler.access$2100(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitReturnStatement(UnitCompiler.java:951)
      at org.codehaus.janino.Java$ReturnStatement.accept(Java.java:2477)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2294)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:827)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:502)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:388)
      at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:342)
      at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1119)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:349)
      at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:317)
      at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:346)
      at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:311)
      at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:230)
      at org.codehaus.janino.ClassBodyEvaluator.createFastClassBodyEvaluator(ClassBodyEvaluator.java:427)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl$OptiqPreparingStmt.getBindable(OptiqPrepareImpl.java:752)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl$OptiqPreparingStmt.implement(OptiqPrepareImpl.java:710)
      ... 37 more
      ```

      Exception 2:
      ```java
      java.lang.RuntimeException: exception while executing [select upper("adhoc".my_str("name")) from "adhoc".EMPLOYEES]
      at net.hydromatic.optiq.test.OptiqAssert$AssertQuery.runs(OptiqAssert.java:803)
      at net.hydromatic.optiq.test.JdbcTest.testUserDefinedFunction(JdbcTest.java:2786)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
      at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
      at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
      at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
      Caused by: java.lang.RuntimeException: With materializationsEnabled=false, limit=0
      at net.hydromatic.optiq.test.OptiqAssert.assertQuery(OptiqAssert.java:343)
      at net.hydromatic.optiq.test.OptiqAssert$AssertQuery.runs(OptiqAssert.java:799)
      ... 27 more
      Caused by: java.sql.SQLException: while executing SQL: select upper("adhoc".my_str("name")) from "adhoc".EMPLOYEES
      at net.hydromatic.avatica.Helper.createException(Helper.java:40)
      at net.hydromatic.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:80)
      at net.hydromatic.optiq.test.OptiqAssert.assertQuery(OptiqAssert.java:318)
      ... 28 more
      Caused by: java.lang.RuntimeException: Error while compiling generated Java code:
      net.hydromatic.optiq.DataContext root;

      public net.hydromatic.linq4j.Enumerable bind(final net.hydromatic.optiq.DataContext root0) {
      root = root0;
      final net.hydromatic.linq4j.Enumerable _inputEnumerable = net.hydromatic.optiq.Schemas.queryable(root, root.getRootSchema().getSubSchema("adhoc"), net.hydromatic.optiq.test.JdbcTest.Employee.class, "EMPLOYEES").asEnumerable();
      return new net.hydromatic.linq4j.AbstractEnumerable(){
      public net.hydromatic.linq4j.Enumerator enumerator() {
      return new net.hydromatic.linq4j.Enumerator(){
      public final net.hydromatic.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
      public void reset() { inputEnumerator.reset(); }

      public boolean moveNext()

      { return inputEnumerator.moveNext(); }

      public void close()

      { inputEnumerator.close(); }

      public Object current()

      { final net.hydromatic.optiq.test.JdbcTest.Employee current2 = (net.hydromatic.optiq.test.JdbcTest.Employee) inputEnumerator.current(); return net.hydromatic.optiq.test.JdbcTest.MyToStringFunction.eval(current2.name) ? (String) null : net.hydromatic.optiq.runtime.SqlFunctions.upper(net.hydromatic.optiq.test.JdbcTest.MyToStringFunction.eval(current2.name)); }

      };
      }

      };
      }

      public java.lang.reflect.Type getElementType() {
      return java.lang.String.class;
      }

      at net.hydromatic.avatica.Helper.wrap(Helper.java:36)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl$OptiqPreparingStmt.implement(OptiqPrepareImpl.java:712)
      at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:276)
      at net.hydromatic.optiq.prepare.Prepare.prepareSql(Prepare.java:178)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare2_(OptiqPrepareImpl.java:333)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepare_(OptiqPrepareImpl.java:242)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl.prepareSql(OptiqPrepareImpl.java:211)
      at net.hydromatic.optiq.jdbc.OptiqConnectionImpl.parseQuery(OptiqConnectionImpl.java:146)
      at net.hydromatic.optiq.jdbc.MetaImpl.prepare(MetaImpl.java:603)
      at net.hydromatic.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:77)
      ... 29 more
      Caused by: org.codehaus.commons.compiler.CompileException: Line 24, Column 81: Not a boolean expression
      at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:10064)
      at org.codehaus.janino.UnitCompiler.compileBoolean2(UnitCompiler.java:2870)
      at org.codehaus.janino.UnitCompiler.access$4800(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$8.visitMethodInvocation(UnitCompiler.java:2825)
      at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:3907)
      at org.codehaus.janino.UnitCompiler.compileBoolean(UnitCompiler.java:2852)
      at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3586)
      at org.codehaus.janino.UnitCompiler.access$6600(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$10.visitConditionalExpression(UnitCompiler.java:3268)
      at org.codehaus.janino.Java$ConditionalExpression.accept(Java.java:3374)
      at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3298)
      at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4378)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1912)
      at org.codehaus.janino.UnitCompiler.access$2100(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitReturnStatement(UnitCompiler.java:951)
      at org.codehaus.janino.Java$ReturnStatement.accept(Java.java:2477)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2294)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:827)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:502)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:659)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:619)
      at org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:340)
      at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:888)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:349)
      at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4227)
      at org.codehaus.janino.UnitCompiler.access$7300(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$10.visitNewAnonymousClassInstance(UnitCompiler.java:3280)
      at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:4064)
      at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3298)
      at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4378)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1912)
      at org.codehaus.janino.UnitCompiler.access$2100(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitReturnStatement(UnitCompiler.java:951)
      at org.codehaus.janino.Java$ReturnStatement.accept(Java.java:2477)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2294)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:827)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:502)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:659)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:619)
      at org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:340)
      at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:888)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:349)
      at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4227)
      at org.codehaus.janino.UnitCompiler.access$7300(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$10.visitNewAnonymousClassInstance(UnitCompiler.java:3280)
      at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:4064)
      at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3298)
      at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4378)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1912)
      at org.codehaus.janino.UnitCompiler.access$2100(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$4.visitReturnStatement(UnitCompiler.java:951)
      at org.codehaus.janino.Java$ReturnStatement.accept(Java.java:2477)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:963)
      at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1005)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2294)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:827)
      at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:798)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:502)
      at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:388)
      at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:181)
      at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:342)
      at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1119)
      at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:349)
      at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:317)
      at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:346)
      at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:311)
      at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:230)
      at org.codehaus.janino.ClassBodyEvaluator.createFastClassBodyEvaluator(ClassBodyEvaluator.java:427)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl$OptiqPreparingStmt.getBindable(OptiqPrepareImpl.java:752)
      at net.hydromatic.optiq.prepare.OptiqPrepareImpl$OptiqPreparingStmt.implement(OptiqPrepareImpl.java:710)
      ... 37 more
      ```

      ---------------- Imported from GitHub ----------------
      Url: https://github.com/julianhyde/optiq/issues/228
      Created by: vlsi
      Labels:
      Created at: Thu Apr 03 08:30:08 CEST 2014
      State: closed

      Attachments

        Activity

          People

            Unassigned Unassigned
            github-import GitHub Import
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: