Tanner Clary created CALCITE-6013:
-------------------------------------

             Summary: Unnecessary measures added as projects during rel 
construction
                 Key: CALCITE-6013
                 URL: https://issues.apache.org/jira/browse/CALCITE-6013
             Project: Calcite
          Issue Type: Bug
            Reporter: Tanner Clary


If you have a test like the following (modified from 
{{SqlToRelConverterTest#testMeasureRef}})


{code:java}
    final String sql = "select deptno as c\n"
        + "from empm\n"
        + "group by deptno";
    fixture()
        .withFactory(c ->
            c.withOperatorTable(t ->
                SqlValidatorTest.operatorTableFor(SqlLibrary.CALCITE)))
        .withCatalogReader(MockCatalogReaderExtended::create)
        .withSql(sql)
        .ok();
{code}

The expected results should look something like:

{code:java}
LogicalAggregate(group=[{0}])
  LogicalProject(C=[$7])
    LogicalTableScan(table=[[CATALOG, SALES, EMPM]])
{code}

Instead it looks like:

{code:java}
LogicalAggregate(group=[{0}])
  LogicalProject(C=[$7], COUNT_PLUS_100=[$9], COUNT_TIMES_100=[$10])
    LogicalTableScan(table=[[CATALOG, SALES, EMPM]])
{code}

I believe this is due to this commit here: 
https://github.com/apache/calcite/commit/568ce125e6d81fe0815f1317ccaf4d558688d945#diff-5d7c774cd39d94b119eedcf3d361e72406c7864e916736c533bbe8f893ca72bcR3397

In essence, the measures should not be added to the projects unless necessary.



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

Reply via email to