Julian Hyde created CALCITE-6564:
------------------------------------

             Summary: Support queries with measures on top of a VALUES relation
                 Key: CALCITE-6564
                 URL: https://issues.apache.org/jira/browse/CALCITE-6564
             Project: Calcite
          Issue Type: Improvement
            Reporter: Julian Hyde


A query with measures, where the underlying data set is a VALUES relational 
literal rather than a table, cannot be planned. Same test case as CALCITE-6559:
{noformat}
!set outputformat mysql
!use scott

WITH tbl_with_null_dim AS (
    SELECT e.deptno, e.grade, AVG(e.grade) AS MEASURE avg_grade
    FROM (VALUES (1, 70),
             (1, 50),
             (NULL, 50),
             ( 3, 82)) AS e (deptno, grade))
SELECT deptno, avg_grade FROM tbl_with_null_dim
GROUP BY deptno;
+--------+-----------+
| DEPTNO | AVG_GRADE |
+--------+-----------+
|      1 |        60 |
|      3 |        82 |
|        |        50 |
+--------+-----------+
(3 rows)

!ok
{noformat}
but different error message now that case has been fixed:
{noformat}
java.sql.SQLException: Error while executing SQL "WITH tbl_with_null_dim ...": 
There are not enough rules to produce a node with desired properties: 
convention=ENUMERABLE, sort=[].
Missing conversion is LogicalAggregate[convention: NONE -> ENUMERABLE]
There is 1 empty subset: rel#2488:RelSubset#2.ENUMERABLE.[], the relevant part 
of the original plan is as follows
2456:LogicalAggregate(group=[{0}], agg#0=[AGG_M2M($1)])
  2454:LogicalProject(subset=[rel#2455:RelSubset#1.NONE.[]], DEPTNO=[$0], 
AVG_GRADE=[V2M(CAST(/(SUM($1), COUNT($1))):INTEGER NOT NULL)])
    2348:LogicalValues(subset=[rel#2453:RelSubset#0.NONE.[]], tuples=[[{ 1, 70 
}, { 1, 50 }, { null, 50 }, { 3, 82 }]])
{noformat}



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

Reply via email to