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

Java 11 - Druid Query to Rel node error

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Blocker
    • Resolution: Unresolved
    • None
    • None
    • druid-adapter
    • None

    Description

      I am using calcite to convert druid query to SQL. Here is the open-source code for the web service that I use:

      https://github.com/yahoo/fili/blob/master/fili-sql/src/main/java/com/yahoo/bard/webservice/sql/DruidQueryToSqlConverter.java#L423-L452

      When I upgrade to using Java 11 for this code, it is able to compile but gives me a runtime error. 

      17:42:56.740 ERROR [ForkJoinPool.commonPool-worker-3] c.y.b.w.w.r.MappingResponseProcessor - Failed to send the query com.yahoo.bard.webservice.druid.model.query.TopNQuery@3a615251 to Druid.
      java.lang.IllegalStateException: Unable to instantiate java compiler
      	at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:433)
      	at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:374)
      	at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.lambda$static$0(JaninoRelMetadataProvider.java:109)
      	at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:165)
      	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
      	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
      	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156)
      	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046)
      	at com.google.common.cache.LocalCache.get(LocalCache.java:3948)
      	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3972)
      	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957)
      	at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:474)
      	at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:487)
      	at org.apache.calcite.rel.metadata.RelMetadataQueryBase.revise(RelMetadataQueryBase.java:95)
      	at org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:541)
      	at org.apache.calcite.rel.metadata.RelMdCollation.filter(RelMdCollation.java:247)
      	at org.apache.calcite.rel.logical.LogicalFilter.lambda$create$0(LogicalFilter.java:111)
      	at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:242)
      	at org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:110)
      	at org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:339)
      	at org.apache.calcite.tools.RelBuilder.filter(RelBuilder.java:1197)
      	at org.apache.calcite.tools.RelBuilder.filter(RelBuilder.java:1155)
      	at com.yahoo.bard.webservice.sql.DruidQueryToSqlConverter.convertDruidQueryToRelNode(DruidQueryToSqlConverter.java:425)
      	at com.yahoo.bard.webservice.sql.DruidQueryToSqlConverter.buildSqlQuery(DruidQueryToSqlConverter.java:213)
      
      

      Nothing in my code has changed apart from building the source code using Jdk11 instead of Jdk8. The web service is also capable of serving endpoints that do not use calcite and they all run fine. Any help here would be appreciated. 

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            rajatmittal18 Rajat Mittal
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: