You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Julian Feinauer <j....@pragmaticminds.de> on 2018/08/13 12:36:55 UTC

Problem with Calcite and SQuirrelSQL

Hi devs,

First, a short disclaimer, I am cross-posting this question on the calcite and on the SQuirrelSQL mailing list as I’m not really sure where the problem comes from.

I am using calcite with a custom Schema to read a specific file format as DB.
It works when running the queries embedded in Test Code.
When I link my jar into the sqlline script it also works flawlessly but when I link the code to SQuirrelSQL [1] it gives me the following stacktrace:


2018-08-13 13:06:15,471 [Thread-3] DEBUG net.sourceforge.squirrel_sql.fw.util.DefaultExceptionFormatter  - Error

 593 java.sql.SQLException: Error while executing SQL "SELECT * FROM metadata.TABLES": Unable to instantiate java compiler

 594         at org.apache.calcite.avatica.Helper.createException(Helper.java:56)

 595         at org.apache.calcite.avatica.Helper.createException(Helper.java:41)

 596         at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)

 597         at org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:209)

 598         at net.sourceforge.squirrel_sql.client.session.StatementWrapper.execute(StatementWrapper.java:165)

 599         at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processQuery(SQLExecuterTask.java:369)

 600         at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.run(SQLExecuterTask.java:212)

 601         at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)

 602         at java.lang.Thread.run(Thread.java:745)

 603 Caused by: java.lang.IllegalStateException: Unable to instantiate java compiler

 604         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:433)

 605         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:374)

 606         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94)

 607         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113)

 608         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110)

 609         at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542)

 610         at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323)

 611         at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286)

 612         at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)

 613         at com.google.common.cache.LocalCache.get(LocalCache.java:3953)

 614         at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957)

 615         at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875)

 616         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:464)

 617         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:477)

 618         at org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:203)

 619         at org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:565)

 620         at org.apache.calcite.rel.metadata.RelMdCollation.project(RelMdCollation.java:207)

 621         at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:117)

 622         at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:115)

 623         at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238)

 624         at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:113)

 625         at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:103)

 626         at org.apache.calcite.rel.core.RelFactories$ProjectFactoryImpl.createProject(RelFactories.java:127)

 627         at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:956)

 628         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2952)

 629         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2910)

 630         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2854)

 631         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3734)

 632         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:662)

 633         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:619)

 634         at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3028)

 635         at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:555)

 636         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:266)

 637         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:230)

 638         at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:786)

 639         at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:640)

 640         at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:610)

 641         at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:221)

 642         at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:603)

 643         at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:638)

 644         at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149)

 645         ... 6 more

 646 Caused by: java.lang.ClassNotFoundException: No implementation of org.codehaus.commons.compiler is on the class path. Typically, you'd have 'janino.jar', or 'commons-compiler-jdk.jar', or both on the classpath.

 647         at org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(CompilerFactoryFactory.java:59)

 648         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:431)

 649         ... 46 more

I also added janino-2.76.jar as well as commons-compiler-2.7.6.jar tot he classpath but the Exception does not go away.
Are there in general any resources on how to embed calcite-core in the classpath and do you have any idea where this exception could come from?

Thanks!
Julian

[1] http://squirrel-sql.sourceforge.net/

Re: Problem with Calcite and SQuirrelSQL

Posted by Julian Feinauer <j....@pragmaticminds.de>.
Hi Julian,



thanks for the fast reply.

I also found this thread but as I use Calcite 1.14 this should not be the issue (was fixed in 1.11).

I also checked the code to confirm that (and I do not use shading so this should be no problem at all).



So I agree with you that this should be somewhat related but I have no clue where (or how) exactly I could trace the problem.

So any help is appreciated!



Best

Julian



Am 13.08.18, 17:25 schrieb "Julian Hyde" <jh...@apache.org>:



    Looks similar to this:

    http://mail-archives.apache.org/mod_mbox/calcite-dev/201611.mbox/%3CCAGssvOYTS_tMGh=xASVqgC47DpBQQtYgc8r7BjNuvR+w=HhVaA@mail.gmail.com%3E

    On Mon, Aug 13, 2018 at 5:37 AM Julian Feinauer

    <j....@pragmaticminds.de> wrote:

    >

    > Hi devs,

    >

    > First, a short disclaimer, I am cross-posting this question on the calcite and on the SQuirrelSQL mailing list as I’m not really sure where the problem comes from.

    >

    > I am using calcite with a custom Schema to read a specific file format as DB.

    > It works when running the queries embedded in Test Code.

    > When I link my jar into the sqlline script it also works flawlessly but when I link the code to SQuirrelSQL [1] it gives me the following stacktrace:

    >

    >

    > 2018-08-13 13:06:15,471 [Thread-3] DEBUG net.sourceforge.squirrel_sql.fw.util.DefaultExceptionFormatter  - Error

    >

    >  593 java.sql.SQLException: Error while executing SQL "SELECT * FROM metadata.TABLES": Unable to instantiate java compiler

    >

    >  594         at org.apache.calcite.avatica.Helper.createException(Helper.java:56)

    >

    >  595         at org.apache.calcite.avatica.Helper.createException(Helper.java:41)

    >

    >  596         at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)

    >

    >  597         at org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:209)

    >

    >  598         at net.sourceforge.squirrel_sql.client.session.StatementWrapper.execute(StatementWrapper.java:165)

    >

    >  599         at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processQuery(SQLExecuterTask.java:369)

    >

    >  600         at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.run(SQLExecuterTask.java:212)

    >

    >  601         at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)

    >

    >  602         at java.lang.Thread.run(Thread.java:745)

    >

    >  603 Caused by: java.lang.IllegalStateException: Unable to instantiate java compiler

    >

    >  604         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:433)

    >

    >  605         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:374)

    >

    >  606         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94)

    >

    >  607         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113)

    >

    >  608         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110)

    >

    >  609         at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542)

    >

    >  610         at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323)

    >

    >  611         at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286)

    >

    >  612         at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)

    >

    >  613         at com.google.common.cache.LocalCache.get(LocalCache.java:3953)

    >

    >  614         at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957)

    >

    >  615         at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875)

    >

    >  616         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:464)

    >

    >  617         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:477)

    >

    >  618         at org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:203)

    >

    >  619         at org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:565)

    >

    >  620         at org.apache.calcite.rel.metadata.RelMdCollation.project(RelMdCollation.java:207)

    >

    >  621         at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:117)

    >

    >  622         at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:115)

    >

    >  623         at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238)

    >

    >  624         at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:113)

    >

    >  625         at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:103)

    >

    >  626         at org.apache.calcite.rel.core.RelFactories$ProjectFactoryImpl.createProject(RelFactories.java:127)

    >

    >  627         at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:956)

    >

    >  628         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2952)

    >

    >  629         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2910)

    >

    >  630         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2854)

    >

    >  631         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3734)

    >

    >  632         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:662)

    >

    >  633         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:619)

    >

    >  634         at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3028)

    >

    >  635         at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:555)

    >

    >  636         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:266)

    >

    >  637         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:230)

    >

    >  638         at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:786)

    >

    >  639         at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:640)

    >

    >  640         at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:610)

    >

    >  641         at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:221)

    >

    >  642         at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:603)

    >

    >  643         at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:638)

    >

    >  644         at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149)

    >

    >  645         ... 6 more

    >

    >  646 Caused by: java.lang.ClassNotFoundException: No implementation of org.codehaus.commons.compiler is on the class path. Typically, you'd have 'janino.jar', or 'commons-compiler-jdk.jar', or both on the classpath.

    >

    >  647         at org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(CompilerFactoryFactory.java:59)

    >

    >  648         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:431)

    >

    >  649         ... 46 more

    >

    > I also added janino-2.76.jar as well as commons-compiler-2.7.6.jar tot he classpath but the Exception does not go away.

    > Are there in general any resources on how to embed calcite-core in the classpath and do you have any idea where this exception could come from?

    >

    > Thanks!

    > Julian

    >

    > [1] http://squirrel-sql.sourceforge.net/

    



Re: Problem with Calcite and SQuirrelSQL

Posted by Julian Hyde <jh...@apache.org>.
Looks similar to this:
http://mail-archives.apache.org/mod_mbox/calcite-dev/201611.mbox/%3CCAGssvOYTS_tMGh=xASVqgC47DpBQQtYgc8r7BjNuvR+w=HhVaA@mail.gmail.com%3E
On Mon, Aug 13, 2018 at 5:37 AM Julian Feinauer
<j....@pragmaticminds.de> wrote:
>
> Hi devs,
>
> First, a short disclaimer, I am cross-posting this question on the calcite and on the SQuirrelSQL mailing list as I’m not really sure where the problem comes from.
>
> I am using calcite with a custom Schema to read a specific file format as DB.
> It works when running the queries embedded in Test Code.
> When I link my jar into the sqlline script it also works flawlessly but when I link the code to SQuirrelSQL [1] it gives me the following stacktrace:
>
>
> 2018-08-13 13:06:15,471 [Thread-3] DEBUG net.sourceforge.squirrel_sql.fw.util.DefaultExceptionFormatter  - Error
>
>  593 java.sql.SQLException: Error while executing SQL "SELECT * FROM metadata.TABLES": Unable to instantiate java compiler
>
>  594         at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>
>  595         at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>
>  596         at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
>
>  597         at org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:209)
>
>  598         at net.sourceforge.squirrel_sql.client.session.StatementWrapper.execute(StatementWrapper.java:165)
>
>  599         at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processQuery(SQLExecuterTask.java:369)
>
>  600         at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.run(SQLExecuterTask.java:212)
>
>  601         at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)
>
>  602         at java.lang.Thread.run(Thread.java:745)
>
>  603 Caused by: java.lang.IllegalStateException: Unable to instantiate java compiler
>
>  604         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:433)
>
>  605         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:374)
>
>  606         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94)
>
>  607         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113)
>
>  608         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110)
>
>  609         at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542)
>
>  610         at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323)
>
>  611         at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286)
>
>  612         at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
>
>  613         at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
>
>  614         at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957)
>
>  615         at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875)
>
>  616         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:464)
>
>  617         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:477)
>
>  618         at org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:203)
>
>  619         at org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:565)
>
>  620         at org.apache.calcite.rel.metadata.RelMdCollation.project(RelMdCollation.java:207)
>
>  621         at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:117)
>
>  622         at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:115)
>
>  623         at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238)
>
>  624         at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:113)
>
>  625         at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:103)
>
>  626         at org.apache.calcite.rel.core.RelFactories$ProjectFactoryImpl.createProject(RelFactories.java:127)
>
>  627         at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:956)
>
>  628         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2952)
>
>  629         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2910)
>
>  630         at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2854)
>
>  631         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3734)
>
>  632         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:662)
>
>  633         at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:619)
>
>  634         at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3028)
>
>  635         at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:555)
>
>  636         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:266)
>
>  637         at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:230)
>
>  638         at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:786)
>
>  639         at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:640)
>
>  640         at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:610)
>
>  641         at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:221)
>
>  642         at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:603)
>
>  643         at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:638)
>
>  644         at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149)
>
>  645         ... 6 more
>
>  646 Caused by: java.lang.ClassNotFoundException: No implementation of org.codehaus.commons.compiler is on the class path. Typically, you'd have 'janino.jar', or 'commons-compiler-jdk.jar', or both on the classpath.
>
>  647         at org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(CompilerFactoryFactory.java:59)
>
>  648         at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:431)
>
>  649         ... 46 more
>
> I also added janino-2.76.jar as well as commons-compiler-2.7.6.jar tot he classpath but the Exception does not go away.
> Are there in general any resources on how to embed calcite-core in the classpath and do you have any idea where this exception could come from?
>
> Thanks!
> Julian
>
> [1] http://squirrel-sql.sourceforge.net/