commit | af5444ffdfd9e836b052ee58abec9430d55d4139 | [log] [tgz] |
---|---|---|
author | Julian Hyde <jhyde@apache.org> | Mon May 24 18:35:53 2021 -0700 |
committer | Julian Hyde <jhyde@apache.org> | Fri May 28 11:20:21 2021 -0700 |
tree | cb053e7f28d0b7c80da91dd289e705fb481206ff | |
parent | 6a9832c14e7c7c02a0176920b87d15dab474300a [diff] |
[CALCITE-4620] Join on CASE causes AssertionError in RelToSqlConverter The fix is to remove the logic that generates ON conditions and instead use the logic that is used for all other expressions. This logic is more widely used, and therefore already handles cases such as CASE. (Previous bugs such as [CALCITE-3207] LIKE, [CALCITE-4610] Sarg, and [CALCITE-1422] IS NULL have been caused by this unnecessary split.) We have retained the logic that reverses 't1.id = t0.id' to 't0.id = t1.id' if 't0' is from the left side of the join. We have reverted one test case, which was accidentally seeing 'mandatoryColumn IS NULL' simplified to 'FALSE', because the simplification was not the point of the test.
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.