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

hezhang updated CALCITE-3762:
-----------------------------
    Attachment: image-2020-02-01-01-29-49-479.png

> AggregateProjectPullUpConstantsRule causes fields to be out of order
> --------------------------------------------------------------------
>
>                 Key: CALCITE-3762
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3762
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.10.0, 1.16.0
>            Reporter: hezhang
>            Priority: Major
>             Fix For: 1.16.0
>
>         Attachments: image-2020-02-01-01-29-49-479.png
>
>
> the sql:
> {code:java}
> select * FROM( SELECT plat, category, rid, populary_num FROM 
> panda_com.crawler_anchor WHERE
>                                              par_date = '20180819'
>                                      AND     plat = 'huya'
>                                      AND     rid = 'meijiao'
>                     ) a
>      JOIN
>              (
>                      SELECT DISTINCT
>                              'huya' plat         ,
>                              edwin.privatehost ,
>                              edwin.profileroom
>                      FROM
>                              panda_com.ol_huya_isOnline edwin
>                      WHERE
>                              par_date = '20180819' ) m9
>      ON
>              a.rid= m9.privatehost
>      AND     a.plat = m9.plat{code}
> the result:
>  
> {code:java}
> huya yule meijiao 30 huya 10001242 meijiao
> {code}
>  
> but the desired result is:
>  
> {code:java}
> huya yule meijiao 30 huya meijiao 10001242  
> {code}
>  
> *cause:*
> hepPlanner use AggregateProjectPullUpConstantsRule :
> {code:java}
> HiveProject(plat=[$0], category=[$1], rid=[$2], populary_num=[$3], 
> plat1=[$4], privatehost=[$5], profileroom=[$6]) HiveJoin(condition=[true], 
> joinType=[inner], algorithm=[none], cost=[not available]) 
> HiveProject(plat=[CAST(_UTF-16LE'huya'):VARCHAR(2147483647) CHARACTER SET 
> "UTF-16LE" COLLATE "ISO-8859-1$en_US$primary"], category=[$3], 
> rid=[CAST(_UTF-16LE'meijiao'):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" 
> COLLATE "ISO-8859-1$en_US$primary"], populary_num=[$5]) 
> HiveFilter(condition=[AND(=($12, _UTF-16LE'20180819'), =($7, 
> _UTF-16LE'huya'), =($0, _UTF-16LE'meijiao'))]) 
> HiveTableScan(table=[[panda_com.crawler_anchor]], 
> table:alias=[crawler_anchor]) HiveProject(plat=[_UTF-16LE'huya'], 
> privatehost=[$1], profileroom=[$2]) HiveProject($f0=[_UTF-16LE'huya'], 
> $f1=[$0], $f2=[$1]) HiveProject($f1=[$0], 
> $f2=[CAST(_UTF-16LE'meijiao'):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" 
> COLLATE "ISO-8859-1$en_US$primary"]) HiveAggregate(group=[{2}]) 
> HiveProject($f0=[_UTF-16LE'huya'], 
> $f1=[CAST(_UTF-16LE'meijiao'):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" 
> COLLATE "ISO-8859-1$en_US$primary"], $f2=[$4]) 
> HiveFilter(condition=[AND(=($19, _UTF-16LE'20180819'), 
> =(CAST(_UTF-16LE'meijiao'):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" 
> COLLATE "ISO-8859-1$en_US$primary", $8))]) 
> HiveTableScan(table=[[panda_com.ol_huya_isonline]], table:alias=[edwin])
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to