Hi, guys.

The implicit type coercion is almost supported by every production 
RDBMS(MYSQL[1], ORACLE[2], SQLSERVER[3]), also some Hadoop data warehouse 
facilitates like HIVE.

As a query optimization engine of many comutation engines(like Apache Flink) 
and some OLAP engines(like Apache Drill), Calcite would supply better 
compatibility for sql query for the underlying engines it adapter with with 
implicit type coercion. There are already some jira issues that are relative 
with this topic more or less:

1. CALCITE-2992: Enhance implicit conversions when generating hash join keys 
for an equiCondition
2. CALCITE-3002: Case statement fails with: SqlValidatorException: Cannot apply 
'=' to arguments of type '<INTEGER> = <BOOLEAN>'
3. CALCITE-1531: SqlValidatorException when boolean operators are used with NULL
4. CALCITE-3081: https://issues.apache.org/jira/browse/CALCITE-3081
5. CALCITE-2829: Use consistent types when processing ranges

I have fired a issue CALCITE-2302 [4] about 1 year ago, with a design 
doc(sowehow rough).

Maybe we should fire a new discussion here, and hope for your suggesions :)

[1] https://dev.mysql.com/doc/refman/5.5/en/type-conversion.html
[2] https://docs.oracle.com/cd/B12037_01/server.101/b10759/sql_elements002.htm
[3] 
https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-type-conversion-database-engine?view=sql-server-2017
[4] https://issues.apache.org/jira/browse/CALCITE-2302
[5] 
https://docs.google.com/document/d/1g2RUnLXyp_LjUlO-wbblKuP5hqEu3a_2Mt2k4dh6RwU/edit#heading=h.77f83nidn37j

Best,
Danny Chan

Reply via email to