Hi all,
I’ve been trying to build a native executable with GraalVM and got stuck with
this exception when running the executable:
java.lang.RuntimeException: java.lang.ClassNotFoundException:
org.apache.calcite.rel.metadata.janino.GeneratedMetadata_CollationHandler
at
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:180)
at
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.generateCompileAndInstantiate(JaninoRelMetadataProvider.java:138)
at
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.lambda$static$0(JaninoRelMetadataProvider.java:72)
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:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4958)
at
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:189)
I found a ticket that probably relates to the issue
https://issues.apache.org/jira/browse/CALCITE-4539
<https://issues.apache.org/jira/browse/CALCITE-4539>
I also found that substrait.io <http://substrait.io/> (substrait-java) already
compiles Calcite dependency to a native executable. Right now, I’m confused, is
it possible to compile Calcite to a working native executable or not? It would
be great if somebody could give some insight on how to do that. I tried to
apply the substrait-java configs and used the GraalVM trace agent generated
configs too but I still get the above exception nonetheless.
Thanks