Mihai Budiu created CALCITE-6978:
------------------------------------

             Summary: Translation to relational algebra of correlated query 
with COALESCE causes an assertion failure
                 Key: CALCITE-6978
                 URL: https://issues.apache.org/jira/browse/CALCITE-6978
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.39.0
            Reporter: Mihai Budiu


The following program fails during conversion to Rel:

{code:sql}
CREATE TABLE T(x DECIMAL(6, 2), z INT);
CREATE TABLE S(y INT);
CREATE VIEW V AS SELECT
  y,
  coalesce((select sum(X) from T
                  where y = T.z limit 1), 0) as w
FROM S;
{code}

The error is:

{code}
Conversion to relational algebra failed to preserve datatypes:
validated type:
RecordType(INTEGER y, DECIMAL(28, 2) NOT NULL w) NOT NULL
converted type:
RecordType(INTEGER y, DECIMAL(28, 2) w) NOT NULL
rel:
LogicalProject(y=[$0], w=[CASE(IS NOT NULL($1), $2, 0.00:DECIMAL(28, 2))])
  LogicalCorrelate(correlation=[$cor1], joinType=[left], requiredColumns=[{0}])
    LogicalCorrelate(correlation=[$cor0], joinType=[left], 
requiredColumns=[{0}])
      LogicalTableScan(table=[[schema, s]])
      LogicalSort(fetch=[1])
        LogicalAggregate(group=[{}], EXPR$0=[SUM($0)])
          LogicalProject(x=[$0])
            LogicalFilter(condition=[=($cor0.y, $1)])
              LogicalTableScan(table=[[schema, t]])
    LogicalSort(fetch=[1])
      LogicalAggregate(group=[{}], EXPR$0=[SUM($0)])
        LogicalProject(x=[$0])
          LogicalFilter(condition=[=($cor1.y, $1)])
            LogicalTableScan(table=[[schema, t]])
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to