I have reproduced it in Janino only and created the issue:
https://github.com/janino-compiler/janino/issues/47

Kind regards,
Volodymyr Vysotskyi

2018-04-14 20:15 GMT+03:00 Vova Vysotskyi <[email protected]>:

> Ok, I will try to prepare a test case and will log a bug on Janino soon.
>
> Kind regards,
> Volodymyr Vysotskyi
>
> 2018-04-14 20:02 GMT+03:00 Julian Hyde <[email protected]>:
>
>> Vova,
>>
>> Thanks for doing the research. Your explanation sounds very plausible
>> (I suspected default methods, too). Can you please log a bug on
>> JANINO? https://github.com/janino-compiler/janino/issues Arno, the
>> project maintainer, has been very good to us over the years.
>>
>> Julian
>>
>>
>> On Sat, Apr 14, 2018 at 9:28 AM, Enrico Olivelli <[email protected]>
>> wrote:
>> > Il sab 14 apr 2018, 18:20 Enrico Olivelli <[email protected]> ha
>> scritto:
>> >
>> >>
>> >>
>> >> Il sab 14 apr 2018, 17:39 Vova Vysotskyi <[email protected]> ha
>> scritto:
>> >>
>> >>> Hi all,
>> >>>
>> >>> I think the reason for this issue is that at the compile stage was
>> assumed
>> >>> that *getSubSchema()* method returns *Schema *inheritor, but not
>> >>> *SchemaPlus*.
>> >>> But the interesting thing is that with Java 8, methods list of
>> >>> *SchemaPlus *interface
>> >>> contains default *getSubSchema()* method.
>> >>> It may be observed by executing this code:
>> >>> *    Method[] declaredMethods =
>> >>>
>> >>> Class.forName("org.apache.calcite.schema.SchemaPlus").getDec
>> laredMethods();*
>> >>> *    for (Method m : declaredMethods) {*
>> >>> *      if (m.getName().equals("getSubSchema")) {*
>> >>> *        System.out.println(m);*
>> >>> *      }*
>> >>> *    }*
>> >>>
>> >>> Its output:
>> >>>
>> >>> *public default org.apache.calcite.schema.Schema
>> >>> org.apache.calcite.schema.SchemaPlus.getSubSchema(java.lang.String)*
>> >>> *public abstract org.apache.calcite.schema.SchemaPlus
>> >>> org.apache.calcite.schema.SchemaPlus.getSubSchema(java.lang.String)*
>> >>>
>> >>> The output of the same code for Java 7:
>> >>>
>> >>> *public abstract org.apache.calcite.schema.SchemaPlus
>> >>> org.apache.calcite.schema.SchemaPlus.getSubSchema(java.lang.String)*
>> >>>
>> >>> Kind regards,
>> >>> Volodymyr Vysotskyi
>> >>>
>> >>
>> >> Good catch!
>> >> It would be useful to look into that 'default' method by disassembling
>> >> .class file.
>> >> Enrico
>> >>
>> >
>> > Anyway a fix would be to add an unwrap method to Schema
>> > Cheers
>> > Enrico
>> >
>> >
>> >>
>> >>
>> >>> 2018-04-10 18:43 GMT+03:00 Julian Hyde <[email protected]>:
>> >>>
>> >>> > I’d really appreciate that.
>> >>> >
>> >>> > Can you please log a JIRA case, and record your
>> observations/progress
>> >>> > there.
>> >>> >
>> >>> > There’s no particular hurry on this one.
>> >>> >
>> >>> > Julian
>> >>> >
>> >>> > > On Apr 10, 2018, at 06:32, Enrico Olivelli <[email protected]>
>> >>> wrote:
>> >>> > >
>> >>> > > 2018-04-10 13:48 GMT+02:00 Julian Hyde <[email protected]>:
>> >>> > >
>> >>> > >> Yes, that’s it.
>> >>> > >>
>> >>> > >> Next step would be to check whether the generated code is the
>> same as
>> >>> > >> previously, and if so, it is a Janino bug. Then try to create a
>> >>> minimal
>> >>> > >> test case for Janino. Maybe we can work around by adding an
>> explicit
>> >>> > cast
>> >>> > >> somewhere.
>> >>> > >>
>> >>> > >> Thanks for reproducing this, and trying the Janino upgrade.
>> >>> > >>
>> >>> > >
>> >>> > >
>> >>> > > Julian,
>> >>> > > If you have no hurry for this I will be happy to spend some time
>> in
>> >>> order
>> >>> > > to figure out the root cause.
>> >>> > >
>> >>> > > I will follow the discussion and jump in when I have some idea.
>> >>> > >
>> >>> > > It will be great to have Calcite really built on jdk8 and leverage
>> >>> > lambdas
>> >>> > >
>> >>> > >
>> >>> > > Cheers
>> >>> > > Enrico
>> >>> > >
>> >>> > >
>> >>> > >
>> >>> > >>
>> >>> > >> Julian
>> >>> > >>
>> >>> > >>> On Apr 10, 2018, at 3:37 AM, Enrico Olivelli <
>> [email protected]>
>> >>> > >> wrote:
>> >>> > >>>
>> >>> > >>> This is "the" error (see below). Unfortunately just be upgrading
>> >>> Janino
>> >>> > >> to
>> >>> > >>> 3.0.8 the problem still is present.
>> >>> > >>>
>> >>> > >>> the only 'unwrap'  word in the generated code is here
>> >>> > >>> ...
>> >>> > >>> public org.apache.calcite.linq4j.Enumerable bind(final
>> >>> > >>> org.apache.calcite.DataContext root0) {
>> >>> > >>> root = root0;
>> >>> > >>> final org.apache.calcite.linq4j.Enumerable _inputEnumerable =
>> >>> > >>> org.apache.calcite.linq4j.Linq4j.asEnumerable(((org.
>> >>> > apache.calcite.test.
>> >>> > >> ReflectiveSchemaTest.CatchallSchema)
>> >>> > >>> ((org.apache.calcite.adapter.java.ReflectiveSchema)
>> >>> > >>> root.getRootSchema().getSubSchema("s").unwrap(org.
>> >>> > >> apache.calcite.adapter.java.ReflectiveSchema.class)).
>> >>> > >> getTarget()).nullables);
>> >>> > >>> ....
>> >>> > >>>
>> >>> > >>> Does any ring bell ?
>> >>> > >>>
>> >>> > >>> Enrico
>> >>> > >>>
>> >>> > >>>
>> >>> > >>> Caused by: org.codehaus.commons.compiler.CompileException:
>> Line 5,
>> >>> > >> Column
>> >>> > >>> 272: A method named "unwrap" is not declared in any enclosing
>> class
>> >>> nor
>> >>> > >> any
>> >>> > >>> supertype, nor through a static import
>> >>> > >>>>   at
>> >>> > >>>
>> >>> org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.
>> java:11821)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.
>> java:8731)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4737)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$8300(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(
>> >>> > >> UnitCompiler.java:4097)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> org.codehaus.janino.Java$MethodInvocation.accept(Java.java:4902)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGetValue(
>> >>> > UnitCompiler.java:5253)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4696)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$7800(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>>
>> >>> org.codehaus.janino.UnitCompiler$12.visitCast(UnitCompiler.java:4092)
>> >>> > >>>>   at
>> >>> > >>>
>> >>> org.codehaus.janino.UnitCompiler$12.visitCast(UnitCompiler.java:4070)
>> >>> > >>>>   at org.codehaus.janino.Java$Cast.accept(Java.java:4727)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4732)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$7300(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12$1.visitParenthesizedExpr
>> ession(
>> >>> > >> UnitCompiler.java:4083)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12$1.visitParenthesizedExpr
>> ession(
>> >>> > >> UnitCompiler.java:4074)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.Java$ParenthesizedExpression.
>> >>> > accept(Java.java:4753)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitLvalue(
>> >>> > UnitCompiler.java:4074)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitLvalue(
>> >>> > UnitCompiler.java:4070)
>> >>> > >>>>   at org.codehaus.janino.Java$Lvalue.accept(Java.java:3977)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGetValue(
>> >>> > UnitCompiler.java:5253)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4792)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$8300(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(
>> >>> > >> UnitCompiler.java:4097)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> org.codehaus.janino.Java$MethodInvocation.accept(Java.java:4902)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGetValue(
>> >>> > UnitCompiler.java:5253)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4696)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$7800(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>>
>> >>> org.codehaus.janino.UnitCompiler$12.visitCast(UnitCompiler.java:4092)
>> >>> > >>>>   at
>> >>> > >>>
>> >>> org.codehaus.janino.UnitCompiler$12.visitCast(UnitCompiler.java:4070)
>> >>> > >>>>   at org.codehaus.janino.Java$Cast.accept(Java.java:4727)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4732)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$7300(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12$1.visitParenthesizedExpr
>> ession(
>> >>> > >> UnitCompiler.java:4083)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12$1.visitParenthesizedExpr
>> ession(
>> >>> > >> UnitCompiler.java:4074)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.Java$ParenthesizedExpression.
>> >>> > accept(Java.java:4753)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitLvalue(
>> >>> > UnitCompiler.java:4074)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitLvalue(
>> >>> > UnitCompiler.java:4070)
>> >>> > >>>>   at org.codehaus.janino.Java$Lvalue.accept(Java.java:3977)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGetValue(
>> >>> > UnitCompiler.java:5253)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileContext2(
>> >>> > UnitCompiler.java:4010)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$6100(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11$1.visitFieldAccess(
>> UnitCompiler.
>> >>> > >> java:3947)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11$1.visitFieldAccess(
>> UnitCompiler.
>> >>> > >> java:3942)
>> >>> > >>>>   at org.codehaus.janino.Java$Field
>> Access.accept(Java.java:4139)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11.visitLvalue(
>> >>> > UnitCompiler.java:3942)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11.visitLvalue(
>> >>> > UnitCompiler.java:3938)
>> >>> > >>>>   at org.codehaus.janino.Java$Lvalue.accept(Java.java:3977)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileContext(
>> >>> > UnitCompiler.java:3938)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileContext2(
>> >>> > UnitCompiler.java:4047)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$6200(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11$1.visitFieldAccessExpres
>> sion(
>> >>> > >> UnitCompiler.java:3948)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11$1.visitFieldAccessExpres
>> sion(
>> >>> > >> UnitCompiler.java:3942)
>> >>> > >>>>   at
>> >>> > >>>
>> >>> org.codehaus.janino.Java$FieldAccessExpression.accept(Java.java:4468)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11.visitLvalue(
>> >>> > UnitCompiler.java:3942)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$11.visitLvalue(
>> >>> > UnitCompiler.java:3938)
>> >>> > >>>>   at org.codehaus.janino.Java$Lvalue.accept(Java.java:3977)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileContext(
>> >>> > UnitCompiler.java:3938)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGetValue(
>> >>> > UnitCompiler.java:5252)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.
>> java:4842)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$8300(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(
>> >>> > >> UnitCompiler.java:4097)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$12.visitMethodInvocation(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> org.codehaus.janino.Java$MethodInvocation.accept(Java.java:4902)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compileGet(
>> >>> > >> UnitCompiler.java:4070)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler.compileGetValue(
>> >>> > UnitCompiler.java:5253)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.compile2(
>> >>> > UnitCompiler.java:2559)
>> >>> > >>>>   at org.codehaus.janino.UnitCompiler.access$2700(
>> >>> > >> UnitCompiler.java:212)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclara
>> tionS
>> >>> > >> tatement(UnitCompiler.java:1482)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclara
>> tionS
>> >>> > >> tatement(UnitCompiler.java:1466)
>> >>> > >>>>   at
>> >>> > >>> org.codehaus.janino.Java$LocalVariableDeclarationStatem
>> >>> > >> ent.accept(Java.java:3351)
>> >>> > >>>>   at
>> >>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1466)
>> >>> > >>>>   at org.cod (stack truncated)
>> >>> > >>>
>> >>> > >>>
>> >>> > >>> 2018-04-09 23:10 GMT+02:00 Cade Markegard <
>> [email protected]
>> >>> >:
>> >>> > >>>
>> >>> > >>>> Awesome!
>> >>> > >>>>
>> >>> > >>>> On Mon, Apr 9, 2018 at 1:29 PM Enrico Olivelli <
>> >>> [email protected]>
>> >>> > >>>> wrote:
>> >>> > >>>>
>> >>> > >>>>> Il lun 9 apr 2018, 22:20 Cade Markegard <
>> [email protected]>
>> >>> ha
>> >>> > >>>>> scritto:
>> >>> > >>>>>
>> >>> > >>>>>> Not sure if this is related, but it seems like Janino doesn't
>> >>> > support
>> >>> > >>>>> Java8
>> >>> > >>>>>> lambdas under "Limitations" in http://janino-compiler.github
>> .
>> >>> > >>>> io/janino/
>> >>> > >>>>>
>> >>> > >>>>>
>> >>> > >>>>>
>> >>> > >>>>> This should not be a problem, we are not generating java
>> sources
>> >>> with
>> >>> > >>>>> lambdas (maybe in future?).
>> >>> > >>>>> I will be happy to do some trials with new Janino, but I guess
>> >>> that
>> >>> > >> would
>> >>> > >>>>> be the only way (or to drop Janino, but I think it will be
>> >>> harder). I
>> >>> > >>>> have
>> >>> > >>>>> not much time these days.
>> >>> > >>>>>
>> >>> > >>>>> Anyhow I am testing my apps on jdk10 and Calcite is working
>> like a
>> >>> > >> charm
>> >>> > >>>> !
>> >>> > >>>>>
>> >>> > >>>>> Enrico
>> >>> > >>>>>
>> >>> > >>>>>>
>> >>> > >>>>>>
>> >>> > >>>>>>> On Mon, Apr 9, 2018 at 12:54 PM Julian Hyde <
>> [email protected]>
>> >>> > >> wrote:
>> >>> > >>>>>>>
>> >>> > >>>>>>> I didn’t try. We’re on janino 2.7.6. The 2.x line only goes
>> up
>> >>> to
>> >>> > >>>>> 2.7.8.
>> >>> > >>>>>>> I’m not eager to try upgrading to 3.x (latest release is
>> 3.0.8)
>> >>> > >>>>>> especially
>> >>> > >>>>>>> as they don’t explicitly mention fixing a JDK 8 issue.
>> >>> > >>>>>>>
>> >>> > >>>>>>> http://janino-compiler.github.io/janino/changelog.html <
>> >>> > >>>>>>> http://janino-compiler.github.io/janino/changelog.html>
>> >>> > >>>>>>>
>> >>> > >>>>>>>
>> >>> > >>>>>>>> On Apr 9, 2018, at 12:42 PM, Enrico Olivelli <
>> >>> [email protected]
>> >>> > >
>> >>> > >>>>>>> wrote:
>> >>> > >>>>>>>>
>> >>> > >>>>>>>> Il lun 9 apr 2018, 21:37 Julian Hyde <[email protected]
>> >>> <mailto:
>> >>> > >>>>>>> [email protected]>> ha scritto:
>> >>> > >>>>>>>>
>> >>> > >>>>>>>>> Don’t have the error stack, but janino could not compile
>> >>> > generated
>> >>> > >>>>>> code
>> >>> > >>>>>>>>> because it said an “unwrap” method did not exist.
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>> There were no lambdas. I think perhaps that version of
>> janino
>> >>> > >>>> could
>> >>> > >>>>>> not
>> >>> > >>>>>>>>> fully understand the Calcite class files.
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>> To reproduce, change 2 lines in core/pom.xml and run “mvn
>> >>> test”.
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>
>> >>> > >>>>>>>> Did you try to update to latest Janino?
>> >>> > >>>>>>>> It seems to that we have an old version (2.7.6)
>> >>> > >>>>>>>>
>> >>> > >>>>>>>> Enrico
>> >>> > >>>>>>>>
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>> Julian
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>>> On Apr 9, 2018, at 12:15 PM, Enrico Olivelli <
>> >>> > >>>> [email protected]>
>> >>> > >>>>>>>>> wrote:
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>> Il lun 9 apr 2018, 19:05 Julian Hyde <[email protected]>
>> ha
>> >>> > >>>>> scritto:
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>>> Has anyone had any luck using JDK 8 syntax (e.g. “->”
>> for
>> >>> > >>>> lambdas)
>> >>> > >>>>>> in
>> >>> > >>>>>>>>>>> Calcite?
>> >>> > >>>>>>>>>>>
>> >>> > >>>>>>>>>>> In core/pom.xml I changed source=1.7 target=1.7 to
>> source=8
>> >>> > >>>>> target=8
>> >>> > >>>>>>> and
>> >>> > >>>>>>>>>>> it allowed the syntax but it seemed to break any tests
>> that
>> >>> > >>>> relied
>> >>> > >>>>>> on
>> >>> > >>>>>>>>>>> janino.
>> >>> > >>>>>>>>>>>
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>> Julian,
>> >>> > >>>>>>>>>> Could you please share a stacktrace of your error?
>> >>> > >>>>>>>>>> As far as I know using lambdas is not only a matter of
>> >>> syntactic
>> >>> > >>>>>> sugar
>> >>> > >>>>>>>>> but
>> >>> > >>>>>>>>>> they are more efficient than simple anonymous classes.
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>> Cheers
>> >>> > >>>>>>>>>> Enrico
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>>> Related: https://issues.apache.org/jira
>> /browse/CALCITE-2027
>> >>> <
>> >>> > >>>>>>>>>>> https://issues.apache.org/jira/browse/CALCITE-2027>
>> >>> > >>>>>>>>>>>
>> >>> > >>>>>>>>>>> Julian
>> >>> > >>>>>>>>>>>
>> >>> > >>>>>>>>>>> --
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>>
>> >>> > >>>>>>>>>> -- Enrico Olivelli
>> >>> > >>>>>>>>>
>> >>> > >>>>>>>>> --
>> >>> > >>>>>>>>
>> >>> > >>>>>>>>
>> >>> > >>>>>>>> -- Enrico Olivelli
>> >>> > >>>>>>>
>> >>> > >>>>>>>
>> >>> > >>>>>>
>> >>> > >>>>> --
>> >>> > >>>>>
>> >>> > >>>>>
>> >>> > >>>>> -- Enrico Olivelli
>> >>> > >>>>>
>> >>> > >>>>
>> >>> > >>
>> >>> >
>> >>>
>> >> --
>> >>
>> >>
>> >> -- Enrico Olivelli
>> >>
>> > --
>> >
>> >
>> > -- Enrico Olivelli
>>
>
>

Reply via email to