commit | 9c0e3130e6692d1960a34a680dc13d11083ff1c8 | [log] [tgz] |
---|---|---|
author | Bruce Irschick <brucei@bitquilltech.com> | Wed Jun 30 13:36:10 2021 -0700 |
committer | Stamatis Zampetakis <zabetak@gmail.com> | Tue Oct 12 10:48:39 2021 +0200 |
tree | b9e1505f21c2b91f5728ada2edcc98f23c671e89 | |
parent | 460de048042a4062bebbc08f27199a14ba7503d2 [diff] |
[CALCITE-3745] CompileException in UnitCompiler when using multiple class loaders Janino is not able to determine the correct compiler for loading a given class thus it fails with CompileException. 1. Use the class loader of the calling class instead of the default. 2. Upgrade Janino to 3.1.6 version which contains the fix for https://github.com/janino-compiler/janino/pull/150 necessary for passing correctly the class loader to the underlying methods. 3. Add/Update CheckerFramework .astub files for setParentClassLoader method based on the changes in the Janino APIs. Methods have moved in the new version so it is necessary to reflect the changes in the stub files. 4. Enforce class loader is not null before calling CompilerFactoryFactory#getDefaultCompilerFactory method. The parameter does not have a nullability annotation so by default CheckerFramework considers it as not-null. Indeed, if null is given as parameter a NPE will be raised from within that method. Close apache/calcite#2449
Apache Calcite is a dynamic data management framework.
It contains many of the pieces that comprise a typical database management system but omits the storage primitives. It provides an industry standard SQL parser and validator, a customisable optimizer with pluggable rules and cost functions, logical and physical algebraic operators, various transformation algorithms from SQL to algebra (and the opposite), and many adapters for executing SQL queries over Cassandra, Druid, Elasticsearch, MongoDB, Kafka, and others, with minimal configuration.
For more details, see the home page.