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

Haisheng Yuan updated CALCITE-4015:
-----------------------------------
    Description: 
Pass through parent collation request on subset or superset of join keys for 
EnumerableMergeJoin.
e.g.

{code:java}
select * from foo join bar on foo.a=bar.a and foo.b=bar.b order by foo.b;
{code}

collation on b is passed to mergejoin, mergejoin should generate an alternative 
with collation on b, a.

{code:java}
select * from foo join bar on foo.a=bar.a and foo.b=bar.b order by foo.a, 
foo.b, foo.c;
{code}
collation on a,b,c is passed to mergejoin, mergejoin should generate an 
alternative with collation on a,b,c, even the join keys are a,b, but since 
foo.c is also the output column, mergejoin can still request its child foo to 
deliver collation on a,b,c. The join keys must be the collation request's 
prefixes.




  was:
Pass through parent collation request on subset or superset of join keys for 
EnumerableMergeJoin.
e.g.

{code:java}
select * from foo join bar on foo.a=bar.a and foo.b=bar.b order by b;
{code}

collation on b is passed to mergejoin, mergejoin should generate an alternative 
with collation on b, a.

{code:java}
select * from foo join bar on foo.a=bar.a and foo.b=bar.b order by foo.a, 
foo.b, foo.c;
{code}
collation on a,b,c is passed to mergejoin, mergejoin should generate an 
alternative with collation on a,b,c, even the join keys are a,b, but since 
foo.c is also the output column, mergejoin can still request its child foo to 
deliver collation on a,b,c. The join keys must be the collation request's 
prefixes.





> Pass through parent collation request on subset or superset of join keys for 
> EnumerableMergeJoin
> ------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-4015
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4015
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Haisheng Yuan
>            Priority: Major
>
> Pass through parent collation request on subset or superset of join keys for 
> EnumerableMergeJoin.
> e.g.
> {code:java}
> select * from foo join bar on foo.a=bar.a and foo.b=bar.b order by foo.b;
> {code}
> collation on b is passed to mergejoin, mergejoin should generate an 
> alternative with collation on b, a.
> {code:java}
> select * from foo join bar on foo.a=bar.a and foo.b=bar.b order by foo.a, 
> foo.b, foo.c;
> {code}
> collation on a,b,c is passed to mergejoin, mergejoin should generate an 
> alternative with collation on a,b,c, even the join keys are a,b, but since 
> foo.c is also the output column, mergejoin can still request its child foo to 
> deliver collation on a,b,c. The join keys must be the collation request's 
> prefixes.



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

Reply via email to