Hi, I am seeing that JaninoRelMetadataProvider is quite expensive, at least for the "boostrap" phase of the system.
It is a cool piece of software and it is working well, but in some cases probably it could be quite overkill, for instance in test cases of applications that mostly run only one query and then end. You could argue that the price of the compilation is paid only once and there is no need to complicate things for some corner cases that probably do not affect production cases. In CALCITE-3901 we introduced calcite.enable.regenerate.metadata.handler system property in order to limit the number of times that Janino kicks in but not to drop it at all. >From the code I see that it is a subclass of RelMetadataProvider, but there is no way to get rid of it in VolcanoPlanner. Also, Janino is a third party library, and having the ability of dropping it will help in having a smaller set of dependencies downstream (but this is not blocker at the moment, it is only a nice-to-have) Do you have any experience with this problem ? Is there any chance to add some configuration option to pass a RelMetadataProvider implementation that does not rely on dynamic code generation ? If the idea is valuable I will be happy to work on it. See this issue for reference, with a full stacktrace of the execution https://github.com/diennea/herddb/issues/517 Regards Enrico