[jira] [Commented] (IGNITE-12620) Calcite integration. Index Nested Loop Join/Hash Join

2020-07-07 Thread Alexey Goncharuk (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17152566#comment-17152566
 ] 

Alexey Goncharuk commented on IGNITE-12620:
---

[~gvvinblade] Since trait propagation logic was reworked, can you provide a 
high-level logic that is executed in each {{derive}} method (the high-level 
invariants that are not dependent on the implementation details) in javadoc? 
Currently it's a bit hard to follow the target behavior.

> Calcite integration. Index Nested Loop Join/Hash Join
> -
>
> Key: IGNITE-12620
> URL: https://issues.apache.org/jira/browse/IGNITE-12620
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Seliverstov
>Assignee: Igor Seliverstov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We may implement the feature the next way:
>  # For each row from left node consume whole dataset from right node
>  # Pass join condition as an argument of request() method of the right node
>  # In case a data source at right is an index scan
>  ## If there is no cursor opened - create a new cursor using bounds from 
> request 
>  ## If there is an existing cursor - just check the cursor was opened using 
> the same condition as passed one.
>  ## After the right node signals EOD consume a next row from left and repeat 
> from p 2.
>  # In case a data source at right is a table scan with huge amount of rows
>  ## If there is no cursor opened - create a new cursor ignoring passed 
> condition
>  ## If there is an existing cursor - just check the cursor was opened using 
> the same condition as passed one.
>  ## After the right node signals EOD consume a next row from left and repeat 
> from p 2.
>  # In case a data source at right is remote / is a table scan with small 
> number of rows/ is a filter node with good enough selectivity
>  ## Create a hash index for a data source
>  ## If there is no cursor opened - create a new cursor using bounds from 
> request 
>  ## If there is an existing cursor - just check the cursor was opened using 
> the same condition as passed one.
>  ## After the right node signals EOD consume a next row from left and repeat 
> from p 2.
>  Consider implementation specifics at optimization time, choose the cheapest 
> variant



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


[jira] [Commented] (IGNITE-12620) Calcite integration. Index Nested Loop Join/Hash Join

2020-06-30 Thread Igor Seliverstov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17148795#comment-17148795
 ] 

Igor Seliverstov commented on IGNITE-12620:
---

[~agoncharuk],[~amashenkov],[~korlov],[~tledkov-gridgain], guys, please look at

> Calcite integration. Index Nested Loop Join/Hash Join
> -
>
> Key: IGNITE-12620
> URL: https://issues.apache.org/jira/browse/IGNITE-12620
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Seliverstov
>Assignee: Igor Seliverstov
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We may implement the feature the next way:
>  # For each row from left node consume whole dataset from right node
>  # Pass join condition as an argument of request() method of the right node
>  # In case a data source at right is an index scan
>  ## If there is no cursor opened - create a new cursor using bounds from 
> request 
>  ## If there is an existing cursor - just check the cursor was opened using 
> the same condition as passed one.
>  ## After the right node signals EOD consume a next row from left and repeat 
> from p 2.
>  # In case a data source at right is a table scan with huge amount of rows
>  ## If there is no cursor opened - create a new cursor ignoring passed 
> condition
>  ## If there is an existing cursor - just check the cursor was opened using 
> the same condition as passed one.
>  ## After the right node signals EOD consume a next row from left and repeat 
> from p 2.
>  # In case a data source at right is remote / is a table scan with small 
> number of rows/ is a filter node with good enough selectivity
>  ## Create a hash index for a data source
>  ## If there is no cursor opened - create a new cursor using bounds from 
> request 
>  ## If there is an existing cursor - just check the cursor was opened using 
> the same condition as passed one.
>  ## After the right node signals EOD consume a next row from left and repeat 
> from p 2.
>  Consider implementation specifics at optimization time, choose the cheapest 
> variant



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