commit | eef179680e482fac6a07c4bdfa88d6186b1b6a31 | [log] [tgz] |
---|---|---|
author | dssysolyatin <dm.sysolyatin@gmail.com> | Fri Sep 23 14:07:55 2022 +0300 |
committer | Benchao Li <libenchao@gmail.com> | Wed Sep 28 08:49:41 2022 +0800 |
tree | b378aa65732456cfe19be02dbe6e840cd0cf75e4 | |
parent | a505b25eacc473c6ec0ef8abd40c1ccae86297b6 [diff] |
[CALCITE-5297] Casting dynamic variable twice throws exception It was originally intended that dynamic parameters are nullable (see SqlValidatorImpl#inferUnknownTypes), but DeriveTypeVisitor made them non nullable. In the end row type has not been preserved after converting query from SqlNode to RelNode. SqlValidatorImpl#unknownType is now nullable. Although it's not only used for dynamic parameters, but unknownType should be nullable. This closes #2918
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.