You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by "Jaehwa Jung (JIRA)" <ji...@apache.org> on 2014/02/24 06:11:19 UTC

[jira] [Resolved] (TAJO-541) Parsing Group by clause differently from Hive

     [ https://issues.apache.org/jira/browse/TAJO-541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jaehwa Jung resolved TAJO-541.
------------------------------

       Resolution: Cannot Reproduce
    Fix Version/s: 0.8-incubating

I can't reproduce this issue. I think that it was resolved by [TAJO-554|https://issues.apache.org/jira/browse/TAJO-554].

> Parsing Group by clause differently from Hive 
> ----------------------------------------------
>
>                 Key: TAJO-541
>                 URL: https://issues.apache.org/jira/browse/TAJO-541
>             Project: Tajo
>          Issue Type: Bug
>            Reporter: Keuntae Park
>            Assignee: Jaehwa Jung
>            Priority: Minor
>             Fix For: 0.8-incubating
>
>
> testGroupby1() of TestHiveConverter.java failed if I changed the group by_1.sql as follows.
> {noformat}
> select col0, col1, col2, col3, sum(col4) as total, avg(col5) from base group by col0, cube (col1, col2), col3 having total > 100
> {noformat}
> Following is error log (look at "groups").  
> {noformat}
> 2014-01-22 11:11:41,702 INFO  parser.TestHiveConverter (TestHiveConverter.java:compareJsonResult(63)) - ### Tajo Parse Result ### 
> {
>   "all": false,
>   "distinct": false,
>   "targets": [
>     {
>       "child": {
>         "name": "col0",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "name": "col1",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "name": "col2",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "name": "col3",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "alias": "total",
>       "child": {
>         "distinct": false,
>         "signature": "sum",
>         "params": [
>           {
>             "name": "col4",
>             "opType": "Column"
>           }
>         ],
>         "opType": "GeneralSetFunction"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "distinct": false,
>         "signature": "avg",
>         "params": [
>           {
>             "name": "col5",
>             "opType": "Column"
>           }
>         ],
>         "opType": "GeneralSetFunction"
>       },
>       "opType": "Target"
>     }
>   ],
>   "child": {
>     "qual": {
>       "left": {
>         "name": "total",
>         "opType": "Column"
>       },
>       "right": {
>         "valueType": "Unsigned_Integer",
>         "value": "100",
>         "opType": "Literal"
>       },
>       "opType": "GreaterThan"
>     },
>     "child": {
>       "groups": [
>         {
>           "group_type": "OrdinaryGroup",
>           "grouping_sets": [
>             {
>               "name": "col0",
>               "opType": "Column"
>             }
>           ]
>         },
>         {
>           "group_type": "Cube",
>           "grouping_sets": [
>             {
>               "name": "col1",
>               "opType": "Column"
>             },
>             {
>               "name": "col2",
>               "opType": "Column"
>             }
>           ]
>         },
>         {
>           "group_type": "OrdinaryGroup",
>           "grouping_sets": [
>             {
>               "name": "col3",
>               "opType": "Column"
>             }
>           ]
>         }
>       ],
>       "child": {
>         "relations": [
>           {
>             "tableName": "base",
>             "opType": "Relation"
>           }
>         ],
>         "opType": "RelationList"
>       },
>       "opType": "Aggregation"
>     },
>     "opType": "Having"
>   },
>   "opType": "Projection"
> }
> 2014-01-22 11:11:41,710 INFO  parser.TestHiveConverter (TestHiveConverter.java:compareJsonResult(64)) - ### Hive Parse Result ### 
> {
>   "all": false,
>   "distinct": false,
>   "targets": [
>     {
>       "child": {
>         "name": "col0",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "name": "col1",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "name": "col2",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "name": "col3",
>         "opType": "Column"
>       },
>       "opType": "Target"
>     },
>     {
>       "alias": "total",
>       "child": {
>         "distinct": false,
>         "signature": "sum",
>         "params": [
>           {
>             "name": "col4",
>             "opType": "Column"
>           }
>         ],
>         "opType": "GeneralSetFunction"
>       },
>       "opType": "Target"
>     },
>     {
>       "child": {
>         "distinct": false,
>         "signature": "avg",
>         "params": [
>           {
>             "name": "col5",
>             "opType": "Column"
>           }
>         ],
>         "opType": "GeneralSetFunction"
>       },
>       "opType": "Target"
>     }
>   ],
>   "child": {
>     "qual": {
>       "left": {
>         "name": "total",
>         "opType": "Column"
>       },
>       "right": {
>         "valueType": "Unsigned_Integer",
>         "value": "100",
>         "opType": "Literal"
>       },
>       "opType": "GreaterThan"
>     },
>     "child": {
>       "groups": [
>         {
>           "group_type": "OrdinaryGroup",
>           "grouping_sets": [
>             {
>               "name": "col0",
>               "opType": "Column"
>             },
>             {
>               "name": "col3",
>               "opType": "Column"
>             }
>           ]
>         },
>         {
>           "group_type": "Cube",
>           "grouping_sets": [
>             {
>               "name": "col1",
>               "opType": "Column"
>             },
>             {
>               "name": "col2",
>               "opType": "Column"
>             }
>           ]
>         }
>       ],
>       "child": {
>         "relations": [
>           {
>             "tableName": "base",
>             "opType": "Relation"
>           }
>         ],
>         "opType": "RelationList"
>       },
>       "opType": "Aggregation"
>     },
>     "opType": "Having"
>   },
>   "opType": "Projection"
> }
> {noformat}
> It seems that Hive always merges the same group_type as one but Tajo does only when the same group_type appears sequentially,
> as following query passes testGroupby1() without problem.
> {noformat}
> select col0, col1, col2, col3, sum(col4) as total, avg(col5) from base group by col0, col3, cube (col1, col2) having total > 100
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)