Vamshi created CALCITE-2147:
-------------------------------

             Summary: GroupingSets involving rollup resulting into an incorrect 
plan
                 Key: CALCITE-2147
                 URL: https://issues.apache.org/jira/browse/CALCITE-2147
             Project: Calcite
          Issue Type: Bug
            Reporter: Vamshi
            Assignee: Julian Hyde


Problem description:

When rollup or cube expressions are specified as input to grouping_sets ,then 
instead of handling the rollup or cube expression in LogicalAggregate operator  
they are handled in LogicalProject operator which is incorrect.

 

Basically grouping_sets with rollup/cube expressions as input is not flattened 
into logical aggregate operator.

 

Problem Test case:

create table temp11(a integer, b integer);

select a,b,count(*) from temp11 group by grouping sets(rollup(a,b),a,b,());

Test Case output:

{
  "rels": [
    {
      "id": "0",
      "relOp": "LogicalTableScan",
      "table": [
        "CATALOG",
        "temp11"
      ],
      "inputs": []
    },
    {
      "id": "1",
      "relOp": "LogicalProject",
      "fields": [
        "$f0",
        "a",
        "b"
      ],
      "exprs": [
        {
          "op": "ROLLUP",          <<--- Incorrect expressioin in 
LogicalProject operator.
          "operands": [
            {
              "input": 0,
              "name": "$0"
            },
            {
              "input": 1,
              "name": "$1"
            }
          ]
        },
        {
          "input": 0,
          "name": "$0"
        },
        {
          "input": 1,
          "name": "$1"
        }
      ]
    },
    {
      "id": "2",
      "relOp": "LogicalAggregate",
      "group": [
        0,
        1,
        2
      ],
      "groups": [
        [
          0
        ],
        [
          1
        ],
        [
          2
        ],
        []
      ],
      "aggs": [
        {
          "agg": "COUNT",
          "type": {
            "type": "BIGINT",
            "nullable": false
          },
          "distinct": false,
          "operands": []
        }
      ]
    },
    {
      "id": "3",
      "relOp": "LogicalProject",
      "fields": [
        "a",
        "b",
        "EXPR$2"
      ],
      "exprs": [
        {
          "input": 1,
          "name": "$1"
        },
        {
          "input": 2,
          "name": "$2"
        },
        {
          "input": 3,
          "name": "$3"
        }
      ]
    }
  ]
}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to