You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Zoltán Borók-Nagy (JIRA)" <ji...@apache.org> on 2018/01/26 13:33:00 UTC

[jira] [Resolved] (IMPALA-6322) Group by expression fails when expression includes a CAST

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

Zoltán Borók-Nagy resolved IMPALA-6322.
---------------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 3.0

Fixed in https://github.com/apache/impala/commit/545e60f8329ddd98b5adaff5981b52bbdcf4d69d

> Group by expression fails when expression includes a CAST
> ---------------------------------------------------------
>
>                 Key: IMPALA-6322
>                 URL: https://issues.apache.org/jira/browse/IMPALA-6322
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Frontend
>    Affects Versions: Impala 2.9.0
>            Reporter: N Campbell
>            Assignee: Zoltán Borók-Nagy
>            Priority: Major
>             Fix For: Impala 3.0
>
>         Attachments: TSUPPLY
>
>
> Impala 2.5 thru 2.9 will fail to execute a Group by when it includes an expression which also includes a includes CAST.
> *Fails*
> SELECT
>     `sno` AS `SNO`, 
>     upper( cast(`pno` as varchar(32)) ) AS `PNO`
> FROM
>     `cert`.`tsupply` 
> GROUP BY 
>     `sno`, 
>     upper ( cast(`pno` as varchar(32)) )
> Error: [Simba][ImpalaJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: TStatus(statusCode:ERROR_STATUS, sqlState:HY000, errorMessage:AnalysisException: select list expression not produced by aggregation output (missing from GROUP BY clause?): upper(CAST(pno AS VARCHAR(32)))
> ), Query: SELECT
>     `sno` AS `SNO`, 
>     upper( cast(`pno` as varchar(32)) ) AS `PNO`
> FROM
>     `cert`.`tsupply` 
> GROUP BY 
>     `sno`, 
>     upper ( cast(`pno` as varchar(32)) ).
> SQLState:  HY000
> ErrorCode: 500051
> *Works*
> SELECT
>     `sno` AS `SNO`, 
>     upper(pno) AS `PNO`
> FROM
>     `cert`.`tsupply` 
> GROUP BY 
>     `sno`, 
>     upper(pno)
> SELECT distinct
>     `sno` AS `SNO`, 
>     upper( cast(`pno` as varchar(32)) ) AS `PNO`
> FROM
>     `cert`.`tsupply` 
> select `SNO`, `PNO` from (
> 	SELECT
> 		`sno` AS `SNO`, 
> 		upper( cast(`pno` as varchar(32)) ) AS `PNO`
>     FROM `cert`.`tsupply` 
> ) T
> GROUP BY 
>     `SNO`,
>    `PNO`



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