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

Walter Wu updated HIVE-15874:
-----------------------------
    Description: 
for example:
create table alias_test_01(a INT, b STRING) ;
create table alias_test_02(a INT, b STRING) ;
create table alias_test_03(a INT, b STRING) ;

set hive.groupby.position.alias = true;
set hive.cbo.enable=true;

explain 
select * from 
alias_test_01 alias01 
left join 
(
select 2017 as a, b from alias_test_02 group by 1, 2
) alias02 
on alias01.a = alias02.a 
left join 
alias_test_03 alias03
on alias01.a = alias03.a;

error info:
FAILED: SemanticException [Error 10220]: Invalid position alias in Group By
Position alias: 2017 does not exist
The Select List is indexed from 1 to 2

the first process Position Alias result:
when CBO optimize failed and reAnalyzeAST is true, position alias will be 
processed twice.
1.   'group by 1, 2' convert to 'group by 2017, b'
2.   'group by 2017, b'  2017 column does not exist


  was:
for example:
SELECT
*
FROM 
(
SELECT * FROM 
table_a
WHERE hp_statdate = '2017-02-09'
) a
LEFT OUTER JOIN 
(
SELECT column_1,2017 AS column_2
FROM table_b
WHERE hp_statdate = '2017-02-09' 
GROUP BY 1,2
) b
ON a.column_1 = b.column_1
LEFT OUTER JOIN 
table_c  c
ON b.column_1 = c.column_1;

error info:
FAILED: SemanticException [Error 10220]: Invalid position alias in Group By
Position alias: 2017 does not exist
The Select List is indexed from 1 to 2

the first process Position Alias result:
SELECT column_1,2017 AS column_2
FROM table_b
WHERE hp_statdate = '2017-02-09' 
GROUP BY column_1,2017
when CBO is enabled and CBO optimize failed, Position Alias will be processed 
one more time , this lead to '2017' out of the column range


> Invalid position alias in Group By when CBO failed 
> ---------------------------------------------------
>
>                 Key: HIVE-15874
>                 URL: https://issues.apache.org/jira/browse/HIVE-15874
>             Project: Hive
>          Issue Type: Bug
>          Components: CBO
>    Affects Versions: storage-2.2.0
>            Reporter: Walter Wu
>
> for example:
> create table alias_test_01(a INT, b STRING) ;
> create table alias_test_02(a INT, b STRING) ;
> create table alias_test_03(a INT, b STRING) ;
> set hive.groupby.position.alias = true;
> set hive.cbo.enable=true;
> explain 
> select * from 
> alias_test_01 alias01 
> left join 
> (
> select 2017 as a, b from alias_test_02 group by 1, 2
> ) alias02 
> on alias01.a = alias02.a 
> left join 
> alias_test_03 alias03
> on alias01.a = alias03.a;
> error info:
> FAILED: SemanticException [Error 10220]: Invalid position alias in Group By
> Position alias: 2017 does not exist
> The Select List is indexed from 1 to 2
> the first process Position Alias result:
> when CBO optimize failed and reAnalyzeAST is true, position alias will be 
> processed twice.
> 1.   'group by 1, 2' convert to 'group by 2017, b'
> 2.   'group by 2017, b'  2017 column does not exist



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to